ATLAS Offline Software
Classes | Enumerations | Functions
MCTruthPartClassifier Namespace Reference

Classes

class  Info
 
struct  ROOT6_NamespaceAutoloadHook
 

Enumerations

enum  MCTC_bits : unsigned int {
  HadTau =0, Tau, hadron, frombsm,
  uncat, isbsm, isgeant, stable,
  totalBits
}
 

Functions

ParticleOrigin convHadronTypeToOrig (ParticleType pType, int motherPDG)
 
ParticleOrigin defHadronType (int pdg)
 
ParticleType defTypeOfHadron (int pdg)
 
ParticleType defTypeOfElectron (ParticleOrigin EleOrig, bool isPrompt)
 
ParticleType defTypeOfMuon (ParticleOrigin MuOrig, bool isPrompt)
 
ParticleType defTypeOfTau (ParticleOrigin TauOrig)
 
ParticleType defTypeOfPhoton (ParticleOrigin PhotOrig)
 
template<class T >
ParticleOrigin defJetOrig (const T &allJetMothers)
 
template<class T >
std::tuple< unsigned int, T > defOrigOfParticle (T thePart)
 
int isPrompt (const unsigned int classify, bool allow_prompt_tau_decays=true)
 
template<class T >
ParticleOutCome defOutComeOfElectron (T thePart)
 
template<class T >
ParticleOutCome defOutComeOfMuon (T thePart)
 
template<class T >
ParticleOutCome defOutComeOfTau (T thePart)
 
template<class T >
ParticleOutCome defOutComeOfPhoton (T thePart)
 

Enumeration Type Documentation

◆ MCTC_bits

enum MCTruthPartClassifier::MCTC_bits : unsigned int
Enumerator
HadTau 
Tau 
hadron 
frombsm 
uncat 
isbsm 
isgeant 
stable 
totalBits 

Definition at line 148 of file TruthClassifiers.h.

148 : unsigned int { HadTau=0, Tau, hadron, frombsm, uncat, isbsm, isgeant, stable, totalBits };

Function Documentation

◆ convHadronTypeToOrig()

ParticleOrigin MCTruthPartClassifier::convHadronTypeToOrig ( ParticleType  pType,
int  motherPDG 
)
inline

Definition at line 15 of file TruthClassifiers.h.

16 {
17  if (pType == CCbarMesonPart && abs(motherPDG) == MC::JPSI) return JPsi;
18  if (pType == BBbarMesonPart) return BBbarMeson;
19  if (pType == BottomMesonPart) return BottomMeson;
20  if (pType == BottomBaryonPart) return BottomBaryon;
21  if (pType == CCbarMesonPart) return CCbarMeson;
22  if (pType == CharmedMesonPart) return CharmedMeson;
23  if (pType == CharmedBaryonPart) return CharmedBaryon;
24  if (pType == StrangeBaryonPart) return StrangeBaryon;
25  if (pType == StrangeMesonPart) return StrangeMeson;
26  if (pType == LightBaryonPart) return LightBaryon;
27  if (pType == LightMesonPart) return LightMeson;
28  return NonDefined;
29 }

◆ defHadronType()

ParticleOrigin MCTruthPartClassifier::defHadronType ( int  pdg)
inline

Definition at line 31 of file TruthClassifiers.h.

31  {
32  if (abs(pdg) == MC::JPSI) return JPsi;
33  if (MC::isBBbarMeson(pdg)) return BBbarMeson;
34  if (MC::isCCbarMeson(pdg)) return CCbarMeson;
35  if (MC::isBottomMeson(pdg)) return BottomMeson;
36  if (MC::isCharmMeson(pdg)) return CharmedMeson;
37  if (MC::isBottomBaryon(pdg)) return BottomBaryon;
38  if (MC::isCharmBaryon(pdg)) return CharmedBaryon;
39  if (MC::isStrangeBaryon(pdg)) return StrangeBaryon;
40  if (MC::isLightBaryon(pdg)) return LightBaryon;
41  if (MC::isStrangeMeson(pdg)) return StrangeMeson;
42  if (MC::isLightMeson(pdg)) return LightMeson;
43  return NonDefined;
44 }

◆ defJetOrig()

template<class T >
ParticleOrigin MCTruthPartClassifier::defJetOrig ( const T &  allJetMothers)

Definition at line 131 of file TruthClassifiers.h.

131  {
132  ParticleOrigin partOrig = NonDefined;
133  for (const auto& it: allJetMothers) {
134  int pdg = abs(it->pdg_id());
135  if (MC::isTop(pdg)) partOrig = top;
136  if (MC::isZ(pdg)) partOrig = ZBoson;
137  if (MC::isW(pdg) && !(partOrig == top)) partOrig = WBoson;
138  if ((MC::isQuark(pdg) || MC::isGluon(pdg)) && partOrig != top && partOrig != ZBoson && partOrig != WBoson) partOrig = QCD;
139  if (MC::isHiggs(pdg)) return Higgs;
140  if (pdg == 35 || pdg == 36 || pdg == 37) return HiggsMSSM;
141  if (pdg == 32 || pdg == 33 || pdg == 34) return HeavyBoson;
142  if (pdg == 42) return LQ;
143  if (MC::isSUSY(pdg)) return SUSY;
144  if (MC::isBSM(pdg)) return OtherBSM;
145  }
146  return partOrig;
147 }

◆ defOrigOfParticle()

template<class T >
std::tuple<unsigned int, T> MCTruthPartClassifier::defOrigOfParticle ( thePart)

Definition at line 151 of file TruthClassifiers.h.

151  {
152 
153  T parent_hadron_ptr = nullptr;
154 
155  bool uncat = 0, fromHad = 0, fromTau = 0;
156  bool isPhysical = MC::isPhysical(thePart);
157  bool isGeant = HepMC::is_simulation_particle(thePart);
158  bool isBSM = MC::isBSM(thePart);
159  bool fromBSM = isBSM; // just to initialise
160 
161  auto prodVtx = thePart->production_vertex();
162  if (isPhysical && prodVtx && !isGeant) {
163  fromHad = MC::isFromHadron(thePart, parent_hadron_ptr, fromTau, fromBSM);
164  }
165  else uncat = 1;
166 
167  std::bitset<MCTC_bits::totalBits> classifier;
168  classifier[MCTC_bits::stable] = isPhysical;
169  classifier[MCTC_bits::isgeant] = isGeant;
170  classifier[MCTC_bits::isbsm] = isBSM;
171  classifier[MCTC_bits::uncat] = uncat;
172  classifier[MCTC_bits::frombsm] = fromBSM;
173  classifier[MCTC_bits::hadron] = fromHad;
174  classifier[MCTC_bits::Tau] = fromTau;
175  classifier[MCTC_bits::HadTau] = fromHad && fromTau;
176  unsigned int outputvalue = static_cast<unsigned int>(classifier.to_ulong());
177 
178  return std::make_tuple(outputvalue,parent_hadron_ptr);
179 }

◆ defOutComeOfElectron()

template<class T >
ParticleOutCome MCTruthPartClassifier::defOutComeOfElectron ( thePart)

Definition at line 189 of file TruthClassifiers.h.

189  {
190  ParticleOutCome PartOutCome = UnknownOutCome;
191  auto EndVert = MC::findSimulatedEndVertex(thePart);
192  if (EndVert == nullptr) return NonInteract;
193 
194  int ElecOutNumOfNucFr(0);
195  int ElecOutNumOfElec(0);
196  int NumOfHadr(0);
197  auto outgoing = EndVert->particles_out();
198  int NumOfElecDaug = outgoing.size();
199  for (const auto& p: outgoing) {
200  if (!p) continue;
201  int EndDaugType = p->pdg_id();
202  if (MC::isElectron(EndDaugType)) ElecOutNumOfElec++;
203  if (MC::isHadron(p) && !MC::isBeam(p)) NumOfHadr++;
204  if (EndDaugType > 1000000000 || EndDaugType == 0 || abs(EndDaugType) == 2212 || abs(EndDaugType) == 2112) ElecOutNumOfNucFr++;
205  }
206 
207  if (ElecOutNumOfNucFr != 0 || NumOfHadr != 0) PartOutCome = NuclInteraction;
208  if (ElecOutNumOfElec == 1 && NumOfElecDaug == 1) PartOutCome = ElectrMagInter;
209 
210  return PartOutCome;
211 }

◆ defOutComeOfMuon()

template<class T >
ParticleOutCome MCTruthPartClassifier::defOutComeOfMuon ( thePart)

Definition at line 213 of file TruthClassifiers.h.

213  {
214  ParticleOutCome PartOutCome = UnknownOutCome;
215  auto EndVert = MC::findSimulatedEndVertex(thePart);
216  if (EndVert == nullptr) return NonInteract;
217  int MuOutNumOfNucFr(0);
218  int NumOfHadr(0);
219  int NumOfEleNeutr(0);
220  int NumOfMuonNeutr(0);
221  int NumOfElec(0);
222  auto outgoing = EndVert->particles_out();
223  int NumOfMuDaug = outgoing.size();
224  for (const auto& p: outgoing) {
225  if (!p) continue;
226  int EndDaugType = p->pdg_id();
227  if (MC::isElectron(EndDaugType)) NumOfElec++;
228  if (abs(EndDaugType) == 12) NumOfEleNeutr++;
229  if (abs(EndDaugType) == 14) NumOfMuonNeutr++;
230  if (MC::isHadron(p) && !MC::isBeam(p)) NumOfHadr++;
231  if (EndDaugType > 1000000000 || EndDaugType == 0 || abs(EndDaugType) == 2212 || abs(EndDaugType) == 2112) MuOutNumOfNucFr++;
232  }
233 
234  if (MuOutNumOfNucFr != 0 || NumOfHadr != 0) PartOutCome = NuclInteraction;
235  if (NumOfMuDaug == 3 && NumOfElec == 1 && NumOfEleNeutr == 1 && NumOfMuonNeutr == 1) PartOutCome = DecaytoElectron;
236 
237  return PartOutCome;
238 }

◆ defOutComeOfPhoton()

template<class T >
ParticleOutCome MCTruthPartClassifier::defOutComeOfPhoton ( thePart)

Definition at line 268 of file TruthClassifiers.h.

268  {
269  ParticleOutCome PartOutCome = UnknownOutCome;
270  auto EndVert = MC::findSimulatedEndVertex(thePart);
271  if (EndVert == nullptr) return UnConverted;
272 
273  int PhtOutNumOfNucFr(0);
274  int PhtOutNumOfEl(0);
275  int PhtOutNumOfPos(0);
276  int PhtOutNumOfHadr(0);
277 
278  auto outgoing = EndVert->particles_out();
279  int NumOfPhtDaug = outgoing.size();
280  for (const auto& p: outgoing) {
281  if (!p) continue;
282  int EndDaugType = p->pdg_id();
283  if (EndDaugType > 1000000000 || EndDaugType == 0 || abs(EndDaugType) == 2212 || abs(EndDaugType) == 2112) PhtOutNumOfNucFr++;
284  if (EndDaugType == 11) PhtOutNumOfEl++;
285  if (EndDaugType == -11) PhtOutNumOfPos++;
286  if (MC::isHadron(p)&& !MC::isBeam(p) ) PhtOutNumOfHadr++;
287  }
288 
289  if (PhtOutNumOfEl == 1 && PhtOutNumOfPos == 1 && NumOfPhtDaug == 2) PartOutCome = Converted;
290  if ((NumOfPhtDaug > 1 && PhtOutNumOfNucFr != 0) || PhtOutNumOfHadr > 0) PartOutCome = NuclInteraction;
291 
292  return PartOutCome;
293 }

◆ defOutComeOfTau()

template<class T >
ParticleOutCome MCTruthPartClassifier::defOutComeOfTau ( thePart)

Definition at line 240 of file TruthClassifiers.h.

240  {
241  ParticleOutCome PartOutCome = UnknownOutCome;
242  auto EndVert = MC::findSimulatedEndVertex(thePart);
243  if (EndVert == nullptr) return NonInteract;
244  int NumOfTauDaug = EndVert->nOutgoingParticles();
245  auto tauFinalStatePart = MC::findFinalStateParticles(EndVert);
246  auto PD = DecayProducts(tauFinalStatePart);
247  int NumOfElec = PD.apd(11);
248  int NumOfMuon = PD.apd(13);
249  int NumOfElecNeut = PD.apd(12);
250  int NumOfMuonNeut = PD.apd(14);
251  int NumOfPhot = PD.apd(22);
252  int NumOfPi = PD.apd(211);
253  int NumOfKaon = PD.apd(321);
254  int NumOfNucFr = PD.apd(0) + PD.apd(1000000000, std::numeric_limits<int>::max());
255 
256  if (NumOfNucFr != 0) PartOutCome = NuclInteraction;
257  if ((NumOfTauDaug == 3 && NumOfElec == 1 && NumOfElecNeut == 1) || (NumOfTauDaug == (3 + NumOfPhot) && NumOfElecNeut == 1)) PartOutCome = DecaytoElectron;
258  if ((NumOfTauDaug == 3 && NumOfMuon == 1 && NumOfMuonNeut == 1) || (NumOfTauDaug == (3 + NumOfPhot) && NumOfMuonNeut == 1)) PartOutCome = DecaytoMuon;
259 
260  if (NumOfPi == 1 || NumOfKaon == 1) PartOutCome = OneProng;
261  if (NumOfPi + NumOfKaon == 3) PartOutCome = ThreeProng;
262  if (NumOfPi + NumOfKaon == 5) PartOutCome = FiveProng;
263 
264 
265  return PartOutCome;
266 }

◆ defTypeOfElectron()

ParticleType MCTruthPartClassifier::defTypeOfElectron ( ParticleOrigin  EleOrig,
bool  isPrompt 
)
inline

Definition at line 61 of file TruthClassifiers.h.

61  {
62 
63  if (EleOrig == NonDefined)
64  return UnknownElectron;
65 
66  if (EleOrig == WBoson || EleOrig == ZBoson || EleOrig == top || EleOrig == SingleElec || EleOrig == Higgs ||
67  EleOrig == HiggsMSSM || EleOrig == HeavyBoson || EleOrig == WBosonLRSM || EleOrig == NuREle || EleOrig == NuRMu ||
68  EleOrig == NuRTau || EleOrig == LQ || EleOrig == SUSY || EleOrig == DiBoson || EleOrig == ZorHeavyBoson ||
69  EleOrig == OtherBSM || EleOrig == MultiBoson || isPrompt) {
70  return IsoElectron;
71  }
72  if (EleOrig == JPsi || EleOrig == BottomMeson || EleOrig == CharmedMeson || EleOrig == BottomBaryon ||
73  EleOrig == CharmedBaryon || EleOrig == TauLep || EleOrig == Mu || EleOrig == QuarkWeakDec) {
74  return NonIsoElectron;
75  }
76  return BkgElectron;
77 }

◆ defTypeOfHadron()

ParticleType MCTruthPartClassifier::defTypeOfHadron ( int  pdg)
inline

Definition at line 46 of file TruthClassifiers.h.

46  {
47  if (MC::isBBbarMeson(pdg)) return BBbarMesonPart;
48  if (MC::isCCbarMeson(pdg)) return CCbarMesonPart;
49  if (MC::isBottomMeson(pdg)) return BottomMesonPart;
50  if (MC::isCharmMeson(pdg)) return CharmedMesonPart;
51  if (MC::isBottomBaryon(pdg)) return BottomBaryonPart;
52  if (MC::isCharmBaryon(pdg)) return CharmedBaryonPart;
53  if (MC::isStrangeBaryon(pdg)) return StrangeBaryonPart;
54  if (MC::isLightBaryon(pdg)) return LightBaryonPart;
55  if (MC::isStrangeMeson(pdg)) return StrangeMesonPart;
56  if (MC::isLightMeson(pdg)) return LightMesonPart;
57  return Unknown;
58 }

◆ defTypeOfMuon()

ParticleType MCTruthPartClassifier::defTypeOfMuon ( ParticleOrigin  MuOrig,
bool  isPrompt 
)
inline

Definition at line 80 of file TruthClassifiers.h.

80  {
81 
82  if (MuOrig == NonDefined) return UnknownMuon;
83 
84  if (MuOrig == WBoson || MuOrig == ZBoson || MuOrig == top || MuOrig == SingleMuon || MuOrig == Higgs ||
85  MuOrig == HiggsMSSM || MuOrig == HeavyBoson || MuOrig == WBosonLRSM || MuOrig == NuREle || MuOrig == NuRMu ||
86  MuOrig == NuRTau || MuOrig == LQ || MuOrig == SUSY || MuOrig == DiBoson || MuOrig == ZorHeavyBoson ||
87  MuOrig == OtherBSM || MuOrig == MultiBoson || isPrompt) {
88  return IsoMuon;
89  }
90  if (MuOrig == JPsi || MuOrig == BottomMeson || MuOrig == CharmedMeson || MuOrig == BottomBaryon ||
91  MuOrig == CharmedBaryon || MuOrig == TauLep || MuOrig == QuarkWeakDec) {
92  return NonIsoMuon;
93  }
94  // if (MuOrig == Pion || MuOrig == Kaon ) return DecayMuon;
95  return BkgMuon;
96 }

◆ defTypeOfPhoton()

ParticleType MCTruthPartClassifier::defTypeOfPhoton ( ParticleOrigin  PhotOrig)
inline

Definition at line 115 of file TruthClassifiers.h.

116 {
117  if (PhotOrig == NonDefined) return UnknownPhoton;
118 
119  if (PhotOrig == WBoson || PhotOrig == ZBoson || PhotOrig == SinglePhot || PhotOrig == Higgs ||
120  PhotOrig == HiggsMSSM || PhotOrig == HeavyBoson || PhotOrig == PromptPhot || PhotOrig == SUSY ||
121  PhotOrig == OtherBSM)
122  return IsoPhoton;
123 
124  if (PhotOrig == ISRPhot || PhotOrig == FSRPhot || PhotOrig == TauLep || PhotOrig == Mu || PhotOrig == NuREle ||
125  PhotOrig == NuRMu || PhotOrig == NuRTau)
126  return NonIsoPhoton;
127 
128  return BkgPhoton;
129 }

◆ defTypeOfTau()

ParticleType MCTruthPartClassifier::defTypeOfTau ( ParticleOrigin  TauOrig)
inline

Definition at line 98 of file TruthClassifiers.h.

98  {
99  if (TauOrig == NonDefined) return UnknownTau;
100 
101  if (TauOrig == WBoson || TauOrig == ZBoson || TauOrig == top || TauOrig == SingleMuon || TauOrig == Higgs ||
102  TauOrig == HiggsMSSM || TauOrig == HeavyBoson || TauOrig == WBosonLRSM || TauOrig == NuREle || TauOrig == NuRMu ||
103  TauOrig == NuRTau || TauOrig == SUSY || TauOrig == DiBoson || TauOrig == ZorHeavyBoson || TauOrig == OtherBSM ||
104  TauOrig == MultiBoson)
105  return IsoTau;
106 
107  if (TauOrig == JPsi || TauOrig == BottomMeson || TauOrig == CharmedMeson || TauOrig == BottomBaryon ||
108  TauOrig == CharmedBaryon || TauOrig == QuarkWeakDec)
109  return NonIsoTau;
110 
111  return BkgTau;
112 }

◆ isPrompt()

int MCTruthPartClassifier::isPrompt ( const unsigned int  classify,
bool  allow_prompt_tau_decays = true 
)
inline

Definition at line 180 of file TruthClassifiers.h.

180  {
181  std::bitset<MCTC_bits::totalBits> res(classify);
182  if (res.test(MCTC_bits::uncat)) return -1;
183  bool fromPromptTau = res.test(MCTC_bits::Tau) && !res.test(MCTC_bits::HadTau);
184  if (fromPromptTau) return int(allow_prompt_tau_decays);
185  return !res.test(MCTC_bits::hadron);
186  }
MC::isFromHadron
bool isFromHadron(T p, T hadron, bool &fromTau, bool &fromBSM)
Function to classify the particle.
Definition: HepMCHelpers.h:194
isStrangeMeson
bool isStrangeMeson(const T &p)
Definition: AtlasPID.h:685
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
NuRMu
@ NuRMu
Definition: TruthClasses.h:73
IsoPhoton
@ IsoPhoton
Definition: TruthClasses.h:23
isBottomMeson
bool isBottomMeson(const T &p)
Definition: AtlasPID.h:687
LightBaryonPart
@ LightBaryonPart
Definition: TruthClasses.h:40
MCTruthPartClassifier::frombsm
@ frombsm
Definition: TruthClassifiers.h:148
TauLep
@ TauLep
Definition: TruthClasses.h:63
StrangeMeson
@ StrangeMeson
Definition: TruthClasses.h:80
NuREle
@ NuREle
Definition: TruthClasses.h:72
MCTruthPartClassifier::hadron
@ hadron
Definition: TruthClassifiers.h:148
Mu
@ Mu
Definition: TruthClasses.h:62
isBottomBaryon
bool isBottomBaryon(const T &p)
Definition: AtlasPID.h:703
BBbarMeson
@ BBbarMeson
Definition: TruthClasses.h:85
BottomMeson
@ BottomMeson
Definition: TruthClasses.h:82
WBosonLRSM
@ WBosonLRSM
Definition: TruthClasses.h:71
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
NonIsoPhoton
@ NonIsoPhoton
Definition: TruthClasses.h:24
isBSM
bool isBSM(const T &p)
APID: graviton and all Higgs extensions are BSM.
Definition: AtlasPID.h:591
Common::classify
void classify(ToolHandle< IMCTruthClassifier > &m_classif, const xAOD::TruthParticle *theParticle, unsigned int &particleOutCome, unsigned int &result, int &hadron_pdg, unsigned int &particleType, unsigned int &particleOrigin)
Definition: Common.cxx:96
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
MCTruthPartClassifier::uncat
@ uncat
Definition: TruthClassifiers.h:148
MCTruthPartClassifier::isgeant
@ isgeant
Definition: TruthClassifiers.h:148
isCharmMeson
bool isCharmMeson(const T &p)
Definition: AtlasPID.h:686
skel.it
it
Definition: skel.GENtoEVGEN.py:396
ThreeProng
@ ThreeProng
Definition: TruthClasses.h:116
IsoElectron
@ IsoElectron
Definition: TruthClasses.h:11
SingleElec
@ SingleElec
Definition: TruthClasses.h:54
BkgPhoton
@ BkgPhoton
Definition: TruthClasses.h:25
Converted
@ Converted
Definition: TruthClasses.h:109
CharmedMesonPart
@ CharmedMesonPart
Definition: TruthClasses.h:36
ISRPhot
@ ISRPhot
Definition: TruthClasses.h:95
PromptPhot
@ PromptPhot
Definition: TruthClasses.h:93
BottomMesonPart
@ BottomMesonPart
Definition: TruthClasses.h:34
NuRTau
@ NuRTau
Definition: TruthClasses.h:74
UnknownMuon
@ UnknownMuon
Definition: TruthClasses.h:14
ZBoson
@ ZBoson
Definition: TruthClasses.h:67
isLightBaryon
bool isLightBaryon(const T &p)
Definition: AtlasPID.h:699
UnknownTau
@ UnknownTau
Definition: TruthClasses.h:18
StrangeMesonPart
@ StrangeMesonPart
Definition: TruthClasses.h:41
SUSY
Definition: SUSYCrossSection.h:24
BkgMuon
@ BkgMuon
Definition: TruthClasses.h:17
isLightMeson
bool isLightMeson(const T &p)
Definition: AtlasPID.h:683
WBoson
@ WBoson
Definition: TruthClasses.h:66
isGluon
bool isGluon(const T &p)
Definition: AtlasPID.h:322
FSRPhot
@ FSRPhot
Definition: TruthClasses.h:96
isHiggs
bool isHiggs(const T &p)
APID: HIGGS boson is only one particle.
Definition: AtlasPID.h:335
MCTruthPartClassifier::Tau
@ Tau
Definition: TruthClassifiers.h:148
BBbarMesonPart
@ BBbarMesonPart
Definition: TruthClasses.h:33
CCbarMeson
@ CCbarMeson
Definition: TruthClasses.h:83
NonDefined
@ NonDefined
Definition: TruthClasses.h:52
HiggsMSSM
@ HiggsMSSM
Definition: TruthClasses.h:69
MC::isPhysical
bool isPhysical(const T &p)
Identify if the particle is physical, i.e. is stable or decayed.
Definition: HepMCHelpers.h:51
CCbarMesonPart
@ CCbarMesonPart
Definition: TruthClasses.h:35
MCTruthPartClassifier::totalBits
@ totalBits
Definition: TruthClassifiers.h:148
isQuark
bool isQuark(const T &p)
PDG rule 2: Quarks and leptons are numbered consecutively starting from 1 and 11 respectively; to dot...
Definition: AtlasPID.h:134
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
CharmedBaryon
@ CharmedBaryon
Definition: TruthClasses.h:88
isCCbarMeson
bool isCCbarMeson(const T &p)
Definition: AtlasPID.h:690
QCD
@ QCD
Definition: TruthClasses.h:102
MC::findFinalStateParticles
auto findFinalStateParticles(V theVert) -> decltype(theVert->particles_out())
Function to find the stable particle descendants of the given vertex..
Definition: HepMCHelpers.h:247
HepMC::is_simulation_particle
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
Definition: MagicNumbers.h:355
BkgTau
@ BkgTau
Definition: TruthClasses.h:21
NonIsoTau
@ NonIsoTau
Definition: TruthClasses.h:20
UnknownElectron
@ UnknownElectron
Definition: TruthClasses.h:10
ParticleOrigin
ParticleOrigin
Definition: TruthClasses.h:51
xAOD::EgammaHelpers::isElectron
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
Definition: EgammaxAODHelpers.cxx:12
MultiBoson
@ MultiBoson
Definition: TruthClasses.h:101
isZ
bool isZ(const T &p)
Definition: AtlasPID.h:328
StrangeBaryon
@ StrangeBaryon
Definition: TruthClasses.h:87
LightMeson
@ LightMeson
Definition: TruthClasses.h:79
isCharmBaryon
bool isCharmBaryon(const T &p)
Definition: AtlasPID.h:702
UnConverted
@ UnConverted
Definition: TruthClasses.h:108
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
MCTruthPartClassifier::isbsm
@ isbsm
Definition: TruthClassifiers.h:148
DiBoson
@ DiBoson
Definition: TruthClasses.h:99
isBBbarMeson
bool isBBbarMeson(const T &p)
Definition: AtlasPID.h:694
IsoTau
@ IsoTau
Definition: TruthClasses.h:19
LQ
@ LQ
Definition: TruthClasses.h:75
MCTruthPartClassifier::stable
@ stable
Definition: TruthClassifiers.h:148
LightMesonPart
@ LightMesonPart
Definition: TruthClasses.h:42
PD
Definition: AthenaSummarySvc.cxx:46
JPsi
@ JPsi
Definition: TruthClasses.h:84
DecaytoElectron
@ DecaytoElectron
Definition: TruthClasses.h:113
CharmedMeson
@ CharmedMeson
Definition: TruthClasses.h:81
IsoMuon
@ IsoMuon
Definition: TruthClasses.h:15
StrangeBaryonPart
@ StrangeBaryonPart
Definition: TruthClasses.h:39
NonIsoMuon
@ NonIsoMuon
Definition: TruthClasses.h:16
OneProng
@ OneProng
Definition: TruthClasses.h:115
CharmedBaryonPart
@ CharmedBaryonPart
Definition: TruthClasses.h:38
isSUSY
bool isSUSY(const T &p)
PDG rule 11d Fundamental supersymmetric particles are identified by adding a nonzero n to the particl...
Definition: AtlasPID.h:388
SinglePhot
@ SinglePhot
Definition: TruthClasses.h:56
BottomBaryonPart
@ BottomBaryonPart
Definition: TruthClasses.h:37
UnknownOutCome
@ UnknownOutCome
Definition: TruthClasses.h:107
SUSY
@ SUSY
Definition: TruthClasses.h:77
HeavyBoson
@ HeavyBoson
Definition: TruthClasses.h:70
isHadron
bool isHadron(const T &p)
Definition: AtlasPID.h:300
NuclInteraction
@ NuclInteraction
Definition: TruthClasses.h:111
BottomBaryon
@ BottomBaryon
Definition: TruthClasses.h:89
LightBaryon
@ LightBaryon
Definition: TruthClasses.h:86
NonInteract
@ NonInteract
Definition: TruthClasses.h:110
QuarkWeakDec
@ QuarkWeakDec
Definition: TruthClasses.h:65
isW
bool isW(const T &p)
Definition: AtlasPID.h:331
isTop
bool isTop(const T &p)
Definition: AtlasPID.h:151
MCTruthPartClassifier::isPrompt
int isPrompt(const unsigned int classify, bool allow_prompt_tau_decays=true)
Definition: TruthClassifiers.h:180
ElectrMagInter
@ ElectrMagInter
Definition: TruthClasses.h:112
MC::isBeam
bool isBeam(const T &p)
Identify if the particle is beam particle.
Definition: HepMCHelpers.h:39
Higgs
@ Higgs
Definition: TruthClasses.h:68
SingleMuon
@ SingleMuon
Definition: TruthClasses.h:55
isStrangeBaryon
bool isStrangeBaryon(const T &p)
Definition: AtlasPID.h:701
OtherBSM
@ OtherBSM
Definition: TruthClasses.h:78
top
@ top
Definition: TruthClasses.h:64
FiveProng
@ FiveProng
Definition: TruthClasses.h:117
DecaytoMuon
@ DecaytoMuon
Definition: TruthClasses.h:114
MCTruthPartClassifier::HadTau
@ HadTau
Definition: TruthClassifiers.h:148
NonIsoElectron
@ NonIsoElectron
Definition: TruthClasses.h:12
BkgElectron
@ BkgElectron
Definition: TruthClasses.h:13
ParticleOutCome
ParticleOutCome
Definition: TruthClasses.h:105
ZorHeavyBoson
@ ZorHeavyBoson
Definition: TruthClasses.h:100
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
UnknownPhoton
@ UnknownPhoton
Definition: TruthClasses.h:22
MC::findSimulatedEndVertex
auto findSimulatedEndVertex(T thePart) -> decltype(thePart->end_vertex())
Function to find the end vertex of a particle.
Definition: HepMCHelpers.h:219