3 |
|
#include "MitAna/DataTree/interface/DecayParticle.h" |
4 |
|
|
5 |
|
ClassImp(mithep::DecayParticle) |
6 |
+ |
|
7 |
+ |
using namespace mithep; |
8 |
+ |
|
9 |
+ |
//-------------------------------------------------------------------------------------------------- |
10 |
+ |
Bool_t DecayParticle::HasDaughter(const Particle *p) const |
11 |
+ |
{ |
12 |
+ |
// Return true if given particle is among daughters. |
13 |
+ |
|
14 |
+ |
if(!p) return kFALSE; |
15 |
+ |
|
16 |
+ |
if (!NDaughters()) |
17 |
+ |
return kFALSE; |
18 |
+ |
|
19 |
+ |
for (UInt_t i=0; i<NDaughters(); ++i) |
20 |
+ |
if (Daughter(i)==p) |
21 |
+ |
return kTRUE; |
22 |
+ |
|
23 |
+ |
return kFALSE; |
24 |
+ |
} |
25 |
+ |
|
26 |
+ |
//-------------------------------------------------------------------------------------------------- |
27 |
+ |
Bool_t DecayParticle::HasCommonDaughter(const DecayParticle *p) const |
28 |
+ |
{ |
29 |
+ |
// Return true if a common daughter exists. |
30 |
+ |
|
31 |
+ |
if(!p) return kFALSE; |
32 |
+ |
|
33 |
+ |
for (UInt_t i=0; i<p->NDaughters(); ++i) |
34 |
+ |
if (HasDaughter(p->Daughter(i))) |
35 |
+ |
return kTRUE; |
36 |
+ |
|
37 |
+ |
return kFALSE; |
38 |
+ |
} |
39 |
+ |
|
40 |
+ |
//-------------------------------------------------------------------------------------------------- |
41 |
+ |
Bool_t DecayParticle::HasSameDaughters(const DecayParticle *p) const |
42 |
+ |
{ |
43 |
+ |
// Return true if daughters are the same. |
44 |
+ |
|
45 |
+ |
if(!p) return kFALSE; |
46 |
+ |
|
47 |
+ |
if (NDaughters()!= p->NDaughters()) |
48 |
+ |
return kFALSE; |
49 |
+ |
|
50 |
+ |
for (UInt_t i=0; i<p->NDaughters(); ++i) |
51 |
+ |
if (!HasDaughter(p->Daughter(i))) |
52 |
+ |
return kFALSE; |
53 |
+ |
|
54 |
+ |
return kTRUE; |
55 |
+ |
} |
56 |
+ |
|
57 |
+ |
//-------------------------------------------------------------------------------------------------- |
58 |
+ |
Double_t DecayParticle::PdgMass() const |
59 |
+ |
{ |
60 |
+ |
// Get mass from pdg lookup. |
61 |
+ |
|
62 |
+ |
TParticlePDG *pdgEntry = ParticlePdgEntry(); |
63 |
+ |
if (pdgEntry) |
64 |
+ |
return pdgEntry->Mass(); |
65 |
+ |
else { |
66 |
+ |
Error("PdgMass", |
67 |
+ |
"Absolute pdg code %i not found in table, returning mass=-99.0 GeV", fAbsPdgId); |
68 |
+ |
return -99.0; |
69 |
+ |
} |
70 |
+ |
} |