![]() |
ATLAS Offline Software
|
Primary Athena algorithm for ATLAS simulation. More...
#include <G4RunAlg.h>
Public Member Functions | |
| virtual bool | isClonable () const override |
| this Alg is Clonable (for AthenaMT) | |
| virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
| Initialize the algorithm. | |
| virtual StatusCode | execute () override |
| Simulate one Athena event. | |
| AthAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) | |
| Standard algorithm constructor. | |
| virtual StatusCode | sysInitialize () override |
| Override sysInitialize. | |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. | |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
| void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. | |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| void | releaseGeoModel () |
| Releases the GeoModel geometry from memory once it has been used to build the G4 geometry and is no-longer required. | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| DataObjIDColl | m_extendedExtraObjects |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Configurable Properties | |
| Gaudi::Property< bool > | m_flagAbortedEvents {this, "FlagAbortedEvents", false, ""} |
| Gaudi::Property< bool > | m_killAbortedEvents {this, "KillAbortedEvents", false, ""} |
| Gaudi::Property< bool > | m_releaseGeoModel {this, "ReleaseGeoModel", true, ""} |
| Gaudi::Property< bool > | m_useShadowEvent {this, "UseShadowEvent", false, "New approach to selecting particles for simulation"} |
| Gaudi::Property< std::string > | m_randomStreamName {this, "RandomStreamName", "Geant4", ""} |
| Gaudi::Property< std::string > | m_simplifiedGeoPath {this, "SimplifiedGeoPath", "", "Path to the simplified geometry file"} |
| Gaudi::Property< std::map< std::string, std::string > > | m_verbosities {this, "Verbosities", {}, "Map of G4 Verbosities to set for the simulation"} |
| SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoKey {this, "EventInfo", "EventInfo", "EventInfo key"} |
| SG::ReadHandleKey< McEventCollection > | m_inputTruthCollectionKey {this, "InputTruthCollection", "BeamTruthEvent", "Input hard scatter collection"} |
| SG::WriteHandleKey< McEventCollection > | m_outputTruthCollectionKey {this, "OutputTruthCollection", "TruthEvent", "Output hard scatter truth collection"} |
| ServiceHandle< ISF::IGeoIDSvc > | m_geoIDSvc {this, "GeoIDSvc", "ISF_GeoIDSvc", ""} |
| Geo ID Service. | |
| ServiceHandle< ISF::IInputConverter > | m_inputConverter {this, "InputConverter", "ISF_InputConverter", ""} |
| Service to convert ISF_Particles into a G4Event. | |
| ServiceHandle< ISF::ITruthSvc > | m_truthRecordSvc {this, "TruthRecordService", "ISF_TruthRecordSvc", ""} |
| Central Truth Service. | |
| ServiceHandle< Simulation::IZeroLifetimePatcher > | m_qspatcher {this, "QuasiStablePatcher", "", "Quasi-Stable Particle Simulation Patcher"} |
| Quasi-Stable Particle Simulation Patcher. | |
| ServiceHandle< IAthRNGSvc > | m_rndmGenSvc {this, "AtRndmGenSvc", "AthRNGSvc", ""} |
| Random number service. | |
| ServiceHandle< G4UA::IUserActionSvc > | m_userActionSvc {this, "UserActionSvc", "G4UA::UserActionSvc", ""} |
| User Action Service. | |
| PublicToolHandle< IFastSimulationMasterTool > | m_fastSimTool {this, "FastSimMasterTool", "FastSimulationMasterTool", ""} |
| Fast Simulation Master Tool. | |
| PublicToolHandle< IG4RunTool > | m_g4RunTool {this, "G4RunTool", "G4RunTool", ""} |
| G4Atlas Tool for thread management and data interface. | |
| PublicToolHandle< ISensitiveDetectorMasterTool > | m_senDetTool {this, "SenDetMasterTool", "SensitiveDetectorMasterTool", ""} |
| Sensitive Detector Master Tool. | |
| ToolHandle< ISF::IGenEventFilter > | m_truthPreselectionTool {this, "TruthPreselectionTool", "", "Tool for filtering out quasi-stable particle daughters"} |
| Tool for filtering out quasi-stable particle daughters. | |
Primary Athena algorithm for ATLAS simulation.
This algorithm setup a Geant Run (through G4RunTool) which executes in a separate thread pool managed by the G4RunManager.
In contrast to G4AtlasAlg, in which execute() runs the actual transport loop of the event, G4RunAlg will only prepare the event, and push it to the G4 worker using a shared queue. Condition variables are used to synchronize the Athena worker thread with the G4 worker thread in execute.
Definition at line 50 of file G4RunAlg.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| AthAlgorithm::AthAlgorithm | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Standard algorithm constructor.
Definition at line 51 of file AthAlgorithm.cxx.
|
overridevirtual |
Initialize the algorithm.
Here we setup several things for simulation, including:
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
overridevirtual |
Simulate one Athena event.
Definition at line 96 of file G4RunAlg.cxx.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlineoverridevirtual |
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
private |
Releases the GeoModel geometry from memory once it has been used to build the G4 geometry and is no-longer required.
Definition at line 237 of file G4RunAlg.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.
Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.
Definition at line 66 of file AthAlgorithm.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 86 of file G4RunAlg.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 79 of file AthAlgorithm.h.
|
private |
Fast Simulation Master Tool.
Definition at line 104 of file G4RunAlg.h.
|
private |
Definition at line 78 of file G4RunAlg.h.
|
private |
G4Atlas Tool for thread management and data interface.
Definition at line 106 of file G4RunAlg.h.
|
private |
|
private |
Service to convert ISF_Particles into a G4Event.
Definition at line 93 of file G4RunAlg.h.
|
private |
Definition at line 87 of file G4RunAlg.h.
|
private |
Definition at line 79 of file G4RunAlg.h.
|
private |
Definition at line 88 of file G4RunAlg.h.
|
private |
Quasi-Stable Particle Simulation Patcher.
Definition at line 97 of file G4RunAlg.h.
|
private |
Definition at line 82 of file G4RunAlg.h.
|
private |
Definition at line 80 of file G4RunAlg.h.
|
private |
Random number service.
Definition at line 99 of file G4RunAlg.h.
|
private |
Sensitive Detector Master Tool.
Definition at line 108 of file G4RunAlg.h.
|
private |
Definition at line 83 of file G4RunAlg.h.
|
private |
Tool for filtering out quasi-stable particle daughters.
Definition at line 110 of file G4RunAlg.h.
|
private |
Central Truth Service.
Definition at line 95 of file G4RunAlg.h.
|
private |
User Action Service.
Definition at line 101 of file G4RunAlg.h.
|
private |
Definition at line 81 of file G4RunAlg.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
private |
Definition at line 84 of file G4RunAlg.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.