1 #ifndef ALIANALYSISTASKTOYMODEL_CXX
\r
2 #define ALIANALYSISTASKTOYMODEL_CXX
\r
4 // Analysis task for a simple toy model, currently used for the
\r
6 // Authors: Panos Christakoglou@nikhef.nl
\r
15 class AliAnalysisTaskToyModel : public TObject {
\r
17 AliAnalysisTaskToyModel();
\r
18 virtual ~AliAnalysisTaskToyModel();
\r
20 virtual void Init();
\r
21 virtual void CreateOutputObjects();
\r
22 virtual void Run(Int_t nEvents);
\r
23 virtual void FinishOutput();
\r
25 void SetDebugFlag() {fUseDebug = kTRUE;}
\r
27 void SetAnalysisObject(AliBalance *const analysis) {
\r
28 fBalance = analysis;
\r
30 void SetShufflingObject(AliBalance *const analysisShuffled) {
\r
31 fRunShuffling = kTRUE;
\r
32 fShuffledBalance = analysisShuffled;
\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
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
51 void SetAcceptanceParameterization(TF1 *parameterization) {
\r
52 fUseAcceptanceParameterization = kTRUE;
\r
53 fAcceptanceParameterization = parameterization;}
\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
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
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
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
123 //Dynamical correlations
\r
124 void SetCorrelationPercentage(Double_t percentage) {
\r
125 fUseDynamicalCorrelations = kTRUE;
\r
126 fDynamicalCorrelationsPercentage = percentage;
\r
128 //============Toy model: List of setters============//
\r
131 Bool_t fUseDebug; //Debug flag
\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
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
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
168 Bool_t fUseAcceptanceParameterization; //flag acceptance parameterization
\r
169 TF1 *fAcceptanceParameterization; //acceptance parameterization
\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
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
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
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
216 Bool_t fUseDynamicalCorrelations; //Usage of dynamical correlations
\r
217 Double_t fDynamicalCorrelationsPercentage; //Percentage of correlations
\r
219 AliAnalysisTaskToyModel(const AliAnalysisTaskToyModel&); // not implemented
\r
220 AliAnalysisTaskToyModel& operator=(const AliAnalysisTaskToyModel&); // not implemented
\r
222 ClassDef(AliAnalysisTaskToyModel, 1); // example of analysis
\r