AliPhysics  3abf71f (3abf71f)
Cumulants.h
Go to the documentation of this file.
1 #ifndef Cumulants_h
2 #define Cumulants_h
3 
4 #include <vector>
5 #include <TNamed.h>
6 #include <TList.h>
7 #include <TObjArray.h>
8 #include <TParticle.h>
9 #include <TComplex.h>
10 #include <AliVParticle.h>
11 
12 class CPart;
13 class VPart;
14 class TH1;
15 
16 class Cumulants : public TNamed {
17  public:
18  Cumulants(const char *name="cumulants", Int_t mbins=350, Int_t minM=10);
19  virtual ~Cumulants() {;}
20  void AddQC4withEG(Double_t etagap);
21  void EnableEG();
22  void EnableQC();
23  void EnableQC4with4NL(Int_t mn=50, Double_t etamin=0.0);
24  void EnableQC4with3NL(Int_t mn=100, Double_t etamin=0.0);
25  void EnableQC4withEG();
26  TList *GetList() const { return fList; }
27  Int_t GetM() const { return fM; }
28  void RunAll();
29  void SetTracks(TObjArray &trks, Bool_t doKinCuts=1);
31  void SetDebug(Bool_t b) { fDoDebug = b; }
32  void SetPrint(Bool_t b) { fDoPrint = b; }
33  protected:
34  void RunEG();
35  void RunQC();
36  void RunQC4with4NL();
37  void RunQC4with3NL();
38  void RunQC4withEG();
39  void RunQC4withEG(Double_t etagap, Int_t &nn, Int_t &np, Double_t &val2, Double_t &val4);
40  Int_t fCumMBins; //number of M bins
41  Int_t fMinM; //minimum number of M
42  Double_t fEtaMin; //min eta cut
43  Double_t fEtaMax; //max eta cut
44  Double_t fPtMin; //min pt cut
45  Double_t fPtMax; //max pt cut
46  Bool_t fDoEtaGap; //=true do eta gap method
47  Bool_t fDoCharge; //=true do charge
48  Bool_t fDoQC; //=true do QC method
49  Bool_t fDoQC44; //=true do QC with 4 nested loops
50  Int_t fMaxNL4; //maximum M for which 4NL will be executed
51  Double_t fEGminNL4; //minimum eta gap between particles in 4NL
52  Bool_t fDoQC43; //=true do QC with 3 nested loops
53  Int_t fMaxNL3; //maximum M for which 3NL will be executed
54  Double_t fEGminNL3; //minimum eta gap between particles in 3NL
55  Bool_t fDoQC4withEG; //=true do QC with 2 eta gaps
56  Bool_t fDoDebug; //=true do debug statements
57  Bool_t fDoPrint; //=true do print statements
58  std::vector<Double_t> fEGCuts; //eta gap cuts for two particle correlations
59  std::vector<Double_t> fEGQCCuts; //eta gap cuts for QC4
60  std::vector<Double_t> fEGC2;
61  std::vector<Double_t> fEGC3;
62  std::vector<Double_t> fEGS2;
63  std::vector<Double_t> fEGS3;
64  std::vector<Int_t> fEGCounts;
65  TComplex fQC[7];
67  std::vector<CPart> fParts;
69  TH1 *fHists[999];
70  ClassDef(Cumulants,1) //Cumulant class (CL)
71 };
72 
73 class CPart {
74  public:
75  CPart() : fPt(0), fEta(0), fPhi(0), fCharge(0) {;}
76  CPart(Double_t pt, Double_t eta, Double_t phi, Short_t ch) : fPt(pt), fEta(eta), fPhi(TVector2::Phi_0_2pi(phi)), fCharge(ch) {;}
77  CPart(const CPart &p) : fPt(p.fPt), fEta(p.fEta), fPhi(p.fPhi), fCharge(p.fCharge) {;}
78  CPart(const AliVParticle &p) : fPt(p.Pt()), fEta(p.Eta()), fPhi(TVector2::Phi_0_2pi(p.Phi())), fCharge(p.Charge()) {;}
79  CPart(const TParticle &p);
80  Double_t Pt() const {return fPt;}
81  Double_t Eta() const {return fEta;}
82  Double_t Phi() const {return fPhi;}
83  Short_t Charge() const {return fCharge;}
84  protected:
85  Double_t fPt; //pt
86  Double_t fEta; //eta
87  Double_t fPhi; //phi
88  Short_t fCharge; //charge
89 };
90 
91 class VPart: public AliVParticle {
92  public:
93  VPart() : AliVParticle(), fMom(), fCharge(0) {;}
94  VPart(const VPart &p) : AliVParticle(p), fMom(p.fMom), fCharge(p.fCharge) {;}
95  VPart& operator=(const VPart &p) { return *this;}
96  virtual ~VPart() {;}
97  virtual Double_t Px() const {return 0;}
98  virtual Double_t Py() const {return 0;}
99  virtual Double_t Pz() const {return 0;}
100  virtual Double_t Pt() const {return 0;}
101  virtual Double_t P() const {return 0;}
102  virtual Bool_t PxPyPz(Double_t p[3]) const {return 0;};
103  virtual Double_t Xv() const {return 0;};
104  virtual Double_t Yv() const {return 0;};
105  virtual Double_t Zv() const {return 0;};
106  virtual Bool_t XvYvZv(Double_t x[3]) const {return 0;};
107  virtual Double_t OneOverPt() const {return 0;}
108  virtual Double_t Phi() const {return 0;}
109  virtual Double_t Theta() const {return 0;}
110  virtual Double_t E() const {return 0;}
111  virtual Double_t M() const {return 0;}
112  virtual Double_t Eta() const {return 0;}
113  virtual Double_t Y() const {return 0;}
114  virtual Short_t Charge() const {return 0;}
115  virtual Int_t GetLabel() const {return 0;}
116  virtual Int_t PdgCode() const {return 0;}
117  virtual const Double_t *PID() const {return 0;};
118  protected:
119  TVector3 fMom; //momentum
120  Short_t fCharge; //charge
121  ClassDef(VPart, 1) // Virtual particle (CL)
122 };
123 
124 #endif
Double_t fEGminNL4
Definition: Cumulants.h:51
Short_t fCharge
Definition: Cumulants.h:120
VPart()
Definition: Cumulants.h:93
Int_t fMaxNL3
Definition: Cumulants.h:53
Double_t fPt
Definition: Cumulants.h:85
Double_t fPtMin
Definition: Cumulants.h:44
std::vector< Double_t > fEGQCCuts
Definition: Cumulants.h:59
double Double_t
Definition: External.C:58
virtual Double_t Y() const
Definition: Cumulants.h:113
virtual Double_t OneOverPt() const
Definition: Cumulants.h:107
Double_t Eta() const
Definition: Cumulants.h:81
CPart(const CPart &p)
Definition: Cumulants.h:77
Double_t fEta
Definition: Cumulants.h:86
Bool_t fDoQC
Definition: Cumulants.h:48
VPart & operator=(const VPart &p)
Definition: Cumulants.h:95
Int_t fMaxNL4
Definition: Cumulants.h:50
void EnableQC4with4NL(Int_t mn=50, Double_t etamin=0.0)
Definition: Cumulants.cxx:153
void AddQC4withEG(Double_t etagap)
Definition: Cumulants.cxx:39
TList * fList
vector with particles
Definition: Cumulants.h:68
void EnableEG()
Definition: Cumulants.cxx:58
void RunQC()
Definition: Cumulants.cxx:271
TH1 * fHists[999]
list with histograms
Definition: Cumulants.h:69
std::vector< CPart > fParts
number of particles
Definition: Cumulants.h:67
virtual ~Cumulants()
Definition: Cumulants.h:19
Int_t GetM() const
Definition: Cumulants.h:27
Bool_t fDoQC4withEG
Definition: Cumulants.h:55
void RunAll()
Definition: Cumulants.cxx:190
virtual Int_t GetLabel() const
Definition: Cumulants.h:115
Int_t fMinM
Definition: Cumulants.h:41
Int_t fCumMBins
Definition: Cumulants.h:40
virtual Bool_t PxPyPz(Double_t p[3]) const
Definition: Cumulants.h:102
Double_t Pt() const
Definition: Cumulants.h:80
CPart(const AliVParticle &p)
Definition: Cumulants.h:78
std::vector< Double_t > fEGC3
eta gap c2
Definition: Cumulants.h:61
virtual Double_t Phi() const
Definition: Cumulants.h:108
std::vector< Double_t > fEGCuts
Definition: Cumulants.h:58
Bool_t fDoCharge
Definition: Cumulants.h:47
virtual Bool_t XvYvZv(Double_t x[3]) const
Definition: Cumulants.h:106
std::vector< Double_t > fEGS2
eta gap c3
Definition: Cumulants.h:62
Double_t fPtMax
Definition: Cumulants.h:45
virtual Double_t Pt() const
Definition: Cumulants.h:100
const Double_t etamin
virtual Double_t Xv() const
Definition: Cumulants.h:103
void RunEG()
Definition: Cumulants.cxx:225
int Int_t
Definition: External.C:63
TComplex fQC[7]
eta counts per gap
Definition: Cumulants.h:65
VPart(const VPart &p)
Definition: Cumulants.h:94
void SetKine(Double_t etamin, Double_t etamax, Double_t ptmin, Double_t ptmax)
Definition: Cumulants.h:30
void EnableQC()
Definition: Cumulants.cxx:88
CPart(Double_t pt, Double_t eta, Double_t phi, Short_t ch)
Definition: Cumulants.h:76
void SetTracks(TObjArray &trks, Bool_t doKinCuts=1)
Definition: Cumulants.cxx:621
const Double_t ptmax
Double_t fPhi
Definition: Cumulants.h:87
std::vector< Double_t > fEGS3
eta gap s2
Definition: Cumulants.h:63
virtual Double_t Eta() const
Definition: Cumulants.h:112
std::vector< Double_t > fEGC2
Definition: Cumulants.h:60
Double_t fEGminNL3
Definition: Cumulants.h:54
const Double_t ptmin
Double_t fEtaMin
Definition: Cumulants.h:42
Short_t fCharge
Definition: Cumulants.h:88
void RunQC4with3NL()
Definition: Cumulants.cxx:486
short Short_t
Definition: External.C:23
Bool_t fDoQC44
Definition: Cumulants.h:49
std::vector< Int_t > fEGCounts
eta gap s3
Definition: Cumulants.h:64
virtual Short_t Charge() const
Definition: Cumulants.h:114
virtual Double_t M() const
Definition: Cumulants.h:111
void EnableQC4withEG()
Definition: Cumulants.cxx:183
void SetPrint(Bool_t b)
Definition: Cumulants.h:32
virtual Double_t Theta() const
Definition: Cumulants.h:109
Bool_t fDoEtaGap
Definition: Cumulants.h:46
const Double_t etamax
virtual const Double_t * PID() const
Definition: Cumulants.h:117
virtual Double_t Yv() const
Definition: Cumulants.h:104
void RunQC4with4NL()
Definition: Cumulants.cxx:406
virtual ~VPart()
Definition: Cumulants.h:96
virtual Double_t Px() const
Definition: Cumulants.h:97
TList * GetList() const
Definition: Cumulants.h:26
CPart()
Definition: Cumulants.h:75
virtual Int_t PdgCode() const
Definition: Cumulants.h:116
bool Bool_t
Definition: External.C:53
Double_t Phi() const
Definition: Cumulants.h:82
void RunQC4withEG()
Definition: Cumulants.cxx:600
Int_t fM
QC values.
Definition: Cumulants.h:66
Bool_t fDoPrint
Definition: Cumulants.h:57
Bool_t fDoDebug
Definition: Cumulants.h:56
Cumulants(const char *name="cumulants", Int_t mbins=350, Int_t minM=10)
Definition: Cumulants.cxx:20
void EnableQC4with3NL(Int_t mn=100, Double_t etamin=0.0)
Definition: Cumulants.cxx:168
virtual Double_t E() const
Definition: Cumulants.h:110
Short_t Charge() const
Definition: Cumulants.h:83
Definition: External.C:196
virtual Double_t Pz() const
Definition: Cumulants.h:99
virtual Double_t P() const
Definition: Cumulants.h:101
Double_t fEtaMax
Definition: Cumulants.h:43
void SetDebug(Bool_t b)
Definition: Cumulants.h:31
Bool_t fDoQC43
Definition: Cumulants.h:52
virtual Double_t Zv() const
Definition: Cumulants.h:105
virtual Double_t Py() const
Definition: Cumulants.h:98