Search/Navigation:
Related:
SLAC/EPP/HPS Public
Jefferson Lab/Hall B/HPS Run Wiki
S30XL-LESA/LDMX
This is the basic recipe for reconstructing HPS data:
Oftentimes, the physics reconstruction is performed in the same job (process) as the conversion from raw data to LCIO for efficiency, typically using the EvioToLcio command line utility.
The HPS physics reconstruction is implemented in the HPS Java project as a chain of org.lcsim Drivers which process LCIO Data Format events that are accessed using the EventHeader API. The driver list is described in an lcsim xml steering file which configures the lcsim job manager. A driver is simply an event processing component that operates on each event in a record processing loop and may add new object collections to the event. For example, a driver might convert ADC data to a hit object or it could perform track finding and create new track object collections.
Before the drivers can process the data, it must be converted from the EVIO Data Format written by the DAQ. The EvioToLcio command line tool reads EvioEvents using an EvioReader and these are converted into LCIO events by an LCSimEventBuilder such as LCSimEngRunEventBuilder. The driver chain is then run to perform the physics reconstruction which will add additional object collections to the event. The combined events with the data and recon collections are written out to an LCIO file. The LCIO output can be converted to ROOT DST Data Format for ROOT compatibility, or it may be loaded back into HPS Java for analysis.
The EvioToLcio utility converts EVIO to LCIO using an LCSimEventBuilder implementation such as LCSimEngRunEventBuilder. The generated LCIO events are then optionally written to disk using an LCIODriver. The physics reconstruction may also be run in the same process for efficiency.
SVT data banks are handled by an SvtEvioReader and converted into RawTrackerHit and GenericObject collections.
Various modes of EVIO ECal data are converted using the EcalEvioReader.
The following collections are added to the event by the ECal reader.
The default builder will also convert and write DAQ config information, EPICS data, and scaler bank data into the output LCSim events, if these banks are present in the EVIO data.
These are the steps in the HPS Java track reconstruction:
The tracking packages in lcsim form the basis for HPS's tracking algorithms through usage and extension. Seed Tracker is used for track finding using a set of input tracking strategies. The track fit from lcsim is further refined using a Java implementation (port) of the GBL C++ algorithm.
These are the basic steps of the ECal reconstruction:
The copied collection will be updated with corrected energies in the next step which creates recon particles.
The ReconParticleDriver creates ReconstructedParticle objects representing the final state particles from the event reconstruction. These are tracks with matching clusters (when applicable). It also performs vertex reconstruction and creates a number of candidate particle collections.
The ReconParticleDriver is sub-classed by the actual HpsReconParticleDriver from the steering which adds Moller candidate collections.
The HPS Java Documentation can be used to browse the packages and classes used for physics reconstruction.
The following packages are related to physics reconstruction in HPS Java.
HPS Java Reconstruction Packages
Java Package | Description | Notes | Module |
---|---|---|---|
org.hps.evio | converts EVIO raw data to LCIO | evio readers for converting EVIO raw data to LCIO events | evio |
org.hps.recon.ecal | ECal reconstruction utilities | primarily for converting from raw data to CalorimeterHits | ecal-recon |
org.hps.recon.ecal.cluster | ECal hit clustering framework | includes recon clustering and GTP/CTP hardware emulation clusterers | ecal-recon |
org.hps.recon.tracking | track reconstruction from SVT hits | based on Seed Tracker from lcsim | tracking |
org.hps.recon.tracking.gbl | GBLtrack refit | ported from C++ to Java; actual Java package now outside HPS Java | tracking |
org.hps.recon.particle | builds ReconstructedParticles from tracks and clusters | builds reconstructed particles from input event collections | recon |
org.hps.recon.vertexing | vertex reconstruction | based on Billoir vertexing algorithm | recon |
org.hps.recon.filtering | event skimming utilities | recon |
These lcsim packages are used extensively in the HPS Java reconstruction code.
Java Package | Description | Notes | Module |
---|---|---|---|
org.lcsim.event | physics event interfaces (implemented by LCIO) | interfaces used extensively in HPS Java Drivers | |
org.lcsim.util.loop | event processing loop | extends Freehep loop classes for lcsim usage | |
org.lcsim.job | lcsim job manager which reads lcsim xml steering files | ||
org.lcsim.lcio | Java implementation of LCIO file format | implements event interfaces | |
org.lcsim.recon.tracking.seedtracker | Seed Tracker track reconstruction algorithm | basis for HPS Java tracking | |
org.lcsim.util | Driver class for event data processing | ||
org.lcsim.conditions | detector conditions system backend | ||
org.lcsim.geometry, org.lcsim.detector | detector description and geometry classes |