You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 90 Next »

Overview

The HPS physics reconstruction is implemented within the HPS Java project as a chain 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 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 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 HPS Java for analysis. 

Basic Recipe

This is the basic recipe for reconstructing HPS data:

  1.  EVIO data files are read in and converted to LCIO events containing the raw data collections.
  2. The HPS Java reconstruction, defined by a list of Drivers in an XML steering file, adds additional reconstructed object collections to the events.
  3. The events are written to an LCIO file containing the results of the recon.
  4. The output LCIO file is converted to ROOT DST Data Format for analysis.

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

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.

 

Driver NameDriver ClassDescription

RfFitter

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

EcalRunningPedestalDriver

calculates per channel running averages for ECal signal pedestals
EcalRawConverterEcalRawConverterDriverconverts ECal digits to CalorimeterHit collection with energy and time measurements
ReconClustererReconClusterDriverperforms calorimeter clustering algorithm on ECal hits
CopyCollectionCopyClusterCollectionDrivercopies calorimeter clusters to new collection to preserve uncorrected energy measurements
RawTrackerHitSensorSetupRawTrackerHitSensorSetupassigns RawTrackerHits to their sensors for use by track recon
RawTrackerHitFitterDriverRawTrackerHitFitterDriverfits ADC vs time signal to produce fitted hits collection
TrackerHitDriverDataTrackerHitDrivercreates stereo pairs from from SVT strip hits
HelicalTrackHitDriverHelicalTrackHitDrivercreates 3D hits from clusters of stereo pairs
TrackReconSeed345Conf2Extd16TrackerReconDriverruns track finding using layers 3, 4 & 5 as a seed, layer 2 to confirm, and layers 1 and 6 to extend
TrackReconSeed456Conf3Extd21TrackerReconDriverruns track finding using layers 4, 5 & 6 as a seed, layer 3 to confirm, and layers 2 and 1 to extend
TrackReconSeed123Conf4Extd56TrackerReconDriverruns track finding using layers 1, 2 & 3 as a seed, layer 4 to confirm, and layers 5 and 6 to extend
TrackReconSeed123Conf5Extd46TrackerReconDriverruns track finding using layers 1, 2 & 3 as a seed, layer 5 to confirm, and layers 4 and 6 to extend
MergeTrackCollectionsMergeTrackCollectionsmerge collections from track finding into single output collection
GBLRefitterDriverGBLRefitterDriverperforms GBL track refit
TrackDataDriverTrackDataDriveradds additional collections containing track information to output event
ReconParticleDriverHpsReconParticleDriver

creates output reconstructed particle collection, associating tracks with clusters

also performs vertex reconstruction

LCIOWriterLCIODriverwrites output LCIO file
CleanupDriverReadoutCleanupDrivercleanup readout state for next event (clears assignments of SVT raw hits to sensors)
AidaSaveDriverAidaSaveDriversaves AIDA plots to file at end of job

Data Collections

CollectionJava ClassCreated ByDescription
BeamspotConstrainedMollerCandidatesReconstructedParticleHpsReconParticleDriver

Møller candidate particles required to point back to beamspot at the target

BeamspotConstrainedMollerVerticesVertexHpsReconParticleDriverMøller vertices required to point back to beamspot at the target
BeamspotConstraintedV0CandidatesReconstructedParticleHpsReconParticleDriverelectron-positron candidate particles required to point back to beamspot at the target
BeamspotConstraintedV0VerticesVertexHpsReconParticleDriverelectron-positron vertices required to point back to beamspot at the target
EcalCalHitsCalorimeterHitEcalRawConverterDrivercalibrated ECal Hits
EcalClustersClusterReconClusterDriverreconstructed ECal clusters with uncorrected energies
EcalClustersCorrClusterCopyClusterCollectionDriver

reconstructed ECal clusters with corrected energies

 

EcalReadoutHitsRawTrackerHitEcalEvioReaderECal Hits in ADC counts 
EpicsDataGenericObjectLCSimEngRunEventBuilderEPICS data banks
FADCGenericHitsGenericObjectEcalEvioReaderadditional FADC readout information
FinalStateParticlesReconstructedParticleHpsReconParticleDriverfinal state particles (electrons, positrons, photons) with 4-momenta
GBLKinkDataGenericObjectGBLRefitterDriver extra GBL track kink data
GBLKinkDataRelationsLCRelationGBLRefitterDriver relation from GBLTracks to GBLKinkData
GBLTracksTrackGBLRefitterDrivertracks created from GBL refit
HelicalTrackHitRelationsLCRelationHelicalTrackHitDriver relation from HelicalTrackHits to StripClusterer_SiTrackerHitStrip1D
HelicalTrackHitsTrackerHitHelicalTrackHitDriver3D hits combining StripClusterer_SiTrackerHitStrip1D hits in axial/stereo layers
MatchedToGBLTrackRelationsLCRelation relation from MatchedTracks to GBLTracks
MatchedTracksTrackTrackerReconDriver

primary collection of reconstructed tracks

merged from collections with tracks generated from different strategies

PartialTracksTrackMergeTrackCollectionscollection of tracks which have a set of hits that are a strict subset of another track
RotatedHelicalTrackHitRelationsLCRelationHelicalTrackHitDriver relation from RotatedHelicalTrackHit to HelicalTrackHit
RotatedHelicalTrackHitsTrackerHit HelicalTrackHitDriver 

HelicalTrackHits rotated into SeedTracker tracking frame: xy, yz, zx

SVTFittedRawTrackerHitsLCRelationRawTrackerHitFitterDriverrelation from SVTRawTrackerHits to SVTShapeFitParameters
SVTRawTrackerHitsRawTrackerHitSvtEvioReaderSi sensor single strip hits
SVTShapeFitParametersGenericObjectRawTrackerHitFitterDriverresults of the ADC vs sample number fits for SVT data
StripClusterer_SiTrackerHitStrip1DTrackerHit DataTrackerHitDriver1D Si strip clusters
TargetConstrainedMollerCandidatesReconstructedParticleHpsReconParticleDriverMøller candidate particles with the vertex z fixed to the target position and (x,y) constrained to beamspot
TargetConstrainedMollerVerticesVertexHpsReconParticleDriverMøller vertices with the vertex z fixed to the target position and (x,y) constrained to beamspot
TargetConstrainedV0CandidatesReconstructedParticleHpsReconParticleDriverelectron-positron pairs with the vertex z fixed to the target position and (x,y) constrained to beamspot
TargetConstrainedV0VerticesVertexHpsReconParticleDriverelectron-positron vertices with the vertex z fixed to the target position and (x,y) constrained to beamspot
TrackDataGenericObjectTrackDataDriveradditional track information
TrackDataRelationsLCRelationTrackDataDriver relation from TrackData to a Track
TrackResidualsGenericObjectTrackDataDriver X & Y track residuals calculated at the stereo hit position
TrackResidualsRelationsLCRelationTrackDataDriver relation from TrackResiduals to a Track
TriggerBankGenericObjectLCSimEngRunEventBuildertrigger information for the event
UnconstrainedMollerCandidatesReconstructedParticleHpsReconParticleDriver

Møller particle candidates with unconstrained vertex

UnconstrainedMollerVerticesVertexHpsReconParticleDriver

unconstrained Møller vertices

UnconstrainedV0CandidatesReconstructedParticleHpsReconParticleDriverelectron-positron pairs with unconstrained vertex
UnconstrainedV0VerticesVertexHpsReconParticleDriverunconstrained electron-positron vertices

Algorithm Details

Data Conversion

The LCSimEventBuilder defines an interface for converting from EVIO to LCIO events, with the LCSimEngRunEventBuilder providing the current implementation of this conversion process.  EVIO collections are processed by a reader which gets raw bank data and converts it into a typed LCIO collection.

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 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.

Track Reconstruction

These are the steps in the HPS Java track reconstruction:

  1. RawTrackerHitFitterDriver converts SVT raw data into fitted hits collection by fitting ADC vs time signals.
  2. DataTrackerHitDriver creates stereo hit pairs from the fitted strip hits.
  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 multiple times with different tracking strategy files, creating a track collection for each strategy.
  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.
  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 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.

Additional References

This paper describes the LCIO track parameters.

These slides provide some details about how tracking strategies are used (see pages 4 & 8).

Cluster Reconstruction

These are the basic steps of the ECal reconstruction:

  1. EcalRawConverterDriver converts RawTrackerHit input collection into CalorimeterHit collection using the EcalRawConverter.
  2. ReconClusterDriver uses the ReconClusterer to create calorimeter Cluster collection from input hits collection.
  3. CopyClusterCollectionDriver copies the clusters (with raw energies) to a different collection.

The copied collection will be updated with corrected energies in the step which creates recon particles.

Additional References

This CLAS Note describes the basic clustering algorithm.

This HPS Note covers position corrections and other analysis.

Reconstructed 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 Møller candidate collections.

Java Packages

HPS Java Reconstruction Packages

The  HPS Java Documentation can be used to browse the packages and classes used for physics reconstruction.

Java PackageDescriptionNotesModule
org.hps.evioconverts EVIO raw data to LCIOevio readers for converting EVIO raw data to LCIO eventsevio
org.hps.recon.ecalECal reconstruction utilitiesprimarily for converting from raw data to CalorimeterHits ecal-recon
org.hps.recon.ecal.clusterECal hit clustering frameworkincludes recon clustering and GTP/CTP hardware emulation clusterersecal-recon
org.hps.recon.trackingtrack reconstruction from SVT hitsbased on Seed Tracker from lcsimtracking
org.hps.recon.tracking.gblGBLtrack refitported from C++ to Java; actual Java package now outside HPS Javatracking
org.hps.recon.particlebuilds ReconstructedParticles from tracks and clustersbuilds reconstructed particles from input event collectionsrecon  
org.hps.recon.vertexingvertex reconstructionbased on Billoir vertexing algorithmrecon
org.hps.recon.filteringevent skimming utilities recon

LCSim Packages

These lcsim packages are used extensively within the HPS Java reconstruction code.

Java PackageDescriptionNotes
org.lcsim.eventphysics event interfaces (implemented by LCIO)interfaces used extensively in HPS Java Drivers
org.lcsim.util.loopevent processing loopextends Freehep loop classes for lcsim usage
org.lcsim.joblcsim job manager which reads lcsim xml steering files 
org.lcsim.lcioJava implementation of LCIO file formatimplements event interfaces
org.lcsim.recon.tracking.seedtrackerSeed Tracker track reconstruction algorithmbasis for HPS Java tracking algorithm
org.lcsim.utilDriver class for event data processing 
org.lcsim.conditionsdetector conditions system backend 
org.lcsim.geometry, org.lcsim.detectordetector description and geometry classes 
  • No labels