ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/src/DecayParticle.cc
Revision: 1.5
Committed: Wed Oct 29 17:02:55 2008 UTC (16 years, 6 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_006b, Mit_006a, Mit_006
Changes since 1.4: +49 -1 lines
Log Message:
Added daughter comparison functions to DecayParticle

File Contents

# User Rev Content
1 bendavid 1.5 // $Id: DecayParticle.cc,v 1.4 2008/09/30 12:53:59 bendavid Exp $
2 loizides 1.1
3     #include "MitAna/DataTree/interface/DecayParticle.h"
4    
5     ClassImp(mithep::DecayParticle)
6 bendavid 1.3
7     using namespace mithep;
8    
9     //--------------------------------------------------------------------------------------------------
10 bendavid 1.4 Double_t DecayParticle::Charge() const
11     {
12     // Return sum of charge of daughter particles.
13    
14     Double_t charge = 0;
15     for (UInt_t i=0; i<NDaughters(); ++i)
16     charge += DaughterDat(i)->Charge();
17    
18     return charge;
19     }
20    
21     //--------------------------------------------------------------------------------------------------
22 bendavid 1.3 Double_t DecayParticle::PdgMass() const
23     {
24     // Get Mass from Pdg Lookup
25    
26     TParticlePDG* pdgEntry = ParticlePdgEntry();
27     if (pdgEntry)
28     return pdgEntry->Mass();
29     else {
30     return -99.0;
31     printf("Absolute Pdg Code %i not found in table, returning Mass=-99.0 GeV", fAbsPdgId);
32     }
33     }
34 bendavid 1.5
35     //--------------------------------------------------------------------------------------------------
36     Bool_t DecayParticle::HasDaughter(const Particle* p) const
37     {
38     // Return true if given particle is among daughters.
39    
40     if(!p) return kFALSE;
41    
42     if (!NDaughters())
43     return kFALSE;
44    
45     for (UInt_t i=0; i<NDaughters(); ++i)
46     if (Daughter(i)==p)
47     return kTRUE;
48    
49     return kFALSE;
50     }
51    
52     //--------------------------------------------------------------------------------------------------
53     Bool_t DecayParticle::HasCommonDaughter(const DecayParticle *p) const
54     {
55     // Return true if a common daughter exists.
56    
57     if(!p) return kFALSE;
58    
59     for (UInt_t i=0; i<p->NDaughters(); ++i)
60     if (HasDaughter(p->Daughter(i)))
61     return kTRUE;
62    
63     return kFALSE;
64     }
65    
66     //--------------------------------------------------------------------------------------------------
67     Bool_t DecayParticle::HasSameDaughters(const DecayParticle* p) const
68     {
69     // Return true if daughters are the same.
70    
71     if(!p) return kFALSE;
72    
73     if (NDaughters()!= p->NDaughters())
74     return kFALSE;
75    
76     for (UInt_t i=0; i<p->NDaughters(); ++i)
77     if (!HasDaughter(p->Daughter(i)))
78     return kFALSE;
79    
80     return kTRUE;
81     }