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
14 class AliBalancePsi;
\r
16 class AliAnalysisTaskToyModel : public TObject {
\r
18 AliAnalysisTaskToyModel();
\r
19 virtual ~AliAnalysisTaskToyModel();
\r
21 virtual void Init();
\r
22 virtual void CreateOutputObjects();
\r
23 virtual void Run(Int_t nEvents);
\r
24 virtual void FinishOutput();
\r
26 void SetDebugFlag() {fUseDebug = kTRUE;}
\r
28 void SetAnalysisObject(AliBalancePsi *const analysis) {
\r
29 fBalance = analysis;
\r
31 void SetShufflingObject(AliBalancePsi *const analysisShuffled) {
\r
32 fRunShuffling = kTRUE;
\r
33 fShuffledBalance = analysisShuffled;
\r
35 void SetMixingObject(AliBalancePsi *const analysisMixed) {
\r
37 fMixedBalance = analysisMixed;
\r
40 //============Toy model: List of setters============//
\r
41 void SetTotalMultiplicity(Double_t mean, Double_t sigma) {
\r
42 fTotalMultiplicityMean = mean;
\r
43 fTotalMultiplicitySigma = sigma;}
\r
44 void SetNetCharge(Double_t mean, Double_t sigma) {
\r
45 fNetChargeMean = mean;
\r
46 fNetChargeSigma = sigma;}
\r
49 void SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,
\r
50 Double_t etamin, Double_t etamax){
\r
51 fPtMin = ptmin; fPtMax = ptmax;
\r
52 fEtaMin = etamin; fEtaMax = etamax;
\r
56 void SetAcceptanceParameterization(TF1 *parameterization) {
\r
57 fUseAcceptanceParameterization = kTRUE;
\r
58 fAcceptanceParameterization = parameterization;}
\r
60 //Acceptance - simulate detector effects/inefficiencies
\r
61 void SimulateDetectorEffects() {fSimulateDetectorEffects = kTRUE;}
\r
62 void SetNumberOfInefficientSectorsInPhi(Int_t numberOfInefficientSectors) {
\r
63 fNumberOfInefficientSectors = numberOfInefficientSectors;
\r
64 fInefficiencyFactorInPhi = 0.5;}
\r
65 void SetInefficiencyFactor(Double_t gInefficiencyFactorInPhi) {
\r
66 fInefficiencyFactorInPhi = gInefficiencyFactorInPhi;}
\r
67 void SetNumberOfDeadSectorsInPhi(Int_t numberOfDeadSectors) {
\r
68 fNumberOfDeadSectors = numberOfDeadSectors;}
\r
69 void EnableEfficiencyDropNearEtaEdges() {
\r
70 fEfficiencyDropNearEtaEdges = kTRUE;}
\r
73 void SetSpectraTemperatureForAllCharges(Double_t temperature) {
\r
74 fUseAllCharges = kTRUE;
\r
75 fTemperatureAllCharges = temperature;}
\r
76 void SetDirectedFlowForAllCharges(Double_t v1) {
\r
77 fUseAllCharges = kTRUE;
\r
78 fDirectedFlowAllCharges = v1;}
\r
79 void SetEllipticFlowForAllCharges(Double_t v2) {
\r
80 fUseAllCharges = kTRUE;
\r
81 fEllipticFlowAllCharges = v2;}
\r
82 void SetTriangularFlowForAllCharges(Double_t v3) {
\r
83 fUseAllCharges = kTRUE;
\r
84 fTriangularFlowAllCharges = v3;}
\r
85 void SetQuandrangularFlowForAllCharges(Double_t v4) {
\r
86 fUseAllCharges = kTRUE;
\r
87 fQuandrangularFlowAllCharges = v4;}
\r
88 void SetPentangularFlowForAllCharges(Double_t v5) {
\r
89 fUseAllCharges = kTRUE;
\r
90 fPentangularFlowAllCharges = v5;}
\r
93 void SetPionPercentage(Double_t percentage) {
\r
94 fPionPercentage = percentage;}
\r
95 void SetSpectraTemperatureForPions(Double_t temperature) {
\r
96 fTemperaturePions = temperature;}
\r
97 void SetDirectedFlowForPions(Double_t v1) {
\r
98 fDirectedFlowPions = v1;}
\r
99 void SetEllipticFlowForPions(Double_t v2) {
\r
100 fEllipticFlowPions = v2;}
\r
101 void SetTriangularFlowForPions(Double_t v3) {
\r
102 fTriangularFlowPions = v3;}
\r
103 void SetQuandrangularFlowForPions(Double_t v4) {
\r
104 fQuandrangularFlowPions = v4;}
\r
105 void SetPentangularFlowForPions(Double_t v5) {
\r
106 fPentangularFlowPions = v5;}
\r
109 void SetKaonPercentage(Double_t percentage) {
\r
110 fKaonPercentage = percentage;}
\r
111 void SetSpectraTemperatureForKaons(Double_t temperature) {
\r
112 fTemperatureKaons = temperature;}
\r
113 void SetDirectedFlowForKaons(Double_t v1) {
\r
114 fDirectedFlowKaons = v1;}
\r
115 void SetEllipticFlowForKaons(Double_t v2) {
\r
116 fEllipticFlowKaons = v2;}
\r
117 void SetTriangularFlowForKaons(Double_t v3) {
\r
118 fTriangularFlowKaons = v3;}
\r
119 void SetQuandrangularFlowForKaons(Double_t v4) {
\r
120 fQuandrangularFlowKaons = v4;}
\r
121 void SetPentangularFlowForKaons(Double_t v5) {
\r
122 fPentangularFlowKaons = v5;}
\r
125 void SetProtonPercentage(Double_t percentage) {
\r
126 fProtonPercentage = percentage;}
\r
127 void SetSpectraTemperatureForProtons(Double_t temperature) {
\r
128 fTemperatureProtons = temperature;}
\r
129 void SetDirectedFlowForProtons(Double_t v1) {
\r
130 fDirectedFlowProtons = v1;}
\r
131 void SetEllipticFlowForProtons(Double_t v2) {
\r
132 fEllipticFlowProtons = v2;}
\r
133 void SetTriangularFlowForProtons(Double_t v3) {
\r
134 fTriangularFlowProtons = v3;}
\r
135 void SetQuandrangularFlowForProtons(Double_t v4) {
\r
136 fQuandrangularFlowProtons = v4;}
\r
137 void SetPentangularFlowForProtons(Double_t v5) {
\r
138 fPentangularFlowProtons = v5;}
\r
140 //Dynamical correlations
\r
141 void SetCorrelationPercentage(Double_t percentage) {
\r
142 fUseDynamicalCorrelations = kTRUE;
\r
143 fDynamicalCorrelationsPercentage = percentage;
\r
145 //============Toy model: List of setters============//
\r
148 void SetupEfficiencyMatrix();
\r
150 Bool_t fUseDebug; //Debug flag
\r
152 AliBalancePsi *fBalance; //BF object
\r
153 Bool_t fRunShuffling;//run shuffling or not
\r
154 AliBalancePsi *fShuffledBalance; //BF object (shuffled)
\r
155 Bool_t fRunMixing;//run mixing or not
\r
156 AliBalancePsi *fMixedBalance; //BF object (mixed)
\r
157 TList *fList; //fList object
\r
158 TList *fListBF; //fList object
\r
159 TList *fListBFS; //fList object (shuffling)
\r
160 TList *fListBFM; //fList object (mixing)
\r
162 TH1F *fHistEventStats; //event stats
\r
163 TH1F *fHistNumberOfAcceptedParticles; //number of accepted particles
\r
164 TH1F *fHistReactionPlane; //reaction plane angle
\r
165 TH1F *fHistEtaTotal; //pseudo-rapidity (full phase space)
\r
166 TH1F *fHistEta; //pseudo-rapidity (acceptance)
\r
167 TH2F *fHistEtaPhiPos; //eta-phi pos
\r
168 TH2F *fHistEtaPhiNeg; //eta-phi neg
\r
169 TH1F *fHistRapidity; //rapidity (acceptance)
\r
170 TH1F *fHistRapidityPions; //rapidity (acceptance)
\r
171 TH1F *fHistRapidityKaons; //rapidity (acceptance)
\r
172 TH1F *fHistRapidityProtons; //rapidity (acceptance)
\r
173 TH1F *fHistPhi; //phi (acceptance)
\r
174 TH1F *fHistPhiPions; //phi (acceptance)
\r
175 TH1F *fHistPhiKaons; //phi (acceptance)
\r
176 TH1F *fHistPhiProtons; //phi (acceptance)
\r
177 TH1F *fHistPt; //pt (acceptance)
\r
178 TH1F *fHistPtPions; //pt (acceptance)
\r
179 TH1F *fHistPtKaons; //pt (acceptance)
\r
180 TH1F *fHistPtProtons; //pt (acceptance)
\r
183 Double_t fTotalMultiplicityMean; //mean for the total multiplicity
\r
184 Double_t fTotalMultiplicitySigma; //sigma for the total multiplicity
\r
185 Double_t fNetChargeMean; //mean for the net charge
\r
186 Double_t fNetChargeSigma; //sigma for the net charge
\r
187 Double_t fPtMin; //pt min for acceptance
\r
188 Double_t fPtMax; //pt max for acceptance
\r
189 Double_t fEtaMin; //eta min for acceptance
\r
190 Double_t fEtaMax; //eta max for acceptance
\r
192 //Acceptance parameterization
\r
193 Bool_t fUseAcceptanceParameterization; //flag acceptance parameterization
\r
194 TF1 *fAcceptanceParameterization; //acceptance parameterization
\r
196 //Simulate detector effects
\r
197 Bool_t fSimulateDetectorEffects;//simulate detector effects in pT
\r
198 Int_t fNumberOfInefficientSectors;//inefficient secotrs in phi
\r
199 Double_t fInefficiencyFactorInPhi;//efficiency factor < 1
\r
200 Int_t fNumberOfDeadSectors;//number of dead sectors
\r
201 Bool_t fEfficiencyDropNearEtaEdges;//efficiency drop in eta edges
\r
202 TH3F *fEfficiencyMatrix; //efficiency matrix in eta-pt-phi
\r
205 Bool_t fUseAllCharges; //use all charges
\r
206 Double_t fParticleMass; //particle mass
\r
207 TF1 *fPtSpectraAllCharges; //spectra for all charges
\r
208 Double_t fTemperatureAllCharges; //temperature for pt spectra
\r
209 Double_t fReactionPlane; //reaction plane angle
\r
210 TF1 *fAzimuthalAngleAllCharges; //azimuthal angle
\r
211 Double_t fDirectedFlowAllCharges; //directed flow value
\r
212 Double_t fEllipticFlowAllCharges; //elliptic flow value
\r
213 Double_t fTriangularFlowAllCharges; //triangular flow value
\r
214 Double_t fQuandrangularFlowAllCharges; //quadrangular flow value
\r
215 Double_t fPentangularFlowAllCharges; //pentangular flow value
\r
217 Double_t fPionPercentage; //percentage of pions
\r
218 Double_t fPionMass; //pion mass
\r
219 TF1 *fPtSpectraPions; //spectra for pions
\r
220 Double_t fTemperaturePions; //temperature for pt spectra
\r
221 TF1 *fAzimuthalAnglePions; //azimuthal angle for pions
\r
222 Double_t fDirectedFlowPions; //directed flow value
\r
223 Double_t fEllipticFlowPions; //elliptic flow value
\r
224 Double_t fTriangularFlowPions; //triangular flow value
\r
225 Double_t fQuandrangularFlowPions; //quadrangular flow value
\r
226 Double_t fPentangularFlowPions; //pentangular flow value
\r
228 Double_t fKaonPercentage; //percentage of kaons
\r
229 Double_t fKaonMass; //kaon mass
\r
230 TF1 *fPtSpectraKaons; //spectra for kaons
\r
231 Double_t fTemperatureKaons; //temperature for pt spectra
\r
232 TF1 *fAzimuthalAngleKaons; //azimuthal angle for kaons
\r
233 Double_t fDirectedFlowKaons; //directed flow value
\r
234 Double_t fEllipticFlowKaons; //elliptic flow value
\r
235 Double_t fTriangularFlowKaons; //triangular flow value
\r
236 Double_t fQuandrangularFlowKaons; //quadrangular flow value
\r
237 Double_t fPentangularFlowKaons; //pentangular flow value
\r
239 Double_t fProtonPercentage; //percentage of protons
\r
240 Double_t fProtonMass; //proton mass
\r
241 TF1 *fPtSpectraProtons; //spectra for protons
\r
242 Double_t fTemperatureProtons; //temperature for pt spectra
\r
243 TF1 *fAzimuthalAngleProtons; //azimuthal angle for protons
\r
244 Double_t fDirectedFlowProtons; //directed flow value
\r
245 Double_t fEllipticFlowProtons; //elliptic flow value
\r
246 Double_t fTriangularFlowProtons; //triangular flow value
\r
247 Double_t fQuandrangularFlowProtons; //quadrangular flow value
\r
248 Double_t fPentangularFlowProtons; //pentangular flow value
\r
250 Bool_t fUseDynamicalCorrelations; //Usage of dynamical correlations
\r
251 Double_t fDynamicalCorrelationsPercentage; //Percentage of correlations
\r
253 AliAnalysisTaskToyModel(const AliAnalysisTaskToyModel&); // not implemented
\r
254 AliAnalysisTaskToyModel& operator=(const AliAnalysisTaskToyModel&); // not implemented
\r
256 ClassDef(AliAnalysisTaskToyModel, 1); // example of analysis
\r