11#ifndef ISF_SIMKERNELMT_H
12#define ISF_SIMKERNELMT_H 1
39#include "GaudiKernel/ServiceHandle.h"
47 class SimKernelMT_test;
68 SimKernelMT(
const std::string& name, ISvcLocator* pSvcLocator );
100 BooleanProperty
m_useShadowEvent{
this,
"UseShadowEvent",
false,
"New approach to selecting particles for simulation" };
102 Gaudi::Property<bool>
m_forceGeoIDSvc{
this,
"AlwaysUseGeoIDSvc",
false,
"Force geoID recalculation for each particle" };
104 ToolHandle<IGenEventFilter>
m_truthPreselectionTool{
this,
"TruthPreselectionTool",
"",
"Tool for filtering out quasi-stable particle daughters"};
122 PublicToolHandle<IEntryLayerTool>
m_entryLayerTool{
this,
"EntryLayerTool",
"ISF_EntryLayerToolMT",
""};
128 ToolHandle<IParticleOrderingTool>
m_orderingTool{
this,
"ParticleOrderingTool",
"",
"Tool to set order of particles"};
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
The generic ISF particle definition,.
SG::WriteHandleKey< McEventCollection > m_outputTruthKey
Output Simulation Truth collection.
ToolHandleArray< ISimulatorTool > m_simulationTools
Simulation Tools.
size_t m_maxParticleVectorSize
Number of particles simultaneously sent to simulator.
SG::ReadHandleKey< McEventCollection > m_inputEvgenKey
Input Generator Truth collection.
BooleanProperty m_useShadowEvent
SG::WriteHandleKey< TrackRecordCollection > m_muonEntryLayerKey
std::array< ToolHandleArray< ISimulationSelector >, AtlasDetDescr::fNumAtlasRegions > m_simSelectors
The simulation selectors defining the "routing chain".
virtual ~SimKernelMT()
Implements empty destructor.
std::map< ISF::SimulationFlavor, ISimulatorTool * > m_simToolMap
Map of the simulation flavours used in this job to the corresponding Simulation Services.
ToolHandle< IGenEventFilter > m_truthPreselectionTool
ToolHandle< IParticleOrderingTool > m_orderingTool
Tool to set particle ordering.
ISimulatorTool & identifySimulator(const ISF::ISFParticle &particle)
Returns the simulator to use for the given particle.
ServiceHandle< IGeoIDSvc > m_geoIDSvc
Service to set particle GeoIDs.
SG::WriteHandleKey< TrackRecordCollection > m_caloEntryLayerKey
Output TrackRecordCollections.
ServiceHandle< Simulation::IZeroLifetimePatcher > m_qspatcher
Quasi-Stable Particle Simulation Patcher.
StatusCode execute() override
Check the validity of the MC truth event in the current Athena event.
ServiceHandle< IInputConverter > m_inputConverter
Input converter service (from Generator->ISF particle types)
ISimulatorTool * m_particleKillerTool
When no appropriate simulator can be found for a given particle, the particle is sent to this "partic...
SimKernelMT(const std::string &name, ISvcLocator *pSvcLocator)
Implements standard AthAlgorithm constructor.
SG::WriteHandleKey< TrackRecordCollection > m_muonExitLayerKey
Gaudi::Property< bool > m_forceGeoIDSvc
Force geoID recalculation for each particle.
PublicToolHandle< IEntryLayerTool > m_entryLayerTool
AthenaTool responsible for writing Calo/Muon Entry/Exit Layer collection.
friend class ISFTesting::SimKernelMT_test
Allow the test class access to all methods.
StatusCode initialize() override
Check user configuration and configure the algorithm state accordingly.
ServiceHandle< ITruthSvc > m_truthRecordSvc
Central truth service.
StatusCode finalize() override
Implements empty finalize (implementation required by AthAlgorithm)
bool isClonable() const override
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Core Athena algorithm for the Integrated Simulation Framework.