1 #ifndef ALIBALANCEPSI_H
2 #define ALIBALANCEPSI_H
3 /* See cxx source for full Copyright notice */
6 /* $Id: AliBalancePsi.h 54125 2012-01-24 21:07:41Z miweber $ */
8 //-------------------------------------------------------------------------
10 // This is the class for the Balance Function writ Psi analysis
12 // Origin: Panos Christakoglou, Nikhef, Panos.Christakoglou@cern.ch
13 //-------------------------------------------------------------------------
24 #define ANALYSIS_TYPES 7
25 #define MAXIMUM_NUMBER_OF_STEPS 1024
26 #define MAXIMUM_STEPS_IN_PSI 360
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)
34 const TString gBFPsiAnalysisType[ANALYSIS_TYPES] = {"y","eta","qlong","qout","qside","qinv","phi"};
36 class AliBalancePsi : public TObject {
49 AliBalancePsi(const AliBalancePsi& balance);
52 void SetCentralityIdentifier(const char* centralityId) {
53 fCentralityId = centralityId;}
55 void SetAnalysisLevel(const char* analysisLevel) {
56 fAnalysisLevel = analysisLevel;}
57 void SetShuffle(Bool_t shuffle) {fShuffle = shuffle;}
58 void SetCentralityInterval(Double_t cStart, Double_t cStop) { fCentStart = cStart; fCentStop = cStop;};
60 void InitHistograms(void);
62 const char* GetAnalysisLevel() {return fAnalysisLevel.Data();}
63 Int_t GetNumberOfAnalyzedEvent() {return fAnalyzedEvents;}
65 void CalculateBalance(Double_t gReactionPlane,
67 TObjArray* particlesMixed,
70 TH2D *GetCorrelationFunctionPN(Double_t psiMin, Double_t psiMax,
71 Double_t ptTriggerMin=-1.,
72 Double_t ptTriggerMax=-1.,
73 Double_t ptAssociatedMin=-1.,
74 Double_t ptAssociatedMax=-1);
75 TH2D *GetCorrelationFunctionNP(Double_t psiMin, Double_t psiMax,
76 Double_t ptTriggerMin=-1.,
77 Double_t ptTriggerMax=-1.,
78 Double_t ptAssociatedMin=-1.,
79 Double_t ptAssociatedMax=-1);
80 TH2D *GetCorrelationFunctionPP(Double_t psiMin, Double_t psiMax,
81 Double_t ptTriggerMin=-1.,
82 Double_t ptTriggerMax=-1.,
83 Double_t ptAssociatedMin=-1.,
84 Double_t ptAssociatedMax=-1);
85 TH2D *GetCorrelationFunctionNN(Double_t psiMin, Double_t psiMax,
86 Double_t ptTriggerMin=-1.,
87 Double_t ptTriggerMax=-1.,
88 Double_t ptAssociatedMin=-1.,
89 Double_t ptAssociatedMax=-1);
90 TH2D *GetCorrelationFunctionChargeIndependent(Double_t psiMin, Double_t psiMax,
91 Double_t ptTriggerMin=-1.,
92 Double_t ptTriggerMax=-1.,
93 Double_t ptAssociatedMin=-1.,
94 Double_t ptAssociatedMax=-1);
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;}
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();}
116 TH1D *GetBalanceFunctionHistogram(Int_t iVariableSingle,
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);
124 TH1D *GetBalanceFunctionHistogram2pMethod(Int_t iVariableSingle,
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);
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);
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);
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);
154 TH2D *GetQAHistHBTbefore() {return fHistHBTbefore;}
155 TH2D *GetQAHistHBTafter() {return fHistHBTafter;}
156 TH2D *GetQAHistConversionbefore() {return fHistConversionbefore;}
157 TH2D *GetQAHistConversionafter() {return fHistConversionafter;}
158 TH2D *GetQAHistPsiMinusPhi() {return fHistPsiMinusPhi;}
160 void UseHBTCut() {fHBTCut = kTRUE;}
161 void UseConversionCut() {fConversionCut = kTRUE;}
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);
166 Bool_t fShuffle; //shuffled balance function object
167 TString fAnalysisLevel; //ESD, AOD or MC
168 Int_t fAnalyzedEvents; //number of events that have been analyzed
170 TString fCentralityId;//Centrality identifier to be used for the histo naming
177 AliTHn *fHistPN; //N+-
178 AliTHn *fHistNP; //N-+
179 AliTHn *fHistPP; //N++
180 AliTHn *fHistNN; //N--
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
187 TH2D *fHistPsiMinusPhi;//
189 Double_t fPsiInterval;// interval in Psi-phi1
191 Bool_t fHBTCut;//HBT cut
192 Bool_t fConversionCut;//conversion cut
194 AliBalancePsi & operator=(const AliBalancePsi & ) {return *this;}
196 ClassDef(AliBalancePsi, 1)