]>
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 | ||
35b36c39 | 21 | AliRsnMiniPair() : fDCA1(0), fDCA2(0), fMother(-1), fMotherPDG(0), fNSisters(-1) {Int_t i = 3; while (i--) fPmother[i] = 0.0;} |
213adb92 | 22 | |
61f275d1 | 23 | Int_t &Mother() {return fMother;} |
24 | Int_t &MotherPDG() {return fMotherPDG;} | |
35b36c39 | 25 | Float_t &PmotherX() {return fPmother[0];} |
26 | Float_t &PmotherY() {return fPmother[1];} | |
27 | Float_t &PmotherZ() {return fPmother[2];} | |
213adb92 | 28 | void Fill(AliRsnMiniParticle *p1, AliRsnMiniParticle *p2, Double_t m1, Double_t m2, Double_t refMass); |
29 | void FillRef(Double_t mass); | |
30 | void InvertP(Bool_t first); | |
61f275d1 | 31 | |
213adb92 | 32 | Int_t ID(Bool_t mc) const {if (mc) return 1; else return 0;} |
61f275d1 | 33 | |
34 | TLorentzVector &P1 (Bool_t mc) {return fP1 [ID(mc)];} | |
35 | TLorentzVector &P2 (Bool_t mc) {return fP2 [ID(mc)];} | |
36 | TLorentzVector &Sum(Bool_t mc) {return fSum[ID(mc)];} | |
37 | TLorentzVector &Ref(Bool_t mc) {return fRef[ID(mc)];} | |
38 | ||
03d23846 | 39 | Double_t Pt(Bool_t mc) const {return fSum[ID(mc)].Pt();} |
40 | Double_t Pz(Bool_t mc) const {return fSum[ID(mc)].Pz();} | |
41 | Double_t Eta(Bool_t mc) const {return fSum[ID(mc)].Eta();} | |
42 | Double_t InvMass(Bool_t mc) const {return fSum[ID(mc)].M();} | |
61f275d1 | 43 | Double_t InvMassRes() const; |
44 | Double_t InvMassDiff() const; | |
03d23846 | 45 | Double_t Mt(Bool_t mc) const {return fRef[ID(mc)].Mt();} |
46 | Double_t Y(Bool_t mc) const {return fRef[ID(mc)].Rapidity();} | |
47 | Double_t PtRatio(Bool_t mc) const; | |
48 | Double_t DipAngle(Bool_t mc) const; | |
49 | Double_t CosThetaStar(Bool_t mc); | |
213adb92 | 50 | Double_t DaughterPt(Int_t daughterId, Bool_t mc); |
51 | Double_t DaughterDCA(Int_t daughterId); | |
52 | Double_t DCAProduct(); | |
397c0062 | 53 | void DaughterPxPyPz(Int_t daughterId, Bool_t mc, Double_t *pxpypz); |
088ca370 | 54 | Short_t NSisters() {return fNSisters;} |
213adb92 | 55 | |
397c0062 | 56 | private: |
57 | ||
03d23846 | 58 | TLorentzVector fP1 [2]; // 1st daughter momentum |
59 | TLorentzVector fP2 [2]; // 2nd daughter momentum | |
60 | TLorentzVector fSum[2]; // sum of momenta | |
61 | TLorentzVector fRef[2]; // same as 'fSum' but with nominal resonance mass | |
397c0062 | 62 | |
213adb92 | 63 | Double_t fDCA1; // 1st daughter DCA |
64 | Double_t fDCA2; // 2nd daughter DCA | |
65 | ||
03d23846 | 66 | Int_t fMother; // label of mothers (when common) |
67 | Int_t fMotherPDG; // PDG code of mother (when common) | |
088ca370 | 68 | Short_t fNSisters; // total number of mother's daughters in the MC stack |
35b36c39 | 69 | Float_t fPmother[3];// MC momentum of the pair corresponding mother |
397c0062 | 70 | |
35b36c39 | 71 | ClassDef(AliRsnMiniPair,3) |
397c0062 | 72 | }; |
03d23846 | 73 | |
74 | #endif |