Skip to content

J PET Framework v7

Wojciech Krzemien edited this page Apr 2, 2019 · 3 revisions

Changes and features introduced in version 7:

Building and compatibilty:

The framework can now be built on any of the following configurations:

  • g++ version older than 5, ROOT 5 (e.g. Ubuntu 14)
  • g++ version 5 and newer, ROOT 6 (e.g. Ubuntu 16, Ubuntu 18)

No manual compilation of library dependencies is required anymore. The number of library dependencies was also reduced.

Unpacking of HLD files

  • The rough pairing of TDC signals from leading and trailing edges was removed from the unpacking level and replaced with more sophisticated analysis at a higher level (see further sections).
  • Unpacking speed was improved.
  • Paths to ROOT files with calibrations of TOT stretcher offsets and TDC non-linearity (calibrations applied at the unpacking level) are now consistently passed to the program in the same JSON file as any other user parameters. Thus all paths to calibration files are now defined in a single JSON file and there is no more need to put any paths in the XML config file or on the program command line. The relevant options to include in the JSON file are Unpacker_TOToffsetCalib_std::string and Unpacker_TDCnonlinearityCalib_std::string - see the userParams.json file bundled with the LargeBarrelAnalysis example.
  • Unpacking is now resistant to corrupted and truncated HLD files. Corrupted sections are ignored without interrupting the analysis of the whole file and in case of truncated files (created when the DAQ was stopped in the middle of a file), the files are unpacked until the last reasonable event without crashing the analysis program.
  • The date and time of the first event written to a HLD file is now extracted from that file and stored in the unpacked ROOT file as a TString object.

Filtering of incorrect lead-trail sequences of TDC times

Every data class was extended with a flag indicating whether is was classified as Good or Corrupted. Signal-Channel (SigCh) objects belonging to an incorrect sequence are now marked the following way:

  • in a sequence of more than 1 leading-edge signal in a row, all but the last one are marked as Corrupted
  • in a sequence of more than 1 trailing-edge signal in a row, all but the first one are marked as Corrupted

The Corrupted classification is inherited by higher-level data objects, i.e. a JPetRawSignal containing at least one corrupted JPetSigCh is also considered corrupted, a JPetHit with a corrupted JPetPhysSignal at at least one end is corrupted etc.

The user can decide at every stage of the analysis whether to use the objects marked as Corrupted or to reject them. This is controlled by the following user parameters for the standard analysis modules from the LargeBarrelAnalysis example:

  • SignalFinder_UseCorruptedSigCh_bool
  • SignalTransformer_UseCorruptedSignals_bool
  • HitFinder_UseCorruptedSignals_bool
  • EventFinder_UseCorruptedHits_bool

See the userParams.json bundled with the LargeBarrelAnalysis example for sample usage of these parameters.

Arbitrary threshold value order

Rather than assuming that threshold A corresponds to the lowest absolute voltage value, the framework now reads the set threshold values from the JSON file with detector setup. Therefore, any arbitrary order of thresholds may be set in the experiment and analyzed correctly.

The updated JSON files containing voltages for each threshold are available at PetWiki: http://koza.if.uj.edu.pl/petwiki/index.php/Default_settings_and_parameters_used_in_the_analyses

Integration with MC simulations

This is the first Framework version which allows to use MC-simulated hits as input to the analysis. Files obtained with the J-PET Geant4 simulations can be used with the -t mcGeant command line parameter. See the MCGeantAnalysis example in the Examples repository for details.

Current status of MC including a list of already produced files which can be used with the Framework-based analyses can be found at the following PetWiki page: http://koza.if.uj.edu.pl/petwiki/index.php/GEANT4_-_current_status.

Problems and feature requests related to MC simulations should be reported at the respective subproject at the J-PET Redmine: http://sphinx.if.uj.edu.pl/redmine/projects/gate-geant-mc-simulations.

Integrated MLEM reconstruction

The MLEM image reconstruction was made a submodule of the Framework and can be run transparently as the last stage of a Framework-based analysis.

Data streaming examples

The J-PET Framework examples repository now contains examples of data preselection and analysis specific to three chosen classes of data which can be used for streaming of the data:

Iterative tasks

The framework can run a single task more than once, either executing a number of iterations specified by the user or repeating until a user-defined logical condition is satisfied. This allows e.g. for creating iterative calibration tasks.

Documentation:

A user guide for version 7 is available at PetWiki

The updated reference manual for version 7 is available here: http://sphinx.if.uj.edu.pl/framework/doc/