]>
Commit | Line | Data |
---|---|---|
03d23846 | 1 | #ifndef ALIRSNMINIPAIR_H |
2 | #define ALIRSNMINIPAIR_H | |
3 | ||
4 | // | |
5 | // This object is used as lightweight temporary container | |
61f275d1 | 6 | // of all information needed from any input object and |
03d23846 | 7 | // useful for resonance analysis. |
61f275d1 | 8 | // |
03d23846 | 9 | |
10 | #include <TObject.h> | |
11 | #include <TLorentzVector.h> | |
213adb92 | 12 | #include "TClonesArray.h" |
13 | #include "AliRsnListOutput.h" | |
03d23846 | 14 | |
213adb92 | 15 | class AliRsnListOutput; |
03d23846 | 16 | class AliRsnMiniParticle; |
17 | ||
18 | class AliRsnMiniPair : public TObject { | |
19 | public: | |
20 | ||
088ca370 | 21 | AliRsnMiniPair() : fDCA1(0), fDCA2(0), fMother(-1), fMotherPDG(0), fNSisters(-1) { } |
213adb92 | 22 | |
61f275d1 | 23 | Int_t &Mother() {return fMother;} |
24 | Int_t &MotherPDG() {return fMotherPDG;} | |
213adb92 | 25 | void Fill(AliRsnMiniParticle *p1, AliRsnMiniParticle *p2, Double_t m1, Double_t m2, Double_t refMass); |
26 | void FillRef(Double_t mass); | |
27 | void InvertP(Bool_t first); | |
61f275d1 | 28 | |
213adb92 | 29 | Int_t ID(Bool_t mc) const {if (mc) return 1; else return 0;} |
61f275d1 | 30 | |
31 | TLorentzVector &P1 (Bool_t mc) {return fP1 [ID(mc)];} | |
32 | TLorentzVector &P2 (Bool_t mc) {return fP2 [ID(mc)];} | |
33 | TLorentzVector &Sum(Bool_t mc) {return fSum[ID(mc)];} | |
34 | TLorentzVector &Ref(Bool_t mc) {return fRef[ID(mc)];} | |
35 | ||
03d23846 | 36 | Double_t Pt(Bool_t mc) const {return fSum[ID(mc)].Pt();} |
37 | Double_t Pz(Bool_t mc) const {return fSum[ID(mc)].Pz();} | |
38 | Double_t Eta(Bool_t mc) const {return fSum[ID(mc)].Eta();} | |
39 | Double_t InvMass(Bool_t mc) const {return fSum[ID(mc)].M();} | |
61f275d1 | 40 | Double_t InvMassRes() const; |
41 | Double_t InvMassDiff() const; | |
03d23846 | 42 | Double_t Mt(Bool_t mc) const {return fRef[ID(mc)].Mt();} |
43 | Double_t Y(Bool_t mc) const {return fRef[ID(mc)].Rapidity();} | |
44 | Double_t PtRatio(Bool_t mc) const; | |
45 | Double_t DipAngle(Bool_t mc) const; | |
46 | Double_t CosThetaStar(Bool_t mc); | |
213adb92 | 47 | Double_t DaughterPt(Int_t daughterId, Bool_t mc); |
48 | Double_t DaughterDCA(Int_t daughterId); | |
49 | Double_t DCAProduct(); | |
397c0062 | 50 | void DaughterPxPyPz(Int_t daughterId, Bool_t mc, Double_t *pxpypz); |
088ca370 | 51 | Short_t NSisters() {return fNSisters;} |
213adb92 | 52 | |
397c0062 | 53 | private: |
54 | ||
03d23846 | 55 | TLorentzVector fP1 [2]; // 1st daughter momentum |
56 | TLorentzVector fP2 [2]; // 2nd daughter momentum | |
57 | TLorentzVector fSum[2]; // sum of momenta | |
58 | TLorentzVector fRef[2]; // same as 'fSum' but with nominal resonance mass | |
397c0062 | 59 | |
213adb92 | 60 | Double_t fDCA1; // 1st daughter DCA |
61 | Double_t fDCA2; // 2nd daughter DCA | |
62 | ||
03d23846 | 63 | Int_t fMother; // label of mothers (when common) |
64 | Int_t fMotherPDG; // PDG code of mother (when common) | |
088ca370 | 65 | Short_t fNSisters; // total number of mother's daughters in the MC stack |
397c0062 | 66 | |
213adb92 | 67 | ClassDef(AliRsnMiniPair,2) |
397c0062 | 68 | }; |
03d23846 | 69 | |
70 | #endif |