]>
Commit | Line | Data |
---|---|---|
2dab9030 | 1 | // |
2 | // Class AliRsnMother | |
3 | // | |
4 | // Implementation of a pair of tracks, for several purposes | |
5 | // - computing the total 4-momentum & inv. mass for output histos filling | |
6 | // - evaluating cut checks on the pair of particles | |
7 | // - evaluating any kind of kinematic value over their sum | |
8 | // | |
9 | // authors: Martin Vala (martin.vala@cern.ch) | |
10 | // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it) | |
11 | // | |
12 | ||
13 | #ifndef ALIRSNMOTHER_H | |
14 | #define ALIRSNMOTHER_H | |
15 | ||
2dab9030 | 16 | #include "AliRsnDaughter.h" |
17 | ||
2a1c7696 | 18 | class AliRsnMother : public TObject { |
19 | public: | |
20 | ||
21 | AliRsnMother(); | |
22 | AliRsnMother(const AliRsnMother &obj); | |
23 | AliRsnMother& operator=(const AliRsnMother &obj); | |
24 | virtual ~AliRsnMother(); | |
25 | ||
747592c1 | 26 | Bool_t IsUsingMC() const {return fUseMC;} |
27 | AliRsnDaughter* GetDaughter(const Int_t &index) const {if (index == 0 || index == 1) return fDaughter[index]; return 0x0;} | |
28 | AliRsnDaughter& GetDaughterRef(const Int_t &index) const {if (index < 1) return (*fDaughter[1]); return (*fDaughter[0]);} | |
29 | TLorentzVector& Sum() {return fSum;} | |
30 | TLorentzVector& SumMC() {return fSumMC;} | |
31 | ||
2a1c7696 | 32 | Double_t AngleTo(AliRsnDaughter track, Bool_t mc = kFALSE) const {return fSum.Angle(track.P(mc).Vect());} |
33 | Double_t CosThetaStar(Bool_t first = kTRUE, Bool_t useMC = kFALSE); | |
34 | ||
2a1c7696 | 35 | Bool_t IsLabelEqual() const {return abs(fDaughter[0]->GetLabel()) == abs(fDaughter[1]->GetLabel());} |
36 | Bool_t IsIndexEqual() const {return (fDaughter[0]->GetID() == fDaughter[1]->GetID());} | |
37 | Int_t CommonMother(Int_t &m0, Int_t &m1) const; | |
38 | Int_t CommonMother() const {Int_t d0, d1; return CommonMother(d0, d1);} | |
39 | ||
40 | void SetDaughters(AliRsnDaughter * const daughter1, Double_t mass1, AliRsnDaughter * const daughter2, Double_t mass2); | |
41 | void ResetPair(); | |
42 | void PrintInfo(const Option_t *option = "ALL") const; | |
43 | Bool_t CheckPair() const; | |
2a1c7696 | 44 | |
45 | private: | |
46 | ||
47 | Bool_t fUseMC; // choose if momenta are taken from ESD/AOD or MC | |
48 | AliRsnDaughter *fDaughter[2]; // elements of the pair | |
49 | TLorentzVector fSum; // sum computed from the two daughters | |
50 | TLorentzVector fSumMC; // sum computed from the two daughters | |
51 | ||
52 | ClassDef(AliRsnMother, 1) | |
2dab9030 | 53 | }; |
54 | ||
55 | #endif |