5#ifndef ISF_ALGS_SIMKERNEL_H
6#define ISF_ALGS_SIMKERNEL_H 1
14#include "GaudiKernel/ToolHandle.h"
15#include "GaudiKernel/ServiceHandle.h"
42 class IMonitoringTool;
43 class IEventFilterTool;
72 SimKernel(
const std::string& name, ISvcLocator* pSvcLocator );
91 std::unique_ptr<McEventCollection>& shadowTruth,
102 ToolHandle<IGenEventFilter>
m_truthPreselectionTool{
this,
"TruthPreselectionTool",
"",
"Tool for filtering out quasi-stable particle daughters"};
104 BooleanProperty
m_useShadowEvent{
this,
"UseShadowEvent",
false,
"New approach to selecting particles for simulation" };
114 {
this,
"IDSimulationSelectors", {} },
115 {
this,
"BeamPipeSimulationSelectors", {} },
116 {
this,
"CaloSimulationSelectors", {} },
117 {
this,
"MSSimulationSelectors", {} },
118 {
this,
"CavernSimulationSelectors", {} }
bool prepareInput(const std::string &name, const std::vector< int64_t > &shape, const std::vector< T > &data, std::vector< std::shared_ptr< tc::InferInput > > &inputs)
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
bool m_doMemMon
The Memory Info Tool.
ServiceHandle< Simulation::IZeroLifetimePatcher > m_qspatcher
Quasi-Stable Particle Simulation Patcher.
SG::WriteHandle< McEventCollection > m_outputPileupTruth
output pileup truth collection
std::vector< ISimulationSvc * > m_simSvcs
Simulators to be used.
bool m_doCPUMon
CPU Benchmarking.
std::array< PublicToolHandleArray< ISimulationSelector >, AtlasDetDescr::fNumAtlasRegions > m_simSelectors
The Simulation Selector Chains.
PMonUtils::CustomBenchmark * m_benchSimID
long int m_numParticles
Statistics.
BooleanProperty m_useShadowEvent
ToolHandleArray< IEventFilterTool > m_eventFilters
The Event Filters.
StatusCode finalize()
Athena algorithm's interface method finalize()
ServiceHandle< ITruthSvc > m_truthRecordSvc
Central truth service.
std::vector< std::string > m_simSvcNames
SimSvc names.
StatusCode execute()
Athena algorithm's interface method execute()
ToolHandle< IGenEventFilter > m_truthPreselectionTool
SG::WriteHandle< McEventCollection > m_outputHardScatterTruth
output hard scatter truth collection
SimKernel(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters.
ISF::SimSvcID m_numSimSvcs
total number of SimSvcs used
ServiceHandle< IInputConverter > m_inputConverter
input->ISFParticle converter
SG::ReadHandle< McEventCollection > m_inputPileupEvgen
input pileup collection
SG::ReadHandle< McEventCollection > m_inputHardScatterEvgen
Input/output truth collections and input conversion.
unsigned int m_memUsageEvts
unsigned int m_numISFEvents
keep track of the number of events processed
StatusCode initSimSvcs(SimSelectorToolArray &simSelectorTools)
ToolHandle< IMonitoringTool > m_memMon
size_t m_maxParticleVectorSize
tuning
ServiceHandle< IParticleBroker > m_particleBroker
Central particle broker service.
ToolHandleArray< ISimulationSelector > SimSelectorToolArray
typedef for better readable code
uint8_t SimSvcID
Simulation service ID datatype.
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)