]>
Commit | Line | Data |
---|---|---|
0879e280 | 1 | #ifndef ALIBALANCEPSI_H |
2 | #define ALIBALANCEPSI_H | |
3 | /* See cxx source for full Copyright notice */ | |
4 | ||
5 | ||
6 | /* $Id: AliBalancePsi.h 54125 2012-01-24 21:07:41Z miweber $ */ | |
7 | ||
8 | //------------------------------------------------------------------------- | |
9 | // Class AliBalancePsi | |
10 | // This is the class for the Balance Function writ Psi analysis | |
11 | // | |
12 | // Origin: Panos Christakoglou, Nikhef, Panos.Christakoglou@cern.ch | |
13 | //------------------------------------------------------------------------- | |
14 | ||
c64cb1f6 | 15 | #include <vector> |
0879e280 | 16 | #include <TObject.h> |
17 | #include "TString.h" | |
73609a48 | 18 | #include "TH2D.h" |
0879e280 | 19 | |
a38fd7f3 | 20 | #include "AliTHn.h" |
21 | ||
c64cb1f6 | 22 | using std::vector; |
23 | ||
0879e280 | 24 | #define ANALYSIS_TYPES 7 |
25 | #define MAXIMUM_NUMBER_OF_STEPS 1024 | |
26 | #define MAXIMUM_STEPS_IN_PSI 360 | |
27 | ||
0879e280 | 28 | class TH1D; |
29 | class TH2D; | |
30 | class TH3D; | |
31 | ||
9fd4b54e | 32 | const Int_t kTrackVariablesSingle = 2; // track variables in histogram (centrality, phi-Psi2, eta, phi, pTtrig) |
33 | const Int_t kTrackVariablesPair = 5; // track variables in histogram (centrality, phi-Psi2, dEta, dPhi, pTtrig, ptAssociated) | |
0879e280 | 34 | const TString gBFPsiAnalysisType[ANALYSIS_TYPES] = {"y","eta","qlong","qout","qside","qinv","phi"}; |
35 | ||
36 | class AliBalancePsi : public TObject { | |
37 | public: | |
38 | enum EAnalysisType { | |
39 | kRapidity = 0, | |
40 | kEta = 1, | |
41 | kQlong = 2, | |
42 | kQout = 3, | |
43 | kQside = 4, | |
44 | kQinv = 5, | |
45 | kPhi = 6 | |
46 | }; | |
47 | ||
48 | AliBalancePsi(); | |
49 | AliBalancePsi(const AliBalancePsi& balance); | |
50 | ~AliBalancePsi(); | |
51 | ||
0879e280 | 52 | void SetCentralityIdentifier(const char* centralityId) { |
53 | fCentralityId = centralityId;} | |
54 | ||
55 | void SetAnalysisLevel(const char* analysisLevel) { | |
56 | fAnalysisLevel = analysisLevel;} | |
9fd4b54e | 57 | void SetShuffle(Bool_t shuffle) {fShuffle = shuffle;} |
0879e280 | 58 | void SetCentralityInterval(Double_t cStart, Double_t cStop) { fCentStart = cStart; fCentStop = cStop;}; |
0879e280 | 59 | |
60 | void InitHistograms(void); | |
61 | ||
62 | const char* GetAnalysisLevel() {return fAnalysisLevel.Data();} | |
63 | Int_t GetNumberOfAnalyzedEvent() {return fAnalyzedEvents;} | |
64 | ||
621329de | 65 | void CalculateBalance(Double_t gReactionPlane, |
f06d59b3 | 66 | TObjArray* particles, |
73609a48 | 67 | TObjArray* particlesMixed, |
68 | Float_t bSign); | |
0879e280 | 69 | |
6acdbcb2 | 70 | TH2D *GetCorrelationFunctionPN(Double_t psiMin, Double_t psiMax, |
71 | Double_t ptTriggerMin=-1., | |
72 | Double_t ptTriggerMax=-1., | |
73 | Double_t ptAssociatedMin=-1., | |
47e040b5 | 74 | Double_t ptAssociatedMax=-1); |
6acdbcb2 | 75 | TH2D *GetCorrelationFunctionNP(Double_t psiMin, Double_t psiMax, |
76 | Double_t ptTriggerMin=-1., | |
77 | Double_t ptTriggerMax=-1., | |
78 | Double_t ptAssociatedMin=-1., | |
47e040b5 | 79 | Double_t ptAssociatedMax=-1); |
6acdbcb2 | 80 | TH2D *GetCorrelationFunctionPP(Double_t psiMin, Double_t psiMax, |
81 | Double_t ptTriggerMin=-1., | |
82 | Double_t ptTriggerMax=-1., | |
83 | Double_t ptAssociatedMin=-1., | |
47e040b5 | 84 | Double_t ptAssociatedMax=-1); |
6acdbcb2 | 85 | TH2D *GetCorrelationFunctionNN(Double_t psiMin, Double_t psiMax, |
86 | Double_t ptTriggerMin=-1., | |
87 | Double_t ptTriggerMax=-1., | |
88 | Double_t ptAssociatedMin=-1., | |
47e040b5 | 89 | Double_t ptAssociatedMax=-1); |
7b610f27 | 90 | TH2D *GetCorrelationFunctionChargeIndependent(Double_t psiMin, Double_t psiMax, |
91 | Double_t ptTriggerMin=-1., | |
92 | Double_t ptTriggerMax=-1., | |
93 | Double_t ptAssociatedMin=-1., | |
47e040b5 | 94 | Double_t ptAssociatedMax=-1); |
a38fd7f3 | 95 | |
9afe3098 | 96 | AliTHn *GetHistNp() {return fHistP;} |
97 | AliTHn *GetHistNn() {return fHistN;} | |
98 | AliTHn *GetHistNpn() {return fHistPN;} | |
99 | AliTHn *GetHistNnp() {return fHistNP;} | |
100 | AliTHn *GetHistNpp() {return fHistPP;} | |
101 | AliTHn *GetHistNnn() {return fHistNN;} | |
102 | ||
a38fd7f3 | 103 | void SetHistNp(AliTHn *gHist) { |
104 | fHistP = gHist; }//fHistP->FillParent(); fHistP->DeleteContainers();} | |
105 | void SetHistNn(AliTHn *gHist) { | |
106 | fHistN = gHist; }//fHistN->FillParent(); fHistN->DeleteContainers();} | |
107 | void SetHistNpn(AliTHn *gHist) { | |
108 | fHistPN = gHist; }//fHistPN->FillParent(); fHistPN->DeleteContainers();} | |
109 | void SetHistNnp(AliTHn *gHist) { | |
110 | fHistNP = gHist; }//fHistNP->FillParent(); fHistNP->DeleteContainers();} | |
111 | void SetHistNpp(AliTHn *gHist) { | |
112 | fHistPP = gHist; }//fHistPP->FillParent(); fHistPP->DeleteContainers();} | |
113 | void SetHistNnn(AliTHn *gHist) { | |
114 | fHistNN = gHist; }//fHistNN->FillParent(); fHistNN->DeleteContainers();} | |
9afe3098 | 115 | |
116 | TH1D *GetBalanceFunctionHistogram(Int_t iVariableSingle, | |
117 | Int_t iVariablePair, | |
6acdbcb2 | 118 | Double_t psiMin, Double_t psiMax, |
119 | Double_t ptTriggerMin=-1., | |
120 | Double_t ptTriggerMax=-1., | |
121 | Double_t ptAssociatedMin=-1., | |
122 | Double_t ptAssociatedMax=-1); | |
123 | ||
f0c5040c | 124 | TH1D *GetBalanceFunctionHistogram2pMethod(Int_t iVariableSingle, |
125 | Int_t iVariablePair, | |
126 | Double_t psiMin, Double_t psiMax, | |
127 | Double_t ptTriggerMin=-1., | |
128 | Double_t ptTriggerMax=-1., | |
129 | Double_t ptAssociatedMin=-1., | |
130 | Double_t ptAssociatedMax=-1, | |
131 | AliBalancePsi *bfMix=NULL); | |
132 | ||
6acdbcb2 | 133 | TH2D *GetBalanceFunctionDeltaEtaDeltaPhi(Double_t psiMin, Double_t psiMax, |
134 | Double_t ptTriggerMin=-1., | |
135 | Double_t ptTriggerMax=-1., | |
136 | Double_t ptAssociatedMin=-1., | |
137 | Double_t ptAssociatedMax=-1); | |
621329de | 138 | |
f0c5040c | 139 | TH2D *GetBalanceFunctionDeltaEtaDeltaPhi2pMethod(Double_t psiMin, Double_t psiMax, |
140 | Double_t ptTriggerMin=-1., | |
141 | Double_t ptTriggerMax=-1., | |
142 | Double_t ptAssociatedMin=-1., | |
143 | Double_t ptAssociatedMax=-1., | |
144 | AliBalancePsi *bfMix=NULL); | |
fbb83ebd | 145 | |
146 | TH1D *GetBalanceFunction1DFrom2D2pMethod(Bool_t bPhi, | |
147 | Double_t psiMin, Double_t psiMax, | |
148 | Double_t ptTriggerMin=-1., | |
149 | Double_t ptTriggerMax=-1., | |
150 | Double_t ptAssociatedMin=-1., | |
151 | Double_t ptAssociatedMax=-1., | |
152 | AliBalancePsi *bfMix=NULL); | |
f0c5040c | 153 | |
73609a48 | 154 | TH2D *GetQAHistHBTbefore() {return fHistHBTbefore;} |
155 | TH2D *GetQAHistHBTafter() {return fHistHBTafter;} | |
156 | TH2D *GetQAHistConversionbefore() {return fHistConversionbefore;} | |
157 | TH2D *GetQAHistConversionafter() {return fHistConversionafter;} | |
e9caebd2 | 158 | TH2D *GetQAHistPsiMinusPhi() {return fHistPsiMinusPhi;} |
73609a48 | 159 | |
160 | void UseHBTCut() {fHBTCut = kTRUE;} | |
161 | void UseConversionCut() {fConversionCut = kTRUE;} | |
162 | ||
0879e280 | 163 | private: |
73609a48 | 164 | Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1, Float_t phi2, Float_t pt2, Float_t charge2, Float_t radius, Float_t bSign); |
165 | ||
9fd4b54e | 166 | Bool_t fShuffle; //shuffled balance function object |
0879e280 | 167 | TString fAnalysisLevel; //ESD, AOD or MC |
168 | Int_t fAnalyzedEvents; //number of events that have been analyzed | |
169 | ||
170 | TString fCentralityId;//Centrality identifier to be used for the histo naming | |
171 | ||
0879e280 | 172 | Double_t fCentStart; |
173 | Double_t fCentStop; | |
174 | ||
9afe3098 | 175 | AliTHn *fHistP; //N+ |
176 | AliTHn *fHistN; //N- | |
177 | AliTHn *fHistPN; //N+- | |
178 | AliTHn *fHistNP; //N-+ | |
179 | AliTHn *fHistPP; //N++ | |
180 | AliTHn *fHistNN; //N-- | |
0879e280 | 181 | |
73609a48 | 182 | //QA histograms |
183 | TH2D *fHistHBTbefore; // Delta Eta vs. Delta Phi before HBT inspired cuts | |
184 | TH2D *fHistHBTafter; // Delta Eta vs. Delta Phi after HBT inspired cuts | |
185 | TH2D *fHistConversionbefore; // Delta Eta vs. Delta Phi before Conversion cuts | |
186 | TH2D *fHistConversionafter; // Delta Eta vs. Delta Phi before Conversion cuts | |
e9caebd2 | 187 | TH2D *fHistPsiMinusPhi;// |
73609a48 | 188 | |
0879e280 | 189 | Double_t fPsiInterval;// interval in Psi-phi1 |
0879e280 | 190 | |
73609a48 | 191 | Bool_t fHBTCut;//HBT cut |
192 | Bool_t fConversionCut;//conversion cut | |
193 | ||
0879e280 | 194 | AliBalancePsi & operator=(const AliBalancePsi & ) {return *this;} |
195 | ||
196 | ClassDef(AliBalancePsi, 1) | |
197 | }; | |
198 | ||
199 | #endif |