ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_SimulationSelectors
src
KinematicSimSelector.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// class include
6
#include "
KinematicSimSelector.h
"
7
8
#include "
GeneratorModules/GenData.h
"
9
11
ISF::KinematicSimSelector::KinematicSimSelector
(
const
std::string& t,
const
std::string& n,
const
IInterface* p)
12
:
BaseSimulationSelector
(t,n,p)
13
,
KinematicParticleCuts
()
14
{
15
declareProperty(
"MinPosEta"
,
m_cut_minPosEta
,
"Minimum Position Pseudorapidity"
);
16
declareProperty(
"MaxPosEta"
,
m_cut_maxPosEta
,
"Maximum Position Pseudorapidity"
);
17
declareProperty(
"MinMomEta"
,
m_cut_minMomEta
,
"Minimum Momentum Pseudorapidity"
);
18
declareProperty(
"MaxMomEta"
,
m_cut_maxMomEta
,
"Maximum Momentum Pseudorapidity"
);
19
declareProperty(
"MinMom"
,
m_cut_minMom2
,
"Minimum Particle Momentum"
);
20
declareProperty(
"MaxMom"
,
m_cut_maxMom2
,
"Maximum Particle Momentum"
);
21
declareProperty(
"MaxEkin"
,
m_cut_maxEkin
,
"Maximum Particle Kinetic Energy"
);
22
declareProperty(
"Charge"
,
m_cut_charge
,
"Particle Charge"
);
23
declareProperty(
"ParticlePDG"
,
m_cut_pdg
,
"Particle PDG Code"
);
24
}
25
27
ISF::KinematicSimSelector::~KinematicSimSelector
()
28
{
29
}
30
31
// Athena algtool's Hooks
32
StatusCode
ISF::KinematicSimSelector::initialize
()
33
{
34
ATH_MSG_VERBOSE
(
"Initializing ..."
);
35
auto
gendata = std::make_unique<GenData>();
36
double
mass = gendata->particleMass(abs(
m_cut_pdg
)).value_or(0.0);
37
38
// compute and store the square of the momentum cuts (faster comparisons)
39
if
( !(
m_cut_minMom2
<0.))
m_cut_minMom2
*=
m_cut_minMom2
;
40
if
( !(
m_cut_maxMom2
<0.))
m_cut_maxMom2
*=
m_cut_maxMom2
;
41
42
// if use kinetic energy
43
if
(!(
m_cut_maxEkin
< 0.))
m_cut_maxMom2
=
m_cut_maxEkin
* (
m_cut_maxEkin
+ 2 * mass);
44
45
return
StatusCode::SUCCESS;
46
}
47
48
49
StatusCode
ISF::KinematicSimSelector::finalize
()
50
{
51
ATH_MSG_VERBOSE
(
"Finalizing ..."
);
52
return
StatusCode::SUCCESS;
53
}
54
55
bool
ISF::KinematicSimSelector::passSelectorCuts
(
const
ISFParticle
& particle)
const
56
{
57
return
ISF::KinematicParticleCuts::pass
(particle);
58
}
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
GenData.h
KinematicSimSelector.h
ISF::BaseSimulationSelector::BaseSimulationSelector
BaseSimulationSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition
BaseSimulationSelector.cxx:12
ISF::ISFParticle
The generic ISF particle definition,.
Definition
ISFParticle.h:42
ISF::KinematicParticleCuts::m_cut_maxMom2
double m_cut_maxMom2
maximum squared particle momentum magnitude
Definition
KinematicParticleCuts.h:41
ISF::KinematicParticleCuts::m_cut_maxEkin
double m_cut_maxEkin
maximum particle kinetic energy
Definition
KinematicParticleCuts.h:42
ISF::KinematicParticleCuts::m_cut_maxMomEta
float m_cut_maxMomEta
maximum pseudorapidity of particle momentum
Definition
KinematicParticleCuts.h:39
ISF::KinematicParticleCuts::m_cut_maxPosEta
float m_cut_maxPosEta
maximum pseudorapidity of particle position
Definition
KinematicParticleCuts.h:37
ISF::KinematicParticleCuts::KinematicParticleCuts
KinematicParticleCuts()
Constructor.
ISF::KinematicParticleCuts::pass
bool pass(const ISFParticle &particle) const
check whether the given particle passes all cuts
ISF::KinematicParticleCuts::m_cut_minMomEta
float m_cut_minMomEta
minimum pseudorapidity of particle momentum
Definition
KinematicParticleCuts.h:38
ISF::KinematicParticleCuts::m_cut_minPosEta
float m_cut_minPosEta
minimum pseudorapidity of particle position
Definition
KinematicParticleCuts.h:36
ISF::KinematicParticleCuts::m_cut_minMom2
double m_cut_minMom2
minimum squarde particle momentum magnitude
Definition
KinematicParticleCuts.h:40
ISF::KinematicParticleCuts::m_cut_charge
float m_cut_charge
particle charge
Definition
KinematicParticleCuts.h:43
ISF::KinematicParticleCuts::m_cut_pdg
int m_cut_pdg
particle PDG code
Definition
KinematicParticleCuts.h:44
ISF::KinematicSimSelector::~KinematicSimSelector
~KinematicSimSelector()
Destructor.
Definition
KinematicSimSelector.cxx:27
ISF::KinematicSimSelector::KinematicSimSelector
KinematicSimSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition
KinematicSimSelector.cxx:11
ISF::KinematicSimSelector::initialize
virtual StatusCode initialize() override
Definition
KinematicSimSelector.cxx:32
ISF::KinematicSimSelector::finalize
virtual StatusCode finalize() override
Definition
KinematicSimSelector.cxx:49
ISF::KinematicSimSelector::passSelectorCuts
virtual bool passSelectorCuts(const ISFParticle &particle) const override
check whether given particle passes all cuts -> will be used for routing decision
Definition
KinematicSimSelector.cxx:55
Generated on
for ATLAS Offline Software by
1.17.0