ATLAS Offline Software
Loading...
Searching...
No Matches
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
7
9
11ISF::KinematicSimSelector::KinematicSimSelector(const std::string& t, const std::string& n, const IInterface* p)
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
30
31// Athena algtool's Hooks
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)
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
50{
51 ATH_MSG_VERBOSE("Finalizing ...");
52 return StatusCode::SUCCESS;
53}
54
56{
57 return ISF::KinematicParticleCuts::pass(particle);
58}
#define ATH_MSG_VERBOSE(x)
BaseSimulationSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
The generic ISF particle definition,.
Definition ISFParticle.h:42
double m_cut_maxMom2
maximum squared particle momentum magnitude
double m_cut_maxEkin
maximum particle kinetic energy
float m_cut_maxMomEta
maximum pseudorapidity of particle momentum
float m_cut_maxPosEta
maximum pseudorapidity of particle position
KinematicParticleCuts()
Constructor.
bool pass(const ISFParticle &particle) const
check whether the given particle passes all cuts
float m_cut_minMomEta
minimum pseudorapidity of particle momentum
float m_cut_minPosEta
minimum pseudorapidity of particle position
double m_cut_minMom2
minimum squarde particle momentum magnitude
float m_cut_charge
particle charge
KinematicSimSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
virtual StatusCode initialize() override
virtual StatusCode finalize() override
virtual bool passSelectorCuts(const ISFParticle &particle) const override
check whether given particle passes all cuts -> will be used for routing decision