]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnMiniPair.h
putting the exotic test into one function. Including QA cluster removing exotics
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnMiniPair.h
CommitLineData
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 15class AliRsnListOutput;
03d23846 16class AliRsnMiniParticle;
17
18class AliRsnMiniPair : public TObject {
19public:
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