ATLAS Offline Software
Simulation
ISF
ISF_SimulationSelectors
src
BaseSimulationSelector.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
BaseSimulationSelector.h
"
6
7
#include "
ISF_Interfaces/SimulationFlavor.h
"
8
#include "
ISF_Event/ISFParticle.h
"
9
10
12
ISF::BaseSimulationSelector::BaseSimulationSelector
(
const
std::string&
type
,
const
std::string&
name
,
const
IInterface*
parent
) :
13
base_class(
type
,
name
,
parent
)
14
{
15
m_simFlavorProp
.verifier().setLower(
ISF::UndefinedSim
+1);
16
m_simFlavorProp
.verifier().setUpper(
ISF::NFlavors
-1);
17
m_simFlavorProp
.declareUpdateHandler(&
ISF::BaseSimulationSelector::SimulationFlavorHandler
,
this
);
18
}
19
20
void
ISF::BaseSimulationSelector::SimulationFlavorHandler
(Gaudi::Details::PropertyBase&)
21
{
22
// FIXME would probably be better to have this in SimulationFlavor.h
23
switch
(m_simFlavorProp.value())
24
{
25
case
1: m_simflavor =
ISF::ParticleKiller
;
break
;
26
case
2: m_simflavor =
ISF::Fatras
;
break
;
27
case
3: m_simflavor =
ISF::Geant4
;
break
;
28
case
4: m_simflavor =
ISF::FastCaloSim
;
break
;
29
case
5: m_simflavor =
ISF::FastCaloSimV2
;
break
;
30
case
6: m_simflavor =
ISF::Parametric
;
break
;
31
case
7: m_simflavor =
ISF::FatrasPileup
;
break
;
32
case
8: m_simflavor =
ISF::FastCaloSimPileup
;
break
;
33
}
34
}
35
37
StatusCode
ISF::BaseSimulationSelector::sysInitialize
()
38
{
39
ATH_CHECK
(
AthAlgTool::sysInitialize
() );
40
41
if
(!m_simulator.empty()) {
42
ATH_CHECK
( m_simulator.retrieve() );
43
}
44
45
return
StatusCode::SUCCESS;
46
}
47
48
50
ISF::BaseSimulationSelector::~BaseSimulationSelector
() { }
51
53
bool
54
ISF::BaseSimulationSelector::selfSelect
(
const
ISFParticle
&
particle
)
const
55
{
56
bool
pass = passSelectorCuts(
particle
);
57
pass = ( m_invertCuts ? (!pass) : pass );
58
59
return
pass;
60
}
61
63
ServiceHandle<ISF::ISimulationSvc>
* ISF::BaseSimulationSelector::simulator
ATLAS_NOT_THREAD_SAFE
() {
64
return
&m_simulator;
65
}
66
69
bool
ISF::BaseSimulationSelector::isDynamic
() {
70
return
m_isDynamic;
71
}
72
74
ISF::SimSvcID
ISF::BaseSimulationSelector::simSvcID
ATLAS_NOT_THREAD_SAFE
() {
75
return
m_simulator->simSvcID();
76
}
77
79
ISF::SimulationFlavor
ISF::BaseSimulationSelector::simFlavor
()
const
{
80
return
m_simflavor;
81
}
82
84
void
ISF::BaseSimulationSelector::initializeSelector
() { }
85
88
void
ISF::BaseSimulationSelector::beginEvent
ATLAS_NOT_THREAD_SAFE
() { }
89
92
void
ISF::BaseSimulationSelector::endEvent
ATLAS_NOT_THREAD_SAFE
() { }
93
95
void
ISF::BaseSimulationSelector::update
ATLAS_NOT_THREAD_SAFE
(
const
ISFParticle& ) { }
ISF::BaseSimulationSelector::initializeSelector
virtual void initializeSelector() override
initialize Selector
Definition:
BaseSimulationSelector.cxx:84
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition:
ParticleHypothesis.h:79
ISF::NFlavors
@ NFlavors
Definition:
SimulationFlavor.h:29
ISF::BaseSimulationSelector::sysInitialize
virtual StatusCode sysInitialize() override
Gaudi sysInitialize() method.
Definition:
BaseSimulationSelector.cxx:37
ISF::ParticleKiller
@ ParticleKiller
Definition:
SimulationFlavor.h:21
ISF::ISFParticle
Definition:
ISFParticle.h:42
ATLAS_NOT_THREAD_SAFE
ServiceHandle< ISF::ISimulationSvc > *ISF::BaseSimulationSelector::simulator ATLAS_NOT_THREAD_SAFE()
return a handle on the simulator
Definition:
BaseSimulationSelector.cxx:63
ISF::BaseSimulationSelector::m_simFlavorProp
Gaudi::CheckedProperty< unsigned short > m_simFlavorProp
Definition:
BaseSimulationSelector.h:76
ISF::BaseSimulationSelector::SimulationFlavorHandler
void SimulationFlavorHandler(Gaudi::Details::PropertyBase &)
Definition:
BaseSimulationSelector.cxx:20
python.CaloAddPedShiftConfig.type
type
Definition:
CaloAddPedShiftConfig.py:42
ISF::FastCaloSimV2
@ FastCaloSimV2
Definition:
SimulationFlavor.h:25
ISFParticle.h
ISF::FatrasPileup
@ FatrasPileup
Definition:
SimulationFlavor.h:27
ISF::BaseSimulationSelector::simFlavor
virtual ISF::SimulationFlavor simFlavor() const override
return the simulation flavor
Definition:
BaseSimulationSelector.cxx:79
ISF::BaseSimulationSelector::selfSelect
virtual bool selfSelect(const ISFParticle &particle) const override
make the routing decision
Definition:
BaseSimulationSelector.cxx:54
ISF::Geant4
@ Geant4
Definition:
SimulationFlavor.h:23
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition:
AthCheckMacros.h:40
ISF::FastCaloSimPileup
@ FastCaloSimPileup
Definition:
SimulationFlavor.h:28
BaseSimulationSelector.h
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize
virtual StatusCode sysInitialize() override
Perform system initialization for an algorithm.
ISF::UndefinedSim
@ UndefinedSim
Definition:
SimulationFlavor.h:20
ISF::Fatras
@ Fatras
Definition:
SimulationFlavor.h:22
ISF::BaseSimulationSelector::~BaseSimulationSelector
virtual ~BaseSimulationSelector()
virtual destructor
Definition:
BaseSimulationSelector.cxx:50
ISF::SimSvcID
uint8_t SimSvcID
Simulation service ID datatype.
Definition:
SimSvcID.h:28
ISF::BaseSimulationSelector::BaseSimulationSelector
BaseSimulationSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition:
BaseSimulationSelector.cxx:12
ISF::BaseSimulationSelector::isDynamic
virtual bool isDynamic() override
return if is this a static or dynamic SimulationSelector (is used by fully dynamic particle routers)
Definition:
BaseSimulationSelector.cxx:69
ISF::Parametric
@ Parametric
Definition:
SimulationFlavor.h:26
ISF::SimulationFlavor
int SimulationFlavor
Identifier type for simulation flavor.
Definition:
SimulationFlavor.h:16
ISF::FastCaloSim
@ FastCaloSim
Definition:
SimulationFlavor.h:24
WriteBchToCool.update
update
Definition:
WriteBchToCool.py:67
SimulationFlavor.h
ServiceHandle< ISF::ISimulationSvc >
Generated on Mon Sep 29 2025 21:06:58 for ATLAS Offline Software by
1.8.18