ATLAS Offline Software
ParentChildFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef GENERATORFILTERS_PARENTCHILDFILTER_H
5 #define GENERATORFILTERS_PARENTCHILDFILTER_H
6 
8 
11 class ParentChildFilter : public GenFilter {
12 public:
13 
14  ParentChildFilter(const std::string& name, ISvcLocator* pSvcLocator);
15  virtual StatusCode filterInitialize();
16  virtual StatusCode filterEvent();
17 
18 private:
19 
20  std::vector<int> m_PDGParent;
21  double m_PtMinParent;
22  double m_PtMaxParent;
29  std::vector<int> m_PDGChild;
30  double m_PtMinChild;
32 
33 #ifdef HEPMC3
34 
35 #else
36 
37  inline double getRapidity(const HepMC::GenParticle* p) const {
38  double e = (p)->momentum().e();
39  double pz = (p)->momentum().pz();
40  if (e == pz) return 9999.;
41  if (e == -pz) return -9999.;
42  double rapidity = 0.5 * log((e + pz) / (e - pz));
43  return rapidity;
44  };
45 #endif
46 };
47 
48 #endif
ParentChildFilter::getRapidity
double getRapidity(const HepMC::GenParticle *p) const
calculate the rapidity of a particle
Definition: ParentChildFilter.h:37
ParentChildFilter::m_PDGParent
std::vector< int > m_PDGParent
Definition: ParentChildFilter.h:20
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ParentChildFilter::m_EtaMinParent
double m_EtaMinParent
Definition: ParentChildFilter.h:26
ParentChildFilter::m_MassMaxParent
double m_MassMaxParent
Definition: ParentChildFilter.h:24
GenFilter.h
ParentChildFilter::m_PDGChild
std::vector< int > m_PDGChild
Definition: ParentChildFilter.h:29
ParentChildFilter::m_EtaRangeChild
double m_EtaRangeChild
Definition: ParentChildFilter.h:31
ParentChildFilter::filterEvent
virtual StatusCode filterEvent()
Definition: ParentChildFilter.cxx:45
ParentChildFilter::m_PtMinChild
double m_PtMinChild
Definition: ParentChildFilter.h:30
ParentChildFilter::m_PtMinParent
double m_PtMinParent
Definition: ParentChildFilter.h:21
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
ParentChildFilter::m_PtMaxParent
double m_PtMaxParent
Definition: ParentChildFilter.h:22
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
ParentChildFilter
Allows the user to search for any given decay Parent -> Child + X.
Definition: ParentChildFilter.h:11
ParentChildFilter::m_RapidityRangeParent
double m_RapidityRangeParent
Definition: ParentChildFilter.h:27
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ParentChildFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: ParentChildFilter.cxx:25
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
ParentChildFilter::ParentChildFilter
ParentChildFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: ParentChildFilter.cxx:7
ParentChildFilter::m_MassMinParent
double m_MassMinParent
Definition: ParentChildFilter.h:23
ParentChildFilter::m_RapidityMinParent
double m_RapidityMinParent
Definition: ParentChildFilter.h:28
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
ParentChildFilter::m_EtaRangeParent
double m_EtaRangeParent
Definition: ParentChildFilter.h:25
GenParticle
@ GenParticle
Definition: TruthClasses.h:30