ATLAS Offline Software
|
A base class for tools that manage LAr SDs. More...
#include <LArG4SDTool.h>
Inherits SensitiveDetectorBase.
Inherited by LArG4H62004ActiveSDTool, LArG4H62004DeadSDTool, LArG4H62004EMECSDTool, LArG4H62004FCALSDTool, LArG4H62004HECSDTool, LArG4H62004InactiveSDTool, TBECBackOuterBarretteTool, TBECInnerModuleTool, and TBECOuterModuleTool.
Public Member Functions | |
LArG4SDTool (const std::string &type, const std::string &name, const IInterface *parent) | |
Constructor. More... | |
virtual | ~LArG4SDTool () |
Destructor. More... | |
StatusCode | initialize () override final |
virtual StatusCode | initializeCalculators () |
void | setupHelpers (LArG4SimpleSD *) const |
Helper method to pass the ID helper pointers to the SDs. More... | |
void | setupHelpers (LArG4CalibSD *) const |
Overload of the above method for calib SDs. More... | |
StatusCode | initializeSD () override |
Setup an SD in the current thread. More... | |
virtual StatusCode | SetupEvent () override |
Beginning of an athena event. More... | |
virtual StatusCode | Gather () override |
End of an athena event. More... | |
Protected Member Functions | |
G4VSensitiveDetector * | makeSD () const override final |
void | setupAllSDs (const std::map< G4VSensitiveDetector *, std::vector< std::string > * > &configuration) const |
Method actually doing the work to assign all of these SDs FIXME: this argument type is nasty: More... | |
bool | match (const char *first, const char *second) const |
Helper function for matching strings with wildcards. More... | |
StatusCode | assignSD (G4VSensitiveDetector *sd, const std::vector< std::string > &volumes) const |
Assign SD to a list of volumes. More... | |
G4VSensitiveDetector * | getSD () |
Retrieve the current SD. More... | |
void | SetSensitiveDetector (G4LogicalVolume *, G4VSensitiveDetector *) const |
Method stolen from G4VUserDetectorConstruction in G4 10.2. More... | |
Protected Attributes | |
G4bool | m_doPID |
Are we set up to run with PID hits? More... | |
std::string | m_timeBinType |
What time binning type for regular hits? More... | |
float | m_timeBinWidth |
What time bin width for regular hits? More... | |
G4bool | m_useFrozenShowers = false |
Is there going to be a fast simulation coming into this SD? More... | |
const LArEM_ID * | m_larEmID |
Pointers to the identifier helpers. More... | |
const LArFCAL_ID * | m_larFcalID |
const LArHEC_ID * | m_larHecID |
const CaloDM_ID * | m_caloDmID |
Gaudi::Property< std::vector< std::string > > | m_volumeNames {this, "LogicalVolumeNames", {}} |
All the volumes to which this SD is assigned. More... | |
Gaudi::Property< std::vector< std::string > > | m_outputCollectionNames {this, "OutputCollectionNames", {}} |
Names of all output collections written out by this SD. More... | |
Gaudi::Property< bool > | m_noVolumes {this, "NoVolumes", false} |
This SensitiveDetector has no volumes associated with it. More... | |
Private Member Functions | |
void | setSD (G4VSensitiveDetector *) |
Set the current SD. More... | |
Static Private Member Functions | |
static bool | matchStrings (const char *first, const char *second) |
Match two strings with wildcard support. More... | |
Private Attributes | |
G4VSensitiveDetector * | m_SD {} |
The sensitive detector to which this thing corresponds. More... | |
A base class for tools that manage LAr SDs.
This tool class adds functionality on top of SensitiveDetectorBase which is specific to the LAr setups.
NOTE: this design is not yet good for multi-threading in the existing ATLAS MT simulation model. Thus, there may be some refactoring needed.
Definition at line 32 of file LArG4SDTool.h.
LArG4SDTool::LArG4SDTool | ( | const std::string & | type, |
const std::string & | name, | ||
const IInterface * | parent | ||
) |
Constructor.
|
inlinevirtual |
|
protectedinherited |
Assign SD to a list of volumes.
This method supports wild card matching
Definition at line 69 of file SensitiveDetectorBase.cxx.
|
inlineoverridevirtualinherited |
End of an athena event.
Store the output collection in SG at this point. If we are using a WriteHandle, then this can be empty!
Reimplemented in LArG4::CalibSDTool, FCS_Param::FCS_StepInfoSDTool, LArG4::SimpleSDTool, TBECBackOuterBarretteTool, TBECInnerModuleTool, TBECOuterModuleTool, LArG4H62004HECSDTool, LArG4H62004InactiveSDTool, LArG4H62004EMECSDTool, TileGeoG4CalibSDTool, TileGeoG4SDTool, LArG4H62004ActiveSDTool, LArG4H62004DeadSDTool, LArG4H62004FCALSDTool, MuonWallSDTool, MinBiasScintillatorSDTool, AFP_SensitiveDetectorTool, AFP_SiDSensitiveDetectorTool, AFP_TDSensitiveDetectorTool, ZDC_G4CalibSDTool, CaloCellContainerSDTool, ALFA_SensitiveDetectorTool, ZDC_FiberSDTool, and LArG4H6WarmTCSDTool.
Definition at line 67 of file SensitiveDetectorBase.h.
|
protectedinherited |
Retrieve the current SD.
In AthenaMT, this means the thread-local SD. Otherwise, it is simply the single SD.
Definition at line 123 of file SensitiveDetectorBase.cxx.
|
finaloverride |
|
inlinevirtual |
Reimplemented in LArG4H62004EMECSDTool, LArG4H62004DeadSDTool, LArG4H62004ActiveSDTool, LArG4H62004FCALSDTool, TBECBackOuterBarretteTool, TBECInnerModuleTool, TBECOuterModuleTool, LArG4H62004HECSDTool, and LArG4H62004InactiveSDTool.
Definition at line 43 of file LArG4SDTool.h.
|
overrideinherited |
Setup an SD in the current thread.
Separate from the AthAlgTool initialize() method because it needs to be called once per worker thread in AthenaMT. Don't confuse this with the G4 SD method Initialize which is called at the beginning of every G4 event.
Definition at line 30 of file SensitiveDetectorBase.cxx.
|
inlinefinaloverrideprotected |
Definition at line 52 of file LArG4SDTool.h.
Helper function for matching strings with wildcards.
|
staticprivateinherited |
Match two strings with wildcard support.
Compares two strings character by character with optional * wildcard in the first argument
Definition at line 150 of file SensitiveDetectorBase.cxx.
|
privateinherited |
Set the current SD.
In hive, this gets assigned as the thread-local SD.
Definition at line 137 of file SensitiveDetectorBase.cxx.
|
protectedinherited |
Method stolen from G4VUserDetectorConstruction in G4 10.2.
Definition at line 177 of file SensitiveDetectorBase.cxx.
|
protected |
Method actually doing the work to assign all of these SDs FIXME: this argument type is nasty:
|
inlineoverridevirtualinherited |
Beginning of an athena event.
This is where collection initialization should happen. If we are using a WriteHandle, then this could be empty.
Reimplemented in MuonWallSDTool, AFP_SensitiveDetectorTool, AFP_SiDSensitiveDetectorTool, AFP_TDSensitiveDetectorTool, CaloCellContainerSDTool, and ALFA_SensitiveDetectorTool.
Definition at line 62 of file SensitiveDetectorBase.h.
void LArG4SDTool::setupHelpers | ( | LArG4CalibSD * | ) | const |
Overload of the above method for calib SDs.
void LArG4SDTool::setupHelpers | ( | LArG4SimpleSD * | ) | const |
Helper method to pass the ID helper pointers to the SDs.
Definition at line 72 of file LArG4SDTool.h.
|
protected |
Are we set up to run with PID hits?
Definition at line 55 of file LArG4SDTool.h.
Pointers to the identifier helpers.
Definition at line 69 of file LArG4SDTool.h.
|
protected |
Definition at line 70 of file LArG4SDTool.h.
Definition at line 71 of file LArG4SDTool.h.
|
protectedinherited |
This SensitiveDetector has no volumes associated with it.
Definition at line 87 of file SensitiveDetectorBase.h.
|
protectedinherited |
Names of all output collections written out by this SD.
Definition at line 84 of file SensitiveDetectorBase.h.
|
privateinherited |
The sensitive detector to which this thing corresponds.
Definition at line 111 of file SensitiveDetectorBase.h.
|
protected |
What time binning type for regular hits?
Definition at line 57 of file LArG4SDTool.h.
|
protected |
What time bin width for regular hits?
Definition at line 59 of file LArG4SDTool.h.
|
protected |
Is there going to be a fast simulation coming into this SD?
Definition at line 61 of file LArG4SDTool.h.
|
protectedinherited |
All the volumes to which this SD is assigned.
Definition at line 82 of file SensitiveDetectorBase.h.