Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

The HPS physics reconstruction is implemented within the HPS Java project as a chain of of org.lcsim Drivers (event processors) which process LCIO Data Format events that are accessed through the EventHeader API.  The Drivers are described by an lcsim xml steering file, which is read described by lcsim xml and run by the lcsim job manager.  Detector Conditions including per channel calibrations are read and applied in the initialization phase.  The data from each event is processed to produce additional output collections containing reconstructed objects such as tracks and calorimeter clusters. First, the raw data must be converted from EVIO Data Format using an LCSimEventBuilder such as LCSimEngRunEventBuilder.  The EvioToLcio command line tool is used to read EvioEvents with an EvioReader and then uses the event builder to create LCIO raw data events.  The full Driver chain is run on the raw data collections to perform the physics reconstruction.  These combined  The EvioToLcio command line tool is used to convert the EVIO to LCIO events using an LCSimEventBuilder such as LCSimEngRunEventBuilder.  The LCIO events are accessed in Java code through the EventHeader API.  The Drivers add output collections to the event such as tracks, calorimeter clusters, reconstructed particles and vertices.  The combined data/physics LCIO events are written out to an LCIO file, which can subsequently be converted to ROOT DST Data Format.  The LCIO events may also be loaded back into the HPS Java environment for analysis.  

Basic

...

Steps

This is the basic recipe for reconstructing HPS data:

These are the steps performed in reconstructing the data:

  1. EvioToLcio command line tool is run with command line parameters like the EVIO file(s) and the path to the XML steering file.
  2. The JobControlManager loads the steering file which defines the chain of reconstruction Drivers and their parameters.
  3. Detector Conditions including per channel calibrations are read and applied in Driver detectorChanged methods.
  4. Each EvioEvent is read with EvioReader and converted to an LCIO raw data event using an appropriate LCSimEventBuilder EVIO data files are read in and converted to LCIO events containing the raw data collections.
  5. The HPS Java reconstruction , defined by a list of Drivers in an XML steering file, adds additional reconstructed object runs on the LCIO event, adding additional reconstruction collections to the events.
  6. The events are written to an LCIO file containing the results of the recon.
  7. The output LCIO file is converted to ROOT DST Data Format for analysis.

Steps 1-3 7 are typically performed in the same job (process) using the EvioToLcio command line utility.

User analysis can be performed on the LCIO files using the job manager command line tool or within the ROOT environment using the DSTs.

Reconstruction Drivers 

The reconstruction Driver chain is defined in production steering files such as EngineeringRun2015FullRecon.lcsim, which are kept in this SVN folder and typically accessed as a class resource from a jar file. 

OrderDriver NameDriver ClassDescription
1

RfFitter

RfFitterDriverconverts accelerator's RF wave form to time and inserts into event
2EcalRunningPedestal

EcalRunningPedestalDriver

calculates per channel running averages for ECal signal pedestals
3EcalRawConverterEcalRawConverterDriverconverts ECal digits to CalorimeterHit collection with energy and time measurements
4ReconClustererReconClusterDriverperforms calorimeter clustering algorithm on ECal hits
5CopyCollectionCopyClusterCollectionDrivercopies calorimeter clusters to new collection to preserve uncorrected energy measurements
6RawTrackerHitSensorSetupRawTrackerHitSensorSetupassigns RawTrackerHits to their sensors for use by track recon
7RawTrackerHitFitterDriverRawTrackerHitFitterDriverfits ADC vs time signal and stores results associated to the raw hit
8TrackerHitDriverDataTrackerHitDrivercreates stereo pairs from SVT strip hits
9HelicalTrackHitDriverHelicalTrackHitDrivercreates 3D hit clusters from stereo pairs
10TrackReconSeed345Conf2Extd16TrackerReconDrivertrack finding using layers 3, 4 & 5 as a seed, layer 2 to confirm, and layers 1 and 6 to extend
11TrackReconSeed456Conf3Extd21TrackerReconDrivertrack finding using layers 4, 5 & 6 as a seed, layer 3 to confirm, and layers 2 and 1 to extend
12TrackReconSeed123Conf4Extd56TrackerReconDrivertrack finding using layers 1, 2 & 3 as a seed, layer 4 to confirm, and layers 5 and 6 to extend
13TrackReconSeed123Conf5Extd46TrackerReconDrivertrack finding using layers 1, 2 & 3 as a seed, layer 5 to confirm, and layers 4 and 6 to extend
14MergeTrackCollectionsMergeTrackCollectionsmerges collections from track finding into a single output collection
15GBLRefitterDriverGBLRefitterDriverperforms GBL track refit
16TrackDataDriverTrackDataDriveradds additional collections containing track information to the output event
17ReconParticleDriverHpsReconParticleDriver

creates output reconstructed particle collections, associating tracks with clusters

also performs vertex reconstruction and creates vertex collection

18LCIOWriterLCIODriverwrites output LCIO file
19CleanupDriverReadoutCleanupDrivercleans up readout state for next event (clears assignments of SVT raw hits to sensors)

...

Track Reconstruction

These are the primary steps involved in the HPS Java track reconstruction:

  1. RawTrackerHitFitterDriver converts SVT raw data into fitted hits collection by fitting ADC vs time signals is used to fit the ADC vs time signals from the raw data and writes a new collection with the fit result.
  2. DataTrackerHitDriver creates stereo hit pairs from the fitted strip hits along with the fit results.
  3. HelicalTrackHitDriver creates 3D hits (clusters) from input stereo hits.
  4. TrackerReconDriver runs track finding on the 3D hit collection.
    1. Track finding is run runs multiple times with different tracking strategy files, creating a track collection for each strategy used.
  5. The MergeTrackCollections Driver is used to merge the multiple track collections into a single output collection.
  6. The GBLRefitterDriver refits the tracks using GBL and writes a number of additional output collections with this information.
  7. TrackDataDriver adds a Generic Object collection containing additional information about the track for persistency.

The tracking packages in lcsim form the basis for HPS's tracking algorithms through usage and extension.  Seed  Seed Tracker is used for track finding using a set of input tracking strategies.  The  

The track fit from lcsim is further refined using a Java implementation (port) of the GBL C++ algorithm.

...