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 //-------------------------------------------------------------------------
23 #define ANALYSIS_TYPES 7
24 #define MAXIMUM_NUMBER_OF_STEPS 1024
25 #define MAXIMUM_STEPS_IN_PSI 360
31 const Int_t kTrackVariablesSingle = 2; // track variables in histogram (centrality, phi-Psi2, eta, phi, pTtrig)
32 const Int_t kTrackVariablesPair = 5; // track variables in histogram (centrality, phi-Psi2, dEta, dPhi, pTtrig, ptAssociated)
33 const TString gBFPsiAnalysisType[ANALYSIS_TYPES] = {"y","eta","qlong","qout","qside","qinv","phi"};
35 class AliBalancePsi : public TObject {
48 AliBalancePsi(const AliBalancePsi& balance);
51 void SetCentralityIdentifier(const char* centralityId) {
52 fCentralityId = centralityId;}
54 void SetAnalysisLevel(const char* analysisLevel) {
55 fAnalysisLevel = analysisLevel;}
56 void SetShuffle(Bool_t shuffle) {fShuffle = shuffle;}
57 void SetCentralityInterval(Double_t cStart, Double_t cStop) { fCentStart = cStart; fCentStop = cStop;};
59 void InitHistograms(void);
61 const char* GetAnalysisLevel() {return fAnalysisLevel.Data();}
62 Int_t GetNumberOfAnalyzedEvent() {return fAnalyzedEvents;}
64 void CalculateBalance(Double_t gReactionPlane,
66 TObjArray* particlesMixed);
68 TH2D *GetCorrelationFunctionPN(Double_t psiMin, Double_t psiMax);
69 TH2D *GetCorrelationFunctionNP(Double_t psiMin, Double_t psiMax);
70 TH2D *GetCorrelationFunctionPP(Double_t psiMin, Double_t psiMax);
71 TH2D *GetCorrelationFunctionNN(Double_t psiMin, Double_t psiMax);
73 AliTHn *GetHistNp() {return fHistP;}
74 AliTHn *GetHistNn() {return fHistN;}
75 AliTHn *GetHistNpn() {return fHistPN;}
76 AliTHn *GetHistNnp() {return fHistNP;}
77 AliTHn *GetHistNpp() {return fHistPP;}
78 AliTHn *GetHistNnn() {return fHistNN;}
80 void SetHistNp(AliTHn *gHist) {
81 fHistP = gHist; }//fHistP->FillParent(); fHistP->DeleteContainers();}
82 void SetHistNn(AliTHn *gHist) {
83 fHistN = gHist; }//fHistN->FillParent(); fHistN->DeleteContainers();}
84 void SetHistNpn(AliTHn *gHist) {
85 fHistPN = gHist; }//fHistPN->FillParent(); fHistPN->DeleteContainers();}
86 void SetHistNnp(AliTHn *gHist) {
87 fHistNP = gHist; }//fHistNP->FillParent(); fHistNP->DeleteContainers();}
88 void SetHistNpp(AliTHn *gHist) {
89 fHistPP = gHist; }//fHistPP->FillParent(); fHistPP->DeleteContainers();}
90 void SetHistNnn(AliTHn *gHist) {
91 fHistNN = gHist; }//fHistNN->FillParent(); fHistNN->DeleteContainers();}
93 TH1D *GetBalanceFunctionHistogram(Int_t iVariableSingle,
95 Double_t psiMin, Double_t psiMax);
97 TH2D *GetBalanceFunctionDeltaEtaDeltaPhi(Double_t psiMin, Double_t psiMax);
100 Bool_t fShuffle; //shuffled balance function object
101 TString fAnalysisLevel; //ESD, AOD or MC
102 Int_t fAnalyzedEvents; //number of events that have been analyzed
104 TString fCentralityId;//Centrality identifier to be used for the histo naming
111 AliTHn *fHistPN; //N+-
112 AliTHn *fHistNP; //N-+
113 AliTHn *fHistPP; //N++
114 AliTHn *fHistNN; //N--
116 Double_t fPsiInterval;// interval in Psi-phi1
118 AliBalancePsi & operator=(const AliBalancePsi & ) {return *this;}
120 ClassDef(AliBalancePsi, 1)