![]() |
ATLAS Offline Software
|
Core Athena algorithm for the Integrated Simulation Framework. More...
#include <SimKernelMT.h>
Public Member Functions | |
| StatusCode | initialize () override |
| Check user configuration and configure the algorithm state accordingly. | |
| StatusCode | execute (const EventContext &ctx) override |
| Check the validity of the MC truth event in the current Athena event. | |
| StatusCode | finalize () override |
| Implements empty finalize (implementation required by AthAlgorithm). | |
| bool | isClonable () const override |
| AthAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) | |
| Constructor with parameters: | |
| virtual StatusCode | sysInitialize () override |
| Override sysInitialize. | |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. | |
| bool | filterPassed (const EventContext &ctx) const |
| void | setFilterPassed (bool state, const EventContext &ctx) const |
| 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 |
| const EventContext & | getContext () const |
| Deprecated methods (use the ones with EventContext). | |
| bool | filterPassed () const |
| void | setFilterPassed (bool state) const |
Protected Member Functions | |
| virtual bool | isReEntrant () const override final |
| Legacy algorithms are not thread-safe. | |
| 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 | |
| ISimulatorTool & | identifySimulator (const ISF::ISFParticle &particle) |
| Returns the simulator to use for the given particle. | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| SG::ReadHandleKey< McEventCollection > | m_inputEvgenKey {this, "InputEvgenCollection", "", "Input EVGEN collection."} |
| Input Generator Truth collection. | |
| SG::WriteHandleKey< McEventCollection > | m_outputTruthKey {this, "OutputTruthCollection", "", "Output Truth collection."} |
| Output Simulation Truth collection. | |
| SG::WriteHandleKey< TrackRecordCollection > | m_caloEntryLayerKey {this, "CaloEntryLayerKey", "CaloEntryLayer", ""} |
| Output TrackRecordCollections. | |
| SG::WriteHandleKey< TrackRecordCollection > | m_muonEntryLayerKey {this, "MuonEntryLayerKey", "MuonEntryLayer", ""} |
| SG::WriteHandleKey< TrackRecordCollection > | m_muonExitLayerKey {this, "MuonExitLayerKey", "MuonExitLayer", ""} |
| BooleanProperty | m_useShadowEvent {this, "UseShadowEvent", false, "New approach to selecting particles for simulation" } |
| Gaudi::Property< bool > | m_forceGeoIDSvc {this, "AlwaysUseGeoIDSvc", false, "Force geoID recalculation for each particle" } |
| Force geoID recalculation for each particle. | |
| ToolHandle< IGenEventFilter > | m_truthPreselectionTool {this, "TruthPreselectionTool", "", "Tool for filtering out quasi-stable particle daughters"} |
| ServiceHandle< IInputConverter > | m_inputConverter {this, "InputConverter", "", "Input McEventCollection->ISFParticleContainer conversion service."} |
| Input converter service (from Generator->ISF particle types). | |
| ServiceHandle< ITruthSvc > | m_truthRecordSvc {this,"TruthRecordService", "ISF_MC15aPlusTruthService", ""} |
| Central truth service. | |
| ServiceHandle< Simulation::IZeroLifetimePatcher > | m_qspatcher {this, "QuasiStablePatcher", "", "Quasi-Stable Particle Simulation Patcher"} |
| Quasi-Stable Particle Simulation Patcher. | |
| ToolHandleArray< ISimulatorTool > | m_simulationTools {this, "SimulationTools", {}, ""} |
| Simulation Tools. | |
| ISimulatorTool * | m_particleKillerTool {} |
| When no appropriate simulator can be found for a given particle, the particle is sent to this "particle killer": | |
| PublicToolHandle< IEntryLayerTool > | m_entryLayerTool {this, "EntryLayerTool", "ISF_EntryLayerToolMT", ""} |
| AthenaTool responsible for writing Calo/Muon Entry/Exit Layer collection. | |
| ServiceHandle< IGeoIDSvc > | m_geoIDSvc {this, "GeoIDSvc", "", "Service to set particle GeoIDs"} |
| Service to set particle GeoIDs. | |
| ToolHandle< IParticleOrderingTool > | m_orderingTool {this, "ParticleOrderingTool", "", "Tool to set order of particles"} |
| Tool to set particle ordering. | |
| std::array< PublicToolHandleArray< ISimulationSelector >, AtlasDetDescr::fNumAtlasRegions > | m_simSelectors |
| The simulation selectors defining the "routing chain". | |
| std::map< ISF::SimulationFlavor, ISimulatorTool * > | m_simToolMap |
| Map of the simulation flavours used in this job to the corresponding Simulation Services. | |
| Gaudi::Property< size_t > | m_maxParticleVectorSize {this, "MaximumParticleVectorSize", 10240} |
| Number of particles simultaneously sent to simulator. | |
| 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 |
Friends | |
| class | ISFTesting::SimKernelMT_test |
| Allow the test class access to all methods. | |
Core Athena algorithm for the Integrated Simulation Framework.
This Athena algorithm dispatches all selected particles from the input collection to the attached simulators.
Definition at line 61 of file SimKernelMT.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| AthAlgorithm::AthAlgorithm | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Constructor with parameters:
Definition at line 57 of file AthAlgorithm.cxx.
|
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 |
Check the validity of the MC truth event in the current Athena event.
| StatusCode::SUCCESS | all HepMC::GenEvents of the current Athena event are valid |
| StatusCode::FAILURE | the MC truth collection could not be read |
| StatusCode::FAILURE | the MC truth collection does not have a valid tree structure |
Implements AthAlgorithm.
Definition at line 115 of file SimKernelMT.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.
|
inherited |
Definition at line 94 of file AthAlgorithm.cxx.
|
inherited |
Definition at line 98 of file AthAlgorithm.cxx.
|
override |
Implements empty finalize (implementation required by AthAlgorithm).
Definition at line 315 of file SimKernelMT.cxx.
|
inherited |
Deprecated methods (use the ones with EventContext).
Definition at line 90 of file AthAlgorithm.cxx.
|
private |
Returns the simulator to use for the given particle.
Definition at line 321 of file SimKernelMT.cxx.
|
override |
Check user configuration and configure the algorithm state accordingly.
Core Athena algorithm for the Integrated Simulation Framework.
Definition at line 27 of file SimKernelMT.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.
|
inlineoverride |
Definition at line 82 of file SimKernelMT.h.
|
inlinefinaloverrideprotectedvirtualinherited |
Legacy algorithms are not thread-safe.
Definition at line 111 of file AthAlgorithm.h.
|
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.
|
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.
|
inherited |
Definition at line 102 of file AthAlgorithm.cxx.
|
inherited |
Definition at line 106 of file AthAlgorithm.cxx.
|
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< Gaudi::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.
|
friend |
Allow the test class access to all methods.
Definition at line 64 of file SimKernelMT.h.
|
private |
Output TrackRecordCollections.
Definition at line 93 of file SimKernelMT.h.
|
privateinherited |
Pointer to StoreGate (detector store by default).
Definition at line 393 of file AthCommonDataStore.h.
|
private |
AthenaTool responsible for writing Calo/Muon Entry/Exit Layer collection.
Definition at line 119 of file SimKernelMT.h.
|
privateinherited |
Pointer to StoreGate (event store by default).
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 114 of file AthAlgorithm.h.
|
private |
Force geoID recalculation for each particle.
Definition at line 99 of file SimKernelMT.h.
|
private |
Service to set particle GeoIDs.
Definition at line 122 of file SimKernelMT.h.
|
private |
Input converter service (from Generator->ISF particle types).
Definition at line 104 of file SimKernelMT.h.
|
private |
Input Generator Truth collection.
Definition at line 89 of file SimKernelMT.h.
|
private |
Number of particles simultaneously sent to simulator.
Definition at line 141 of file SimKernelMT.h.
|
private |
Definition at line 94 of file SimKernelMT.h.
|
private |
Definition at line 95 of file SimKernelMT.h.
|
private |
Tool to set particle ordering.
Definition at line 125 of file SimKernelMT.h.
|
private |
Output Simulation Truth collection.
Definition at line 91 of file SimKernelMT.h.
|
private |
When no appropriate simulator can be found for a given particle, the particle is sent to this "particle killer":
Definition at line 116 of file SimKernelMT.h.
|
private |
Quasi-Stable Particle Simulation Patcher.
Definition at line 110 of file SimKernelMT.h.
|
private |
The simulation selectors defining the "routing chain".
Definition at line 128 of file SimKernelMT.h.
|
private |
Map of the simulation flavours used in this job to the corresponding Simulation Services.
Definition at line 138 of file SimKernelMT.h.
|
private |
Simulation Tools.
Definition at line 113 of file SimKernelMT.h.
|
private |
Definition at line 101 of file SimKernelMT.h.
|
private |
Central truth service.
Definition at line 107 of file SimKernelMT.h.
|
private |
Definition at line 97 of file SimKernelMT.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.