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

#include <GenParticleSimQuasiStableFilter.h>

Inheritance diagram for ISF::GenParticleSimQuasiStableFilter:
Collaboration diagram for ISF::GenParticleSimQuasiStableFilter:

Public Member Functions

 GenParticleSimQuasiStableFilter (const std::string &t, const std::string &n, const IInterface *p)
 Constructor. More...
 
 ~GenParticleSimQuasiStableFilter ()
 Destructor. More...
 
StatusCode initialize ()
 Athena algtool's Hooks. More...
 
StatusCode finalize ()
 
bool pass (const HepMC::GenParticle &particle) const
 passes through to the private version More...
 

Private Attributes

std::vector< int > m_statuscode = {1,2}
 returns true if the the particle and all daughters are on the accept list More...
 
std::vector< double > m_minProdRadius = {30.19*Gaudi::Units::mm,0.0*Gaudi::Units::mm}
 minimum production radius below which particles should be ignored More...
 
std::vector< double > m_minDecayRadius = {30.19*Gaudi::Units::mm,30.19*Gaudi::Units::mm}
 minimum decay radius below which particles should be ignored More...
 

Detailed Description

Quasi stable particle and their daughter filter for HepMC particles to be used in the stack filling process. Checks this particle and all daughters.

Definition at line 34 of file GenParticleSimQuasiStableFilter.h.

Constructor & Destructor Documentation

◆ GenParticleSimQuasiStableFilter()

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

Constructor.

Definition at line 19 of file GenParticleSimQuasiStableFilter.cxx.

22  : base_class(t,n,p)
23 {
24  // different options
25  declareProperty("StatusCode", m_statuscode);
26  declareProperty("MinProdRadius", m_minProdRadius);
27  declareProperty("MinDecayRadius", m_minDecayRadius);
28 }

◆ ~GenParticleSimQuasiStableFilter()

ISF::GenParticleSimQuasiStableFilter::~GenParticleSimQuasiStableFilter ( )
inline

Destructor.

Definition at line 41 of file GenParticleSimQuasiStableFilter.h.

41 {}

Member Function Documentation

◆ finalize()

StatusCode ISF::GenParticleSimQuasiStableFilter::finalize ( )

Definition at line 74 of file GenParticleSimQuasiStableFilter.cxx.

75 {
76  ATH_MSG_VERBOSE("Finalizing ...");
77  return StatusCode::SUCCESS;
78 }

◆ initialize()

StatusCode ISF::GenParticleSimQuasiStableFilter::initialize ( )

Athena algtool's Hooks.

Definition at line 31 of file GenParticleSimQuasiStableFilter.cxx.

32 {
33  ATH_MSG_VERBOSE("Initializing ...");
34 
35  m_minProdRadius.resize(m_statuscode.size(),0);
36  m_minDecayRadius.resize(m_statuscode.size(),0);
37 
38  // All done!
39  return StatusCode::SUCCESS;
40 }

◆ pass()

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

passes through to the private version

Definition at line 45 of file GenParticleSimQuasiStableFilter.cxx.

46 {
47  auto particle=&particleref;
48 #endif
49  ATH_MSG_VERBOSE( "Checking whether " << particle << " passes the filter." );
50 
51  bool passFilter = false;
52  for(unsigned int i=0;i<m_statuscode.size();++i) {
53  if(particle->status()==m_statuscode[i]) {
54  passFilter=true;
55  if(particle->end_vertex() && (m_minDecayRadius[i] > particle->end_vertex()->position().perp()) ) passFilter = false;
56  if(particle->production_vertex() && (m_minProdRadius[i] > particle->production_vertex()->position().perp()) ) passFilter = false;
57  if(passFilter) break;
58  }
59  }
60 
61  if(passFilter) {
62  ATH_MSG_DEBUG( "Accpeting particle " << particle );
63  if(particle->production_vertex()) ATH_MSG_DEBUG(" prod r="<<particle->production_vertex()->position().perp()<<" : "<<particle->production_vertex ());
64  if(particle->end_vertex()) ATH_MSG_DEBUG(" decay r="<<particle->end_vertex()->position().perp()<<" : "<<particle->end_vertex ());
65  } else {
66 // ATH_MSG_DEBUG( "Rejecting particle " << particle );
67 // if(particle.production_vertex ()) ATH_MSG_DEBUG(" prod r="<<particle.production_vertex()->position().perp()<<", min="<<m_minProdRadius[i]<<" : "<<*(particle.production_vertex ()));
68 // if(particle.end_vertex ()) ATH_MSG_DEBUG(" decay r="<<particle.end_vertex()->position().perp()<<", min="<<m_minDecayRadius[i]<<" : "<<*(particle.end_vertex ()));
69  }
70 
71  return passFilter;
72 }

Member Data Documentation

◆ m_minDecayRadius

std::vector< double > ISF::GenParticleSimQuasiStableFilter::m_minDecayRadius = {30.19*Gaudi::Units::mm,30.19*Gaudi::Units::mm}
private

minimum decay radius below which particles should be ignored

Definition at line 58 of file GenParticleSimQuasiStableFilter.h.

◆ m_minProdRadius

std::vector< double > ISF::GenParticleSimQuasiStableFilter::m_minProdRadius = {30.19*Gaudi::Units::mm,0.0*Gaudi::Units::mm}
private

minimum production radius below which particles should be ignored

Definition at line 57 of file GenParticleSimQuasiStableFilter.h.

◆ m_statuscode

std::vector< int > ISF::GenParticleSimQuasiStableFilter::m_statuscode = {1,2}
private

returns true if the the particle and all daughters are on the accept list

status codes to accept

Definition at line 56 of file GenParticleSimQuasiStableFilter.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::GenParticleSimQuasiStableFilter::m_minProdRadius
std::vector< double > m_minProdRadius
minimum production radius below which particles should be ignored
Definition: GenParticleSimQuasiStableFilter.h:57
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
covarianceTool.passFilter
bool passFilter
Definition: covarianceTool.py:604
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ISF::GenParticleSimQuasiStableFilter::m_minDecayRadius
std::vector< double > m_minDecayRadius
minimum decay radius below which particles should be ignored
Definition: GenParticleSimQuasiStableFilter.h:58
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ISF::GenParticleSimQuasiStableFilter::m_statuscode
std::vector< int > m_statuscode
returns true if the the particle and all daughters are on the accept list
Definition: GenParticleSimQuasiStableFilter.h:56
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15