ATLAS Offline Software
xAODHeavyFlavorHadronFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // --------------------------------------------------
6 //
7 // File: GeneratorFilters/xAODHeavyFlavorHadronFilter.h
8 
9 // AuthorList:
10 // Marjorie Shapiro
11 //
12 // Based on SoftLeptonInJetFilter written by:
13 // A. Kaczmarska, F. Derue
14 
15 
16 #ifndef GENERATORFILTERSxAODHEAVYFLAVORHADRONFILTER_H
17 #define GENERATORFILTERSxAODHEAVYFLAVORHADRONFILTER_H
18 
23 #include "xAODTruth/TruthEvent.h"
25 
27 public:
28  xAODHeavyFlavorHadronFilter(const std::string& fname, ISvcLocator* pSvcLocator);
29  virtual StatusCode filterInitialize();
30  virtual StatusCode filterFinalize();
31  virtual StatusCode filterEvent();
32 
33 private:
34  // Setable Properties:-
35 
36  Gaudi::Property<double> m_charmPtMin{this,"CharmPtMin",2000.,"Min Pt of charm"};
37  Gaudi::Property<double> m_bottomPtMin{this,"BottomPtMin",5000.,"Min Pt of bottom"};
38  Gaudi::Property<double> m_charmEtaMax{this,"CharmEtaMax",3.0,"Max eta of charm"};
39  Gaudi::Property<double> m_bottomEtaMax{this,"BottomEtaMax",3.0,"Max eta of bottom"};
40  Gaudi::Property<double> m_cPtMin{this,"cPtMin",0.0,"Min Pt of c-quark"};
41  Gaudi::Property<double> m_bPtMin{this,"bPtMin",0.0,"Min Pt of b-quark"};
42  Gaudi::Property<double> m_cEtaMax{this,"cEtaMax",5.0,"Max eta of c-quark"};
43  Gaudi::Property<double> m_bEtaMax{this,"bEtaMax",5.0,"Max eta of b-quark"};
44  Gaudi::Property<double> m_jetPtMin{this,"JetPtMin",20000.,"Min Pt of jets"};
45  Gaudi::Property<double> m_jetEtaMax{this,"JetEtaMax",2.5,"Max eta of jets"};
46  Gaudi::Property<double> m_PDGPtMin{this,"PDGPtMin",2000.,"Min Pt of PDG identified particle"};
47  Gaudi::Property<double> m_PDGEtaMax{this,"PDGEtaMax",2.5,"Max eta of PDG identified particle"};
48  Gaudi::Property<int> m_PDGID{this,"PDGID",0,"PDG ID of a given particle"};
49  Gaudi::Property<bool> m_PDGAntiParticleToo{this,"PDGAntiParticleToo",true,"Request PDG antiparticle"};
50  Gaudi::Property<bool> m_RequestCharm{this,"RequestCharm",true,"Request a charm"};
51  Gaudi::Property<bool> m_RequestBottom{this,"RequestBottom",true,"Request a bottom"};
52  Gaudi::Property<bool> m_Request_cQuark{this,"Request_cQuark",true,"Request a c-quark"};
53  Gaudi::Property<bool> m_Request_bQuark{this,"Request_bQuark",true,"Request a b-quark"};
54  Gaudi::Property<bool> m_RequestSpecificPDGID{this,"RequestSpecificPDGID",false,"Request a specific PDG ID"};
55  Gaudi::Property<bool> m_RequireTruthJet{this,"RequireTruthJet",false,"Require truth jets"};
56  Gaudi::Property<double> m_deltaRFromTruth{this,"DeltaRFromTruth",0.4,"Delta R from truth jet"};
57  Gaudi::Property<std::string> m_TruthJetContainerName{this,"TruthContainerName","AntiKt4TruthJets","Truht jet container name"};
58 
59  // Local Member Data:-
60  int m_NPass;
61  int m_Nevt;
62  int m_NbPass;
63  int m_NcPass;
67 
68  // Private Methods:=
69 
70  // decide whether given particle is a B-hadron
71  bool isBwithWeakDK(const int pID) const;
72  // decide whether given particle is a D-hadron
73  bool isDwithWeakDK(const int pID) const;
74 
75 };
76 
77 #endif
xAODHeavyFlavorHadronFilter::m_cPtMin
Gaudi::Property< double > m_cPtMin
Definition: xAODHeavyFlavorHadronFilter.h:40
xAODHeavyFlavorHadronFilter::m_NbPass
int m_NbPass
Definition: xAODHeavyFlavorHadronFilter.h:62
xAODHeavyFlavorHadronFilter
Definition: xAODHeavyFlavorHadronFilter.h:26
xAODHeavyFlavorHadronFilter::m_jetPtMin
Gaudi::Property< double > m_jetPtMin
Definition: xAODHeavyFlavorHadronFilter.h:44
xAODHeavyFlavorHadronFilter::m_cEtaMax
Gaudi::Property< double > m_cEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:42
xAODHeavyFlavorHadronFilter::m_charmEtaMax
Gaudi::Property< double > m_charmEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:38
xAODHeavyFlavorHadronFilter::m_Request_cQuark
Gaudi::Property< bool > m_Request_cQuark
Definition: xAODHeavyFlavorHadronFilter.h:52
TruthParticleContainer.h
GenFilter.h
xAODHeavyFlavorHadronFilter::m_bEtaMax
Gaudi::Property< double > m_bEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:43
xAODHeavyFlavorHadronFilter::m_charmPtMin
Gaudi::Property< double > m_charmPtMin
Definition: xAODHeavyFlavorHadronFilter.h:36
xAODHeavyFlavorHadronFilter::m_PDGAntiParticleToo
Gaudi::Property< bool > m_PDGAntiParticleToo
Definition: xAODHeavyFlavorHadronFilter.h:49
xAODHeavyFlavorHadronFilter::m_Nevt
int m_Nevt
Definition: xAODHeavyFlavorHadronFilter.h:61
xAODHeavyFlavorHadronFilter::m_PDGPtMin
Gaudi::Property< double > m_PDGPtMin
Definition: xAODHeavyFlavorHadronFilter.h:46
xAODHeavyFlavorHadronFilter::m_NBHadronPass
int m_NBHadronPass
Definition: xAODHeavyFlavorHadronFilter.h:64
xAODHeavyFlavorHadronFilter::xAODHeavyFlavorHadronFilter
xAODHeavyFlavorHadronFilter(const std::string &fname, ISvcLocator *pSvcLocator)
Definition: xAODHeavyFlavorHadronFilter.cxx:12
TruthParticleAuxContainer.h
xAODHeavyFlavorHadronFilter::m_TruthJetContainerName
Gaudi::Property< std::string > m_TruthJetContainerName
Definition: xAODHeavyFlavorHadronFilter.h:57
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
xAODHeavyFlavorHadronFilter::m_NPass
int m_NPass
Definition: xAODHeavyFlavorHadronFilter.h:60
xAODHeavyFlavorHadronFilter::m_NPDGIDPass
int m_NPDGIDPass
Definition: xAODHeavyFlavorHadronFilter.h:66
xAODHeavyFlavorHadronFilter::m_jetEtaMax
Gaudi::Property< double > m_jetEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODHeavyFlavorHadronFilter::isBwithWeakDK
bool isBwithWeakDK(const int pID) const
Definition: xAODHeavyFlavorHadronFilter.cxx:186
xAODHeavyFlavorHadronFilter::m_NcPass
int m_NcPass
Definition: xAODHeavyFlavorHadronFilter.h:63
xAODHeavyFlavorHadronFilter::isDwithWeakDK
bool isDwithWeakDK(const int pID) const
Definition: xAODHeavyFlavorHadronFilter.cxx:202
xAODHeavyFlavorHadronFilter::filterEvent
virtual StatusCode filterEvent()
Definition: xAODHeavyFlavorHadronFilter.cxx:45
xAODHeavyFlavorHadronFilter::m_RequireTruthJet
Gaudi::Property< bool > m_RequireTruthJet
Definition: xAODHeavyFlavorHadronFilter.h:55
xAODHeavyFlavorHadronFilter::m_bottomEtaMax
Gaudi::Property< double > m_bottomEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:39
xAODHeavyFlavorHadronFilter::m_deltaRFromTruth
Gaudi::Property< double > m_deltaRFromTruth
Definition: xAODHeavyFlavorHadronFilter.h:56
xAODHeavyFlavorHadronFilter::m_RequestSpecificPDGID
Gaudi::Property< bool > m_RequestSpecificPDGID
Definition: xAODHeavyFlavorHadronFilter.h:54
xAODHeavyFlavorHadronFilter::m_RequestBottom
Gaudi::Property< bool > m_RequestBottom
Definition: xAODHeavyFlavorHadronFilter.h:51
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:67
xAODHeavyFlavorHadronFilter::m_RequestCharm
Gaudi::Property< bool > m_RequestCharm
Definition: xAODHeavyFlavorHadronFilter.h:50
xAODHeavyFlavorHadronFilter::m_NDHadronPass
int m_NDHadronPass
Definition: xAODHeavyFlavorHadronFilter.h:65
xAODHeavyFlavorHadronFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: xAODHeavyFlavorHadronFilter.cxx:22
xAODHeavyFlavorHadronFilter::m_Request_bQuark
Gaudi::Property< bool > m_Request_bQuark
Definition: xAODHeavyFlavorHadronFilter.h:53
xAODHeavyFlavorHadronFilter::m_bPtMin
Gaudi::Property< double > m_bPtMin
Definition: xAODHeavyFlavorHadronFilter.h:41
TruthParticle.h
TruthEventContainer.h
xAODHeavyFlavorHadronFilter::filterFinalize
virtual StatusCode filterFinalize()
Definition: xAODHeavyFlavorHadronFilter.cxx:34
xAODHeavyFlavorHadronFilter::m_PDGEtaMax
Gaudi::Property< double > m_PDGEtaMax
Definition: xAODHeavyFlavorHadronFilter.h:47
xAODHeavyFlavorHadronFilter::m_bottomPtMin
Gaudi::Property< double > m_bottomPtMin
Definition: xAODHeavyFlavorHadronFilter.h:37
TruthEvent.h
xAODHeavyFlavorHadronFilter::m_PDGID
Gaudi::Property< int > m_PDGID
Definition: xAODHeavyFlavorHadronFilter.h:48