]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskToyModel.h
Code Migration PWG2/EBYE to PWGCF/EBYE + Creation of Balance Function Folder
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliAnalysisTaskToyModel.h
1 #ifndef ALIANALYSISTASKTOYMODEL_CXX\r
2 #define ALIANALYSISTASKTOYMODEL_CXX\r
3 \r
4 // Analysis task for a simple toy model, currently used for the \r
5 // balance function\r
6 // Authors: Panos Christakoglou@nikhef.nl\r
7 \r
8 class TList;\r
9 class TH1F;\r
10 class TH2F;\r
11 class TF1;\r
12 \r
13 class AliBalance;\r
14 \r
15 class AliAnalysisTaskToyModel : public TObject {\r
16  public:\r
17   AliAnalysisTaskToyModel();\r
18   virtual ~AliAnalysisTaskToyModel(); \r
19   \r
20   virtual void   Init();\r
21   virtual void   CreateOutputObjects();\r
22   virtual void   Run(Int_t nEvents);\r
23   virtual void   FinishOutput();\r
24   \r
25   void SetDebugFlag() {fUseDebug = kTRUE;}\r
26 \r
27   void SetAnalysisObject(AliBalance *const analysis) {\r
28     fBalance         = analysis;\r
29   }\r
30   void SetShufflingObject(AliBalance *const analysisShuffled) {\r
31     fRunShuffling = kTRUE;\r
32     fShuffledBalance = analysisShuffled;\r
33   }\r
34 \r
35   //============Toy model: List of setters============//\r
36   void SetTotalMultiplicity(Double_t mean, Double_t sigma) {\r
37     fTotalMultiplicityMean = mean;\r
38     fTotalMultiplicitySigma = sigma;}\r
39   void SetNetCharge(Double_t mean, Double_t sigma) {\r
40     fNetChargeMean = mean;\r
41     fNetChargeSigma = sigma;}\r
42 \r
43   //Acceptance\r
44   void SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,\r
45                            Double_t etamin, Double_t etamax){\r
46     fPtMin  = ptmin; fPtMax  = ptmax;\r
47     fEtaMin = etamin; fEtaMax = etamax;\r
48   }\r
49 \r
50   //Acceptance filter\r
51   void SetAcceptanceParameterization(TF1 *parameterization) {\r
52     fUseAcceptanceParameterization = kTRUE;\r
53     fAcceptanceParameterization = parameterization;}\r
54 \r
55   //All charges\r
56   void SetSpectraTemperatureForAllCharges(Double_t temperature) {\r
57     fUseAllCharges = kTRUE;\r
58     fTemperatureAllCharges = temperature;}\r
59   void SetDirectedFlowForAllCharges(Double_t v1) {\r
60     fUseAllCharges = kTRUE;\r
61     fDirectedFlowAllCharges = v1;}\r
62   void SetEllipticFlowForAllCharges(Double_t v2) {\r
63     fUseAllCharges = kTRUE;\r
64     fEllipticFlowAllCharges = v2;}\r
65   void SetTriangularFlowForAllCharges(Double_t v3) {\r
66     fUseAllCharges = kTRUE;\r
67     fTriangularFlowAllCharges = v3;}\r
68   void SetQuandrangularFlowForAllCharges(Double_t v4) {\r
69     fUseAllCharges = kTRUE;\r
70     fQuandrangularFlowAllCharges = v4;}\r
71   void SetPentangularFlowForAllCharges(Double_t v5) {\r
72     fUseAllCharges = kTRUE;\r
73     fPentangularFlowAllCharges = v5;}\r
74 \r
75   //Pions\r
76   void SetPionPercentage(Double_t percentage) {\r
77     fPionPercentage = percentage;}\r
78   void SetSpectraTemperatureForPions(Double_t temperature) {\r
79     fTemperaturePions = temperature;}\r
80   void SetDirectedFlowForPions(Double_t v1) {\r
81     fDirectedFlowPions = v1;}\r
82   void SetEllipticFlowForPions(Double_t v2) {\r
83     fEllipticFlowPions = v2;}\r
84   void SetTriangularFlowForPions(Double_t v3) {\r
85     fTriangularFlowPions = v3;}\r
86   void SetQuandrangularFlowForPions(Double_t v4) {\r
87     fQuandrangularFlowPions = v4;}\r
88   void SetPentangularFlowForPions(Double_t v5) {\r
89     fPentangularFlowPions = v5;}\r
90   \r
91   //Kaons\r
92   void SetKaonPercentage(Double_t percentage) {\r
93     fKaonPercentage = percentage;}\r
94   void SetSpectraTemperatureForKaons(Double_t temperature) {\r
95     fTemperatureKaons = temperature;}\r
96   void SetDirectedFlowForKaons(Double_t v1) {\r
97     fDirectedFlowKaons = v1;}\r
98   void SetEllipticFlowForKaons(Double_t v2) {\r
99     fEllipticFlowKaons = v2;}\r
100   void SetTriangularFlowForKaons(Double_t v3) {\r
101     fTriangularFlowKaons = v3;}\r
102   void SetQuandrangularFlowForKaons(Double_t v4) {\r
103     fQuandrangularFlowKaons = v4;}\r
104   void SetPentangularFlowForKaons(Double_t v5) {\r
105     fPentangularFlowKaons = v5;}\r
106 \r
107   //Protons\r
108   void SetProtonPercentage(Double_t percentage) {\r
109     fProtonPercentage = percentage;}\r
110   void SetSpectraTemperatureForProtons(Double_t temperature) {\r
111     fTemperatureProtons = temperature;}\r
112   void SetDirectedFlowForProtons(Double_t v1) {\r
113     fDirectedFlowProtons = v1;}\r
114   void SetEllipticFlowForProtons(Double_t v2) {\r
115     fEllipticFlowProtons = v2;}\r
116   void SetTriangularFlowForProtons(Double_t v3) {\r
117     fTriangularFlowProtons = v3;}\r
118   void SetQuandrangularFlowForProtons(Double_t v4) {\r
119     fQuandrangularFlowProtons = v4;}\r
120   void SetPentangularFlowForProtons(Double_t v5) {\r
121     fPentangularFlowProtons = v5;}\r
122 \r
123   //Dynamical correlations\r
124   void SetCorrelationPercentage(Double_t percentage) {\r
125     fUseDynamicalCorrelations = kTRUE; \r
126     fDynamicalCorrelationsPercentage = percentage;\r
127   }\r
128   //============Toy model: List of setters============//\r
129 \r
130  private:\r
131   Bool_t fUseDebug; //Debug flag\r
132 \r
133   AliBalance *fBalance; //BF object\r
134   Bool_t fRunShuffling;//run shuffling or not\r
135   AliBalance *fShuffledBalance; //BF object (shuffled)\r
136   TList *fList; //fList object\r
137   TList *fListBF; //fList object\r
138   TList *fListBFS; //fList object\r
139 \r
140   TH1F *fHistEventStats; //event stats\r
141   TH1F *fHistNumberOfAcceptedParticles; //number of accepted particles\r
142   TH1F *fHistReactionPlane; //reaction plane angle\r
143   TH1F *fHistEtaTotal; //pseudo-rapidity (full phase space)\r
144   TH1F *fHistEta; //pseudo-rapidity (acceptance)\r
145   TH1F *fHistRapidity; //rapidity (acceptance)\r
146   TH1F *fHistRapidityPions; //rapidity (acceptance)\r
147   TH1F *fHistRapidityKaons; //rapidity (acceptance)\r
148   TH1F *fHistRapidityProtons; //rapidity (acceptance)\r
149   TH1F *fHistPhi; //phi (acceptance)\r
150   TH1F *fHistPhiPions; //phi (acceptance)\r
151   TH1F *fHistPhiKaons; //phi (acceptance)\r
152   TH1F *fHistPhiProtons; //phi (acceptance)\r
153   TH1F *fHistPt; //pt (acceptance)\r
154   TH1F *fHistPtPions; //pt (acceptance)\r
155   TH1F *fHistPtKaons; //pt (acceptance)\r
156   TH1F *fHistPtProtons; //pt (acceptance)\r
157 \r
158   //Toy model input\r
159   Double_t fTotalMultiplicityMean; //mean for the total multiplicity\r
160   Double_t fTotalMultiplicitySigma; //sigma for the total multiplicity\r
161   Double_t fNetChargeMean; //mean for the net charge\r
162   Double_t fNetChargeSigma; //sigma for the net charge\r
163   Double_t fPtMin; //pt min for acceptance\r
164   Double_t fPtMax; //pt max for acceptance\r
165   Double_t fEtaMin; //eta min for acceptance\r
166   Double_t fEtaMax; //eta max for acceptance\r
167 \r
168   Bool_t fUseAcceptanceParameterization; //flag acceptance parameterization\r
169   TF1 *fAcceptanceParameterization; //acceptance parameterization\r
170 \r
171   Bool_t   fUseAllCharges; //use all charges\r
172   Double_t fParticleMass; //particle mass\r
173   TF1     *fPtSpectraAllCharges; //spectra for all charges\r
174   Double_t fTemperatureAllCharges; //temperature for pt spectra\r
175   Double_t fReactionPlane; //reaction plane angle\r
176   TF1     *fAzimuthalAngleAllCharges; //azimuthal angle\r
177   Double_t fDirectedFlowAllCharges; //directed flow value\r
178   Double_t fEllipticFlowAllCharges; //elliptic flow value\r
179   Double_t fTriangularFlowAllCharges; //triangular flow value\r
180   Double_t fQuandrangularFlowAllCharges; //quadrangular flow value\r
181   Double_t fPentangularFlowAllCharges; //pentangular flow value\r
182 \r
183   Double_t fPionPercentage; //percentage of pions\r
184   Double_t fPionMass; //pion mass\r
185   TF1     *fPtSpectraPions; //spectra for pions\r
186   Double_t fTemperaturePions; //temperature for pt spectra\r
187   TF1     *fAzimuthalAnglePions; //azimuthal angle for pions\r
188   Double_t fDirectedFlowPions; //directed flow value\r
189   Double_t fEllipticFlowPions; //elliptic flow value\r
190   Double_t fTriangularFlowPions; //triangular flow value\r
191   Double_t fQuandrangularFlowPions; //quadrangular flow value\r
192   Double_t fPentangularFlowPions; //pentangular flow value\r
193 \r
194   Double_t fKaonPercentage; //percentage of kaons\r
195   Double_t fKaonMass; //kaon mass\r
196   TF1     *fPtSpectraKaons; //spectra for kaons\r
197   Double_t fTemperatureKaons; //temperature for pt spectra\r
198   TF1     *fAzimuthalAngleKaons; //azimuthal angle for kaons\r
199   Double_t fDirectedFlowKaons; //directed flow value\r
200   Double_t fEllipticFlowKaons; //elliptic flow value\r
201   Double_t fTriangularFlowKaons; //triangular flow value\r
202   Double_t fQuandrangularFlowKaons; //quadrangular flow value\r
203   Double_t fPentangularFlowKaons; //pentangular flow value\r
204 \r
205   Double_t fProtonPercentage; //percentage of protons\r
206   Double_t fProtonMass; //proton mass\r
207   TF1     *fPtSpectraProtons; //spectra for protons\r
208   Double_t fTemperatureProtons; //temperature for pt spectra\r
209   TF1     *fAzimuthalAngleProtons; //azimuthal angle for protons\r
210   Double_t fDirectedFlowProtons; //directed flow value\r
211   Double_t fEllipticFlowProtons; //elliptic flow value\r
212   Double_t fTriangularFlowProtons; //triangular flow value\r
213   Double_t fQuandrangularFlowProtons; //quadrangular flow value\r
214   Double_t fPentangularFlowProtons; //pentangular flow value\r
215 \r
216   Bool_t fUseDynamicalCorrelations; //Usage of dynamical correlations\r
217   Double_t fDynamicalCorrelationsPercentage; //Percentage of correlations\r
218 \r
219   AliAnalysisTaskToyModel(const AliAnalysisTaskToyModel&); // not implemented\r
220   AliAnalysisTaskToyModel& operator=(const AliAnalysisTaskToyModel&); // not implemented\r
221   \r
222   ClassDef(AliAnalysisTaskToyModel, 1); // example of analysis\r
223 };\r
224 \r
225 #endif\r