SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
LcioHitsCollectionBuilder Class Reference

Builds Lcio hits collections from G4/SLIC event data. More...

#include <LcioHitsCollectionBuilder.hh>

Inheritance diagram for LcioHitsCollectionBuilder:
Module

Public Member Functions

 LcioHitsCollectionBuilder ()
 
virtual ~LcioHitsCollectionBuilder ()
 
EVENT::LCEvent * createHitCollectionsFromEvent (const G4Event *event, EVENT::LCEvent *lcioEvent)
 
bool getStoreMomentum ()
 
void setLongFlag (bool longFlag=true)
 
void setPDGFlag (bool pdgFlag=true)
 
void setStoreMomentum (bool storeMomentum=true)
 
- Public Member Functions inherited from Module
virtual ~Module ()
 
virtual void beginEvent (const G4Event *)
 
virtual void beginRun (const G4Run *)
 
virtual void cleanup ()
 
bool deleteOnExit ()
 
virtual void endEvent (const G4Event *)
 
virtual void endRun (const G4Run *)
 
const std::string & getName () const
 
ModuleStatus getStatus () const
 
virtual void initialize ()
 
LogStream & log ()
 
virtual void postTracking (const G4Track *)
 
virtual void preTracking (const G4Track *)
 
virtual void reset ()
 
virtual void stepping (const G4Step *)
 

Private Member Functions

void addParticleContributions (CalorimeterHit *calorimeterHit, IMPL::SimCalorimeterHitImpl *simCalorimeterHit)
 
void combineMcpHitContribs (const HitContributionList &allContributions, HitContributionList &combinedContributions)
 
IMPL::LCCollectionVec * createCalorimeterCollectionVec (G4VHitsCollection *hitCollection)
 
IMPL::LCCollectionVec * createCollectionVec (G4VHitsCollection *hitCollection, SensitiveDetector::EType sensitiveDetectorType)
 
IMPL::SimCalorimeterHitImpl * createHit (CalorimeterHit *calorimeterHit)
 
IMPL::SimTrackerHitImpl * createHit (TrackerHit *trackerHit)
 
void createHitCollections ()
 
IMPL::LCCollectionVec * createTrackerCollectionVec (G4VHitsCollection *hitCollection)
 
HitContribution * findHitContribution (int trackID, HitContributionList &contributions)
 
void saveHits (CalorimeterHitsCollection *calorimeterHits, IMPL::LCCollectionVec *collection)
 
void saveHits (TrackerHitsCollection *trackerHits, IMPL::LCCollectionVec *collection)
 
void setEndcapFlag (SensitiveDetector *sensitiveDetector)
 
void setFlagDefaults ()
 

Static Private Member Functions

static bool containsCollection (EVENT::LCEvent *event, const std::string &name)
 

Private Attributes

IMPL::LCFlagImpl m_calCollFlag
 
const G4Event * m_currentG4Event
 
EVENT::LCEvent * m_currentLCEvent
 
bool m_storeMomentum
 
IMPL::LCFlagImpl m_trkCollFlag
 

Additional Inherited Members

- Public Types inherited from Module
enum  ModuleStatus { eOkay = 0 , eNotInitialized = 1 , eBadState = 2 , eFatalError = 3 }
 
- Public Attributes inherited from Module
bool m_deleteOnExit
 
LogStream * m_log
 
std::string m_name
 
ModuleStatus m_status
 
- Protected Member Functions inherited from Module
 Module (const std::string &name, bool deleteOnExit=true, bool autoRegister=true)
 

Detailed Description

Builds Lcio hits collections from G4/SLIC event data.

Note
Makes use of LcioMcpManager for Mcp hit contributions.

Definition at line 32 of file LcioHitsCollectionBuilder.hh.

Constructor & Destructor Documentation

◆ LcioHitsCollectionBuilder()

◆ ~LcioHitsCollectionBuilder()

Class destructor.

Definition at line 46 of file LcioHitsCollectionBuilder.cc.

Member Function Documentation

◆ addParticleContributions()

void addParticleContributions ( CalorimeterHit *  calorimeterHit,
IMPL::SimCalorimeterHitImpl *  simCalorimeterHit 
)
private

Copy MCParticle hit contributions from a CalorimeterHit to a SimCalorimeterHit.

Parameters
[in]calorimeterHitThe CalorimeterHit with the contributions.
[out]simCalorimeterHitThe SimCalorimeterHit to update.

Definition at line 299 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::combineMcpHitContribs(), LOG::endl, LOG::error, LogStream::error(), Singleton< MCParticleManager >::instance(), Module::log(), and LcioHitsCollectionBuilder::m_calCollFlag.

Referenced by LcioHitsCollectionBuilder::createHit().

◆ combineMcpHitContribs()

void combineMcpHitContribs ( const HitContributionList &  allContributions,
HitContributionList &  combinedContributions 
)
private

Combine hit contributions using track IDs.

Parameters
[in]allContributionsThe full hit contribution list.
[out]combinedContributionsThe hit contributions grouped by track ID.

Definition at line 343 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::findHitContribution().

Referenced by LcioHitsCollectionBuilder::addParticleContributions().

◆ containsCollection()

bool containsCollection ( EVENT::LCEvent *  event,
const std::string &  name 
)
staticprivate

Check if an event contains a named collection.

Parameters
[in]eventThe LCEvent to search.
[in]nameThe name of the collection.
Returns
True if the LCEvent contains a collection with given name; false if not.

Definition at line 417 of file LcioHitsCollectionBuilder.cc.

Referenced by LcioHitsCollectionBuilder::createHitCollections().

◆ createCalorimeterCollectionVec()

LCCollectionVec * createCalorimeterCollectionVec ( G4VHitsCollection *  hitCollection)
private

Create an output collection of LCIO caloriemter hits.

Parameters
[in]Theinput CalorimeterHit collection.

Definition at line 157 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::m_calCollFlag, and LcioHitsCollectionBuilder::saveHits().

Referenced by LcioHitsCollectionBuilder::createCollectionVec().

◆ createCollectionVec()

IMPL::LCCollectionVec * createCollectionVec ( G4VHitsCollection *  hitCollection,
SensitiveDetector::EType  sensitiveDetectorType 
)
private

Create the LCCollectionVec for a given hits collection.

Parameters
[in]hitCollectionThe hit collection.
[in]sensitiveDetectorTypeThe type of the sensitive detector (e.g. tracker or calorimeter).

Definition at line 120 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::createCalorimeterCollectionVec(), and LcioHitsCollectionBuilder::createTrackerCollectionVec().

Referenced by LcioHitsCollectionBuilder::createHitCollections().

◆ createHit() [1/2]

IMPL::SimCalorimeterHitImpl * createHit ( CalorimeterHit *  calorimeterHit)
private

Create a SimCalorimeterHit from a CalorimeterHit.

Parameters
[in]calorimeterHitThe source CalorimeterHit.
Returns
The output SimCalorimeterHit.

Definition at line 218 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::addParticleContributions().

Referenced by LcioHitsCollectionBuilder::saveHits().

◆ createHit() [2/2]

IMPL::SimTrackerHitImpl * createHit ( TrackerHit *  trackerHit)
private

Create a SimTrackerHit from a TrackerHit.

Parameters
[in]trackerHitThe input TrackerHit.
Returns
The output SimTrackerHit.

Definition at line 259 of file LcioHitsCollectionBuilder.cc.

References LogStream::error(), Singleton< MCParticleManager >::instance(), and Module::log().

◆ createHitCollections()

void createHitCollections ( )
private

◆ createHitCollectionsFromEvent()

EVENT::LCEvent * createHitCollectionsFromEvent ( const G4Event *  event,
EVENT::LCEvent *  lcioEvent 
)

Setup instance variables and then create the LCIO output hits collections from the Geant4 sensitive detector data for the event.

Parameters
[in]eventThe Geant4 event.
[in]lcioEventThe LCIO target event.
Returns
The LCIO event with the hits collections.

Definition at line 381 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::createHitCollections(), LcioHitsCollectionBuilder::m_currentG4Event, and LcioHitsCollectionBuilder::m_currentLCEvent.

Referenced by LcioManager::createHitsCollections().

◆ createTrackerCollectionVec()

LCCollectionVec * createTrackerCollectionVec ( G4VHitsCollection *  hitCollection)
private

Create an output collection of LCIO tracker hits.

Parameters
[in]Theinput TrackerHit collection.

Definition at line 141 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::m_trkCollFlag, and LcioHitsCollectionBuilder::saveHits().

Referenced by LcioHitsCollectionBuilder::createCollectionVec().

◆ findHitContribution()

HitContribution * findHitContribution ( int  trackID,
HitContributionList &  contributions 
)
private

Find a single hit contribution by track ID within the combined list.

Parameters
[in]trackIDThe track ID.
[in]contributionsThe hit contribution list to search.
Returns
The matching HitContribution or null if there are none.

Definition at line 369 of file LcioHitsCollectionBuilder.cc.

Referenced by LcioHitsCollectionBuilder::combineMcpHitContribs().

◆ getStoreMomentum()

bool getStoreMomentum ( )
inline

Get whether to store momentum in output step contributions.

Returns
True if momentum should be stored; false if not.

Definition at line 80 of file LcioHitsCollectionBuilder.hh.

References LcioHitsCollectionBuilder::m_storeMomentum.

◆ saveHits() [1/2]

void saveHits ( CalorimeterHitsCollection *  calorimeterHits,
IMPL::LCCollectionVec *  collection 
)
private

Save the CalorimeterHits into the output LCIO collection.

Parameters
[in]

Definition at line 200 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::createHit().

Referenced by LcioHitsCollectionBuilder::createCalorimeterCollectionVec(), and LcioHitsCollectionBuilder::createTrackerCollectionVec().

◆ saveHits() [2/2]

void saveHits ( TrackerHitsCollection *  trackerHits,
IMPL::LCCollectionVec *  collection 
)
private

Save TrackerHits to a collection.

Parameters
[in]trackerHitsThe TrackerHits to add.
[out]collectionThe target collection.

Definition at line 209 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::createHit().

◆ setEndcapFlag()

void setEndcapFlag ( SensitiveDetector *  sensitiveDetector)
private

Set the endcap flag depending on the type of the sensitive detector.

Parameters
[in]sensitiveDetectorThe SensitiveDetector.

Definition at line 178 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::m_calCollFlag, and LcioHitsCollectionBuilder::m_trkCollFlag.

Referenced by LcioHitsCollectionBuilder::createHitCollections().

◆ setFlagDefaults()

void setFlagDefaults ( )
private

Set default CalorimeterHit flag settings. This is called from this classe's constructor.

Definition at line 173 of file LcioHitsCollectionBuilder.cc.

References LcioHitsCollectionBuilder::m_calCollFlag.

Referenced by LcioHitsCollectionBuilder::LcioHitsCollectionBuilder().

◆ setLongFlag()

void setLongFlag ( bool  longFlag = true)

Set to true in order to include positions in output hits.

Parameters
[in]longFlagThe setting of the long flag.

Definition at line 393 of file LcioHitsCollectionBuilder.cc.

References Module::log(), LcioHitsCollectionBuilder::m_calCollFlag, and LogStream::verbose().

Referenced by LcioMessenger::SetNewValue().

◆ setPDGFlag()

void setPDGFlag ( bool  pdgFlag = true)

Set to true in order to include all step contributions in output hits rather than aggregating them together by PDG ID.

Parameters
[in]pdgFlagThe setting of the PDG flag.

Definition at line 405 of file LcioHitsCollectionBuilder.cc.

References Module::log(), LcioHitsCollectionBuilder::m_calCollFlag, and LogStream::verbose().

Referenced by LcioMessenger::SetNewValue().

◆ setStoreMomentum()

void setStoreMomentum ( bool  storeMomentum = true)
inline

Set to true in order to store momentum in output step contributions.

Parameters
[in]storeMomentumThe store momentum setting.

Definition at line 72 of file LcioHitsCollectionBuilder.hh.

References LcioHitsCollectionBuilder::m_storeMomentum.

Referenced by LcioManager::setStoreMomentum().

Member Data Documentation

◆ m_calCollFlag

IMPL::LCFlagImpl m_calCollFlag
private

◆ m_currentG4Event

const G4Event* m_currentG4Event
private

◆ m_currentLCEvent

EVENT::LCEvent* m_currentLCEvent
private

◆ m_storeMomentum

bool m_storeMomentum
private

◆ m_trkCollFlag

IMPL::LCFlagImpl m_trkCollFlag
private

The documentation for this class was generated from the following files: