ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ISF::GenParticleGenericFilter Class Reference

Core Athena algorithm for the Integrated Simulation Framework. More...

#include <GenParticleGenericFilter.h>

Inheritance diagram for ISF::GenParticleGenericFilter:
Collaboration diagram for ISF::GenParticleGenericFilter:

Public Member Functions

 GenParticleGenericFilter (const std::string &t, const std::string &n, const IInterface *p)
 Constructor with framework parameters. More...
 
 ~GenParticleGenericFilter ()
 Empty Destructor. More...
 
StatusCode initialize ()
 Athena algtool's Hooks. More...
 
StatusCode finalize ()
 Athena algtool's Hooks. More...
 
bool pass (const HepMC::GenParticle &particle) const
 Interface method that returns whether the given particle passes all cuts or not. More...
 

Private Member Functions

bool check_cuts_passed (const HepMC::GenParticle &particle) const
 Check whether the given particle passes all configure cuts or not. More...
 

Private Attributes

double m_minEta
 the cuts defined by the use More...
 
double m_maxEta
 max pseudorapidity cut More...
 
double m_minPhi
 min phi cut More...
 
double m_maxPhi
 max phi cut More...
 
double m_minMom
 min momentum cut More...
 
double m_maxMom
 max momentum cut More...
 
PDGCodes m_pdgs
 list of accepted particle PDG IDs (any accepted if empty) More...
 
double m_maxApplicableRadius
 Geometrical region (=cylindrical volume around z-axis) within which this filter is applicable. More...
 

Detailed Description

Core Athena algorithm for the Integrated Simulation Framework.

This GenParticle filter provides a general way of selecting/filtering out particles during GenEvent read-in.

Definition at line 41 of file GenParticleGenericFilter.h.

Constructor & Destructor Documentation

◆ GenParticleGenericFilter()

ISF::GenParticleGenericFilter::GenParticleGenericFilter ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor with framework parameters.

Constructor.

Definition at line 25 of file GenParticleGenericFilter.cxx.

28  : base_class(t,n,p),
29  m_minEta(std::numeric_limits<decltype(m_minEta)>::lowest()),
30  m_maxEta(std::numeric_limits<decltype(m_maxEta)>::max()),
31  m_minPhi(-M_PI),
32  m_maxPhi(M_PI),
33  m_minMom(std::numeric_limits<decltype(m_minMom)>::lowest()),
34  m_maxMom(std::numeric_limits<decltype(m_maxMom)>::max()),
35  m_pdgs(),
36  m_maxApplicableRadius(std::numeric_limits<decltype(m_maxApplicableRadius)>::max())
37 {
38  // different cut parameters
39  declareProperty("MinEta",
40  m_minEta,
41  "Minimum Particle Pseudorapidity");
42  declareProperty("MaxEta",
43  m_maxEta,
44  "Maximum Particle Pseudorapidity");
45  declareProperty("MinPhi",
46  m_minPhi,
47  "Minimum Particle Phi");
48  declareProperty("MaxPhi",
49  m_maxPhi,
50  "Maximum Particle Phi");
51  declareProperty("MinMom",
52  m_minMom,
53  "Minimum Particle Momentum");
54  declareProperty("MaxMom",
55  m_maxMom,
56  "Maximum Particle Momentum");
57  declareProperty("ParticlePDG",
58  m_pdgs,
59  "List of accepted particle PDG IDs (any accepted if empty)");
60  declareProperty("MaxApplicableRadius",
62  "Only particles with ProductionVertexRadius<MaxApplicableRadius may get filtered out");
63 }

◆ ~GenParticleGenericFilter()

ISF::GenParticleGenericFilter::~GenParticleGenericFilter ( )
inline

Empty Destructor.

Definition at line 48 of file GenParticleGenericFilter.h.

48 {}

Member Function Documentation

◆ check_cuts_passed()

bool ISF::GenParticleGenericFilter::check_cuts_passed ( const HepMC::GenParticle particle) const
private

Check whether the given particle passes all configure cuts or not.

Definition at line 126 of file GenParticleGenericFilter.cxx.

126  {
127  const auto& momentum = particle.momentum();
128  int pdg = particle.pdg_id();
129 #endif
130  double mom = std::sqrt(momentum.x()*momentum.x()+momentum.y()*momentum.y()+momentum.z()*momentum.z());
131  double eta = momentum.eta();
132  double phi = momentum.phi();
133 
134  // check the particle pdg code
135  if( m_pdgs.size() && std::find(std::begin(m_pdgs), std::end(m_pdgs), pdg) == std::end(m_pdgs) ) {
136  return false;
137  }
138 
139  // check the momentum cuts
140  if (mom<m_minMom) {
141  return false;
142  }
143  if (mom>m_maxMom) {
144  return false;
145  }
146 
147  // check the eta cuts
148  if (eta<m_minEta || eta>m_maxEta) {
149  return false;
150  }
151 
152  // check the phi cuts
153  if (phi<m_minPhi || phi>m_maxPhi) {
154  return false;
155  }
156 
157  // all cuts passed
158  return true;
159 }

◆ finalize()

StatusCode ISF::GenParticleGenericFilter::finalize ( )

Athena algtool's Hooks.

Definition at line 76 of file GenParticleGenericFilter.cxx.

77 {
78  ATH_MSG_VERBOSE("finalize() ...");
79  ATH_MSG_VERBOSE("finalize() successful");
80  return StatusCode::SUCCESS;
81 }

◆ initialize()

StatusCode ISF::GenParticleGenericFilter::initialize ( )

Athena algtool's Hooks.

Definition at line 67 of file GenParticleGenericFilter.cxx.

68 {
69  ATH_MSG_VERBOSE("initialize() ...");
70  ATH_MSG_VERBOSE("initialize() successful");
71  return StatusCode::SUCCESS;
72 }

◆ pass()

bool ISF::GenParticleGenericFilter::pass ( const HepMC::GenParticle particle) const

Interface method that returns whether the given particle passes all cuts or not.

Returns whether the given particle passes all cuts or not.

Definition at line 102 of file GenParticleGenericFilter.cxx.

103 {
104  bool pass = true;
105  HepMC::ConstGenVertexPtr productionVertex = particle.production_vertex();
106  if (!productionVertex || productionVertex->position().perp()<=m_maxApplicableRadius) {
108  }
109  const auto momentum = particle.momentum();
110  ATH_MSG_VERBOSE( "GenParticle '" << particle << "' with "
111  << (productionVertex ? "pos: r=" + std::to_string(productionVertex->position().perp()) : "")
112  << ", mom: eta=" << momentum.eta() << " phi=" << momentum.phi()
113  << " did " << (pass ? "" : "NOT ")
114  << "pass the cuts.");
115  return pass;
116 }

Member Data Documentation

◆ m_maxApplicableRadius

double ISF::GenParticleGenericFilter::m_maxApplicableRadius
private

Geometrical region (=cylindrical volume around z-axis) within which this filter is applicable.

Definition at line 79 of file GenParticleGenericFilter.h.

◆ m_maxEta

double ISF::GenParticleGenericFilter::m_maxEta
private

max pseudorapidity cut

Definition at line 71 of file GenParticleGenericFilter.h.

◆ m_maxMom

double ISF::GenParticleGenericFilter::m_maxMom
private

max momentum cut

Definition at line 75 of file GenParticleGenericFilter.h.

◆ m_maxPhi

double ISF::GenParticleGenericFilter::m_maxPhi
private

max phi cut

Definition at line 73 of file GenParticleGenericFilter.h.

◆ m_minEta

double ISF::GenParticleGenericFilter::m_minEta
private

the cuts defined by the use

min pseudorapidity cut

Definition at line 70 of file GenParticleGenericFilter.h.

◆ m_minMom

double ISF::GenParticleGenericFilter::m_minMom
private

min momentum cut

Definition at line 74 of file GenParticleGenericFilter.h.

◆ m_minPhi

double ISF::GenParticleGenericFilter::m_minPhi
private

min phi cut

Definition at line 72 of file GenParticleGenericFilter.h.

◆ m_pdgs

PDGCodes ISF::GenParticleGenericFilter::m_pdgs
private

list of accepted particle PDG IDs (any accepted if empty)

Definition at line 76 of file GenParticleGenericFilter.h.


The documentation for this class was generated from the following files:
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ISF::GenParticleGenericFilter::m_minEta
double m_minEta
the cuts defined by the use
Definition: GenParticleGenericFilter.h:70
max
#define max(a, b)
Definition: cfImp.cxx:41
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
M_PI
#define M_PI
Definition: ActiveFraction.h:11
ISF::GenParticleGenericFilter::m_maxPhi
double m_maxPhi
max phi cut
Definition: GenParticleGenericFilter.h:73
ISF::GenParticleGenericFilter::m_maxMom
double m_maxMom
max momentum cut
Definition: GenParticleGenericFilter.h:75
ISF::GenParticleGenericFilter::m_maxApplicableRadius
double m_maxApplicableRadius
Geometrical region (=cylindrical volume around z-axis) within which this filter is applicable.
Definition: GenParticleGenericFilter.h:79
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ISF::GenParticleGenericFilter::m_minMom
double m_minMom
min momentum cut
Definition: GenParticleGenericFilter.h:74
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
ISF::GenParticleGenericFilter::m_minPhi
double m_minPhi
min phi cut
Definition: GenParticleGenericFilter.h:72
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
ISF::GenParticleGenericFilter::pass
bool pass(const HepMC::GenParticle &particle) const
Interface method that returns whether the given particle passes all cuts or not.
Definition: GenParticleGenericFilter.cxx:102
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
beamspotman.n
n
Definition: beamspotman.py:731
ISF::GenParticleGenericFilter::m_maxEta
double m_maxEta
max pseudorapidity cut
Definition: GenParticleGenericFilter.h:71
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
ISF::GenParticleGenericFilter::m_pdgs
PDGCodes m_pdgs
list of accepted particle PDG IDs (any accepted if empty)
Definition: GenParticleGenericFilter.h:76
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
HepMC::ConstGenVertexPtr
const HepMC::GenVertex * ConstGenVertexPtr
Definition: GenVertex.h:60
ISF::GenParticleGenericFilter::check_cuts_passed
bool check_cuts_passed(const HepMC::GenParticle &particle) const
Check whether the given particle passes all configure cuts or not.
Definition: GenParticleGenericFilter.cxx:126