]>
Commit | Line | Data |
---|---|---|
8c1c76e9 | 1 | /**************************************************************************\r |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r | |
3 | * *\r | |
4 | * Author: The ALICE Off-line Project. *\r | |
5 | * Contributors are mentioned in the code where appropriate. *\r | |
6 | * *\r | |
7 | * Permission to use, copy, modify and distribute this software and its *\r | |
8 | * documentation strictly for non-commercial purposes is hereby granted *\r | |
9 | * without fee, provided that the above copyright notice appears in all *\r | |
10 | * copies and that both the copyright notice and this permission notice *\r | |
11 | * appear in the supporting documentation. The authors make no claims *\r | |
12 | * about the suitability of this software for any purpose. It is *\r | |
13 | * provided "as is" without express or implied warranty. *\r | |
14 | **************************************************************************/\r | |
15 | //\r | |
16 | // Flow task class for the ALICE HFE group\r | |
17 | //\r | |
18 | //\r | |
a70c9e97 | 19 | #ifndef ALIANALYSISTASKFLOWTPCTOFEPSP_H\r |
20 | #define ALIANALYSISTASKFLOWTPCTOFEPSP_H\r | |
8c1c76e9 | 21 | \r |
22 | \r | |
23 | \r | |
24 | \r | |
25 | #include <AliAnalysisTaskSE.h>\r | |
26 | \r | |
27 | class TList;\r | |
0e30407a | 28 | class AliVTrack;\r |
29 | class AliVEvent;\r | |
30 | class AliESDtrack;\r | |
31 | class AliESDEvent;\r | |
32 | class AliMCEvent;\r | |
8c1c76e9 | 33 | class AliFlowTrackCuts;\r |
34 | class AliFlowCandidateTrack;\r | |
35 | class AliHFEcuts;\r | |
36 | class AliHFEpid;\r | |
37 | class TH1D;\r | |
38 | class TH2D;\r | |
6733d981 | 39 | class TF1;\r |
e17c1f86 | 40 | class TProfile;\r |
41 | class TProfile2D;\r | |
8c1c76e9 | 42 | class THnSparse;\r |
43 | class AliHFEpidQAmanager;\r | |
44 | class AliFlowEvent;\r | |
0e30407a | 45 | class AliESDtrackCuts;\r |
a8ef1999 | 46 | class AliHFEVZEROEventPlane;\r |
0e30407a | 47 | class TArrayI;\r |
2747660f | 48 | class AliAODMCHeader;\r |
49 | class TClonesArray;\r | |
50 | class AliHFENonPhotonicElectron;\r | |
959ea9d8 | 51 | class TTreeSRedirector;\r |
8c1c76e9 | 52 | \r |
914042c2 | 53 | class AliAnalysisTaskFlowTPCTOFEPSP: public AliAnalysisTaskSE {\r |
8c1c76e9 | 54 | public:\r |
0e30407a | 55 | \r |
56 | typedef enum{\r | |
57 | kElectronfromconversion = 0,\r | |
58 | kElectronfromconversionboth = 1,\r | |
59 | kElectronfrompi0 = 2,\r | |
60 | kElectronfrompi0both = 3,\r | |
5cd679b7 | 61 | kElectronfrometa = 4,\r |
62 | kElectronfrometaboth = 5,\r | |
63 | kElectronfromC = 6,\r | |
64 | kElectronfromB = 7,\r | |
7b4c9210 | 65 | kElectronfromother = 8,\r |
66 | kNoElectron = 9\r | |
0e30407a | 67 | } FlowSource_t;\r |
68 | \r | |
69 | typedef enum{\r | |
70 | kS = 0,\r | |
71 | kOp = 1\r | |
72 | } FlowSign_t;\r | |
73 | \r | |
74 | \r | |
75 | \r | |
76 | \r | |
914042c2 | 77 | AliAnalysisTaskFlowTPCTOFEPSP();\r |
78 | AliAnalysisTaskFlowTPCTOFEPSP(const char *name);\r | |
79 | AliAnalysisTaskFlowTPCTOFEPSP(const AliAnalysisTaskFlowTPCTOFEPSP &ref);\r | |
80 | AliAnalysisTaskFlowTPCTOFEPSP& operator=(const AliAnalysisTaskFlowTPCTOFEPSP &ref);\r | |
a8ef1999 | 81 | virtual void Copy(TObject &o) const;\r |
914042c2 | 82 | virtual ~AliAnalysisTaskFlowTPCTOFEPSP();\r |
8c1c76e9 | 83 | \r |
84 | virtual void UserExec(Option_t */*option*/);\r | |
85 | virtual void UserCreateOutputObjects();\r | |
86 | \r | |
2747660f | 87 | void SetAODAnalysis(Bool_t aodAnalysis) { fAODAnalysis = aodAnalysis; };\r |
2747660f | 88 | void SetFilter(ULong_t filter) { fFilter = filter; }\r |
4102d1cc | 89 | \r |
8c1c76e9 | 90 | AliHFEpid *GetPID() const { return fPID; }\r |
5cd679b7 | 91 | AliHFEpid *GetPIDTOFOnly() const { return fPIDTOFOnly; }\r |
a8ef1999 | 92 | AliHFEpidQAmanager *GetPIDQAManager() const { return fPIDqa; }\r |
0e30407a | 93 | AliHFEpid *GetPIDBackground() const { return fPIDBackground; }\r |
94 | AliHFEpidQAmanager *GetPIDBackgroundQAManager() const { return fPIDBackgroundqa; }\r | |
2747660f | 95 | AliHFENonPhotonicElectron *GetHFEBackgroundSubtraction() const { return fBackgroundSubtraction; }\r |
0e30407a | 96 | \r |
a8ef1999 | 97 | \r |
6733d981 | 98 | void SetContamination(TF1 * const function,Int_t k) { fContamination[k] = function; };\r |
6b2521a4 | 99 | void SetV2Contamination(TF1 * const function,Int_t k) { fv2contamination[k] = function; };\r |
8c1c76e9 | 100 | void SetHFECuts(AliHFEcuts * const cuts) { fHFECuts = cuts; };\r |
2747660f | 101 | void SetHFEBackgroundSubtraction(AliHFENonPhotonicElectron * const backgroundSubtraction) { fBackgroundSubtraction = backgroundSubtraction; };\r |
0e30407a | 102 | void SetHFEBackgroundCuts(AliESDtrackCuts * const cuts) { fHFEBackgroundCuts = cuts; };\r |
8c1c76e9 | 103 | void SetSubEtaGapTPC(Bool_t subEtaGapTPC) { fSubEtaGapTPC = subEtaGapTPC; };\r |
104 | void SetEtaGap(Double_t etaGap) { fEtaGap = etaGap; };\r | |
e17c1f86 | 105 | void SetVZEROEventPlane(Bool_t vzeroEventPlane) { fVZEROEventPlane = vzeroEventPlane; };\r |
106 | void SetVZEROEventPlaneA(Bool_t vzeroEventPlaneA) { fVZEROEventPlaneA = vzeroEventPlaneA; };\r | |
107 | void SetVZEROEventPlaneC(Bool_t vzeroEventPlaneC) { fVZEROEventPlaneC = vzeroEventPlaneC; };\r | |
a8ef1999 | 108 | void SetHFEVZEROEventPlane(AliHFEVZEROEventPlane *hfeVZEROEventPlane) { fHFEVZEROEventPlane = hfeVZEROEventPlane; };\r |
8c1c76e9 | 109 | \r |
e17c1f86 | 110 | void SetNbBinsCentralityQCumulant(Int_t nbBinsCentralityQCumulant) { fNbBinsCentralityQCumulant = nbBinsCentralityQCumulant; };\r |
111 | void SetBinCentralityLess(Int_t k, Float_t value) { fBinCentralityLess[k] = value; };\r | |
8c1c76e9 | 112 | void SetNbBinsPtQCumulant(Int_t nbBinsPtQCumulant) { fNbBinsPtQCumulant = nbBinsPtQCumulant; };\r |
113 | void SetMinPtQCumulant(Double_t minPtQCumulant) { fMinPtQCumulant = minPtQCumulant; };\r | |
114 | void SetMaxPtQCumulant(Double_t maxPtQCumulant) { fMaxPtQCumulant = maxPtQCumulant; };\r | |
115 | \r | |
116 | void SetAfterBurnerOn(Bool_t afterBurnerOn) { fAfterBurnerOn = afterBurnerOn; };\r | |
117 | void SetNonFlowNumberOfTrackClones(Int_t nonFlowNumberOfTrackClones) { fNonFlowNumberOfTrackClones = nonFlowNumberOfTrackClones; };\r | |
118 | void SetV1V2V3V4V5(Double_t v1,Double_t v2,Double_t v3,Double_t v4,Double_t v5) {fV1 = v1; fV2 = v2; fV3 = v3; fV4 = v4; fV5 = v5; };\r | |
119 | void SetMaxNumberOfIterations(Int_t maxNumberOfIterations) { fMaxNumberOfIterations = maxNumberOfIterations; };\r | |
120 | void SetPrecisionPhi(Double_t precisionPhi) { fPrecisionPhi = precisionPhi;};\r | |
121 | void SetUseMCReactionPlane(Bool_t useMCReactionPlane) { fUseMCReactionPlane = useMCReactionPlane;};\r | |
959ea9d8 | 122 | void SetUseSP(Bool_t useSP) { fSP = useSP;}\r |
8c1c76e9 | 123 | void SetMCPID(Bool_t mcPID) { fMCPID = mcPID;};\r |
a8ef1999 | 124 | void SetNoPID(Bool_t noPID) { fNoPID = noPID;};\r |
8c1c76e9 | 125 | \r |
7b5936fc | 126 | void SetMonitorEventPlane(Bool_t monitorEventPlane) { fMonitorEventPlane = monitorEventPlane;};\r |
127 | void SetMonitorContamination(Bool_t monitorContamination) { fMonitorContamination = monitorContamination;};\r | |
128 | void SetMonitorPhotonic(Bool_t monitorPhotonic) { fMonitorPhotonic = monitorPhotonic;};\r | |
129 | void SetMonitorWithoutPID(Bool_t monitorWithoutPID) { fMonitorWithoutPID = monitorWithoutPID;};\r | |
130 | void SetMonitorTrackCuts(Bool_t monitorTrackCuts) { fMonitorTrackCuts = monitorTrackCuts;};\r | |
131 | void SetMonitorQCumulant(Bool_t monitorQCumulant) { fMonitorQCumulant = monitorQCumulant;};\r | |
e17c1f86 | 132 | \r |
133 | Int_t GetNbBinsCentralityQCumulant() const { return fNbBinsCentralityQCumulant; };\r | |
134 | Double_t GetBinCentralityLess(Int_t k) const { return fBinCentralityLess[k]; };\r | |
8c1c76e9 | 135 | \r |
136 | AliFlowCandidateTrack *MakeTrack( Double_t mass, Double_t pt, Double_t phi, Double_t eta) ;\r | |
137 | Double_t GetPhiAfterAddV2(Double_t phi,Double_t reactionPlaneAngle) const;\r | |
0e30407a | 138 | \r |
139 | void SetMaxInvmass(Double_t maxInvmass) { fMaxInvmass = maxInvmass; };\r | |
140 | void SetMaxopening3D(Double_t maxOpening3D) { fMaxopening3D = maxOpening3D; };\r | |
141 | void SetMaxopeningtheta(Double_t maxOpeningtheta) { fMaxopeningtheta = maxOpeningtheta; };\r | |
142 | void SetMaxopeningphi(Double_t maxOpeningphi) { fMaxopeningphi = maxOpeningphi; };\r | |
4317a065 | 143 | void SetAlgorithmMA(Bool_t algorithmMA) { fAlgorithmMA = algorithmMA; };\r |
7b4c9210 | 144 | void SetMassConstraint(Bool_t massConstraint) { fSetMassConstraint = massConstraint; };\r |
d87a9d29 | 145 | void SetPileUpCut(Bool_t cut=kTRUE) { fPileUpCut=cut; }\r |
0e30407a | 146 | \r |
147 | Int_t LookAtNonHFE(Int_t iTrack1, AliVTrack *track1, AliVEvent *fESD, AliMCEvent *mcEvent,Int_t binct,Double_t deltaphi,Int_t source,Int_t indexmother);\r | |
8c1c76e9 | 148 | \r |
149 | private:\r | |
11ff28c5 | 150 | TList *fListHist; //! TH list\r |
151 | Bool_t fAODAnalysis; // AOD analysis\r | |
2747660f | 152 | ULong_t fFilter; // reconstruction AOD status flags \r |
153 | AliAODMCHeader *fAODMCHeader; // ! MC info AOD\r | |
154 | TClonesArray *fAODArrayMCInfo; // ! MC info particle AOD\r | |
155 | AliHFENonPhotonicElectron *fBackgroundSubtraction; // Background subtraction\r | |
4102d1cc | 156 | \r |
a8ef1999 | 157 | Bool_t fVZEROEventPlane; // Use Event Planes from VZERO\r |
e17c1f86 | 158 | Bool_t fVZEROEventPlaneA; // Use Event Planes from VZERO A\r |
159 | Bool_t fVZEROEventPlaneC; // Use Event Planes from VZERO C\r | |
160 | \r | |
a8ef1999 | 161 | Bool_t fSubEtaGapTPC; // bool to fill with eta gap\r |
162 | Double_t fEtaGap; // Value of the eta gap\r | |
8c1c76e9 | 163 | \r |
e17c1f86 | 164 | Int_t fNbBinsCentralityQCumulant; // Number of Bins Q Cumulant\r |
a8ef1999 | 165 | Double_t fBinCentralityLess[10]; // Centrality Bin lower value\r |
166 | Int_t fNbBinsPtQCumulant; // Nbbinspt QCumulant method\r | |
167 | Double_t fMinPtQCumulant; // Min pt QCumulant method\r | |
168 | Double_t fMaxPtQCumulant; // Max pt QCumulant method\r | |
169 | Bool_t fAfterBurnerOn; // Add flow to all tracks\r | |
8c1c76e9 | 170 | Int_t fNonFlowNumberOfTrackClones; // number of times to clone the particles (nonflow) \r |
171 | Double_t fV1; // Add Flow. Must be in range [0,0.5].\r | |
172 | Double_t fV2; // Add Flow. Must be in range [0,0.5].\r | |
173 | Double_t fV3; // Add Flow. Must be in range [0,0.5].\r | |
174 | Double_t fV4; // Add Flow. Must be in range [0,0.5].\r | |
175 | Double_t fV5; // Add Flow. Must be in range [0,0.5].\r | |
176 | Int_t fMaxNumberOfIterations; // Max number of iteration for adding v2\r | |
177 | Double_t fPrecisionPhi; // precision phi for adding v2\r | |
178 | Bool_t fUseMCReactionPlane; // use MC reaction plane\r | |
959ea9d8 | 179 | Bool_t fSP; // calculate using scalar product method (instead of event plane method)\r |
8c1c76e9 | 180 | \r |
181 | Bool_t fMCPID; // MC PID for electrons\r | |
a8ef1999 | 182 | Bool_t fNoPID; // No PID for checks\r |
e17c1f86 | 183 | \r |
0e30407a | 184 | Double_t fChi2OverNDFCut; // Limit chi2\r |
185 | Double_t fMaxdca; // Limit dca\r | |
186 | Double_t fMaxopeningtheta; // Limit opening angle in theta\r | |
187 | Double_t fMaxopeningphi; // Limit opening angle in phi\r | |
188 | Double_t fMaxopening3D; // Limit opening 3D\r | |
189 | Double_t fMaxInvmass; // Limit invariant mass\r | |
7b4c9210 | 190 | Bool_t fSetMassConstraint; // Set mass constraint\r |
0e30407a | 191 | \r |
192 | \r | |
7b5936fc | 193 | Bool_t fMonitorEventPlane; // Monitor event plane\r |
194 | Bool_t fMonitorContamination; // Monitor contamination\r | |
195 | Bool_t fMonitorPhotonic;// Monitor photonic\r | |
196 | Bool_t fMonitorWithoutPID;// Monitor without PID\r | |
197 | Bool_t fMonitorTrackCuts;// Monitor track cuts\r | |
198 | Bool_t fMonitorQCumulant;// Monitor Q cumulant\r | |
199 | \r | |
8c1c76e9 | 200 | // Cuts for FLOW PWG2\r |
7c4ec6e7 | 201 | AliFlowTrackCuts* fcutsRP; //! Reference particle cut\r |
202 | AliFlowTrackCuts* fcutsPOI; //! Particle Of Interest cut\r | |
8c1c76e9 | 203 | \r |
204 | // Cuts for HFE\r | |
7f695a7b | 205 | AliHFEcuts *fHFECuts; // HFE cuts\r |
206 | AliHFEpid *fPID; // PID cuts \r | |
207 | AliHFEpid *fPIDTOFOnly; // PID cuts TOF only\r | |
208 | AliHFEpidQAmanager *fPIDqa; // QA Manager\r | |
0e30407a | 209 | AliFlowEvent *fflowEvent; //! Flow event \r |
210 | \r | |
6733d981 | 211 | // Hadron Contamination\r |
212 | TF1 *fContamination[11]; // Parametrization of the contamination (0-5,5-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80,80-90,90-100)\r | |
6b2521a4 | 213 | TF1 *fv2contamination[11]; // Parametrization of the v2 of charged pions (0-5,5-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80,80-90,90-100)\r |
6733d981 | 214 | \r |
0e30407a | 215 | // Cuts for background study\r |
7f695a7b | 216 | AliESDtrackCuts *fHFEBackgroundCuts; // HFE background cuts\r |
217 | AliHFEpid *fPIDBackground; // PID background cuts \r | |
218 | AliHFEpidQAmanager *fPIDBackgroundqa; // QA Manager Background \r | |
0e30407a | 219 | Bool_t fAlgorithmMA; // algorithm MA\r |
220 | \r | |
221 | // List of tracks\r | |
7c4ec6e7 | 222 | TArrayI *fArraytrack; //! list of tracks\r |
0e30407a | 223 | Int_t fCounterPoolBackground; // number of tracks\r |
8c1c76e9 | 224 | \r |
a8ef1999 | 225 | // VZERO Event plane after calibration 2010\r |
7f695a7b | 226 | AliHFEVZEROEventPlane *fHFEVZEROEventPlane; // VZERO event plane calibrated\r |
a8ef1999 | 227 | \r |
8c1c76e9 | 228 | // Histos\r |
2747660f | 229 | TH2D *fHistEV; //! Number of events\r |
3112b3a5 | 230 | THnSparseF *fHistPileUp; //! Pile up histogram\r |
d87a9d29 | 231 | Bool_t fPileUpCut;\r |
232 | \r | |
e17c1f86 | 233 | // A Event plane as function of phiepa, phiepb, phiepc, phiepd centrality \r |
6733d981 | 234 | // a V0A, b V0C, c TPC,\r |
a8ef1999 | 235 | THnSparseF *fEventPlane; //! Event plane\r |
8c1c76e9 | 236 | \r |
237 | // B Event Plane after subtraction as function of phiep, centrality \r | |
a8ef1999 | 238 | THnSparseF *fEventPlaneaftersubtraction; //! Event plane\r |
8c1c76e9 | 239 | \r |
6733d981 | 240 | // Contamination\r |
6b2521a4 | 241 | THnSparseF *fFractionContamination; //! Fraction of contamination as function of pt\r |
242 | TProfile2D *fContaminationv2; //! v2 of contamination\r | |
6733d981 | 243 | \r |
e17c1f86 | 244 | // Monitoring Event plane: cos2phi, sin2phi, centrality\r |
a8ef1999 | 245 | THnSparseF *fCosSin2phiep; //! Cos(2phi), Sin(2phi)\r |
e17c1f86 | 246 | \r |
8c1c76e9 | 247 | // E Monitoring Event plane after subtraction of the track: cos, centrality, pt, eta\r |
a8ef1999 | 248 | THnSparseF *fCos2phie; //! Monitoring\r |
249 | THnSparseF *fSin2phie; //! Monitoring\r | |
250 | THnSparseF *fCos2phiep; //! Monitoring\r | |
251 | THnSparseF *fSin2phiep; //! Monitoring\r | |
252 | THnSparseF *fSin2phiephiep; //! Monitoring\r | |
e17c1f86 | 253 | \r |
254 | // Fbis Resolution as function of cosres, cosres, cosres, centrality for three subevents (V0)\r | |
255 | // a V0A, b V0C, c TPC\r | |
a8ef1999 | 256 | THnSparseF *fCosResabc; //! Res\r |
257 | THnSparseF *fSinResabc; //! Res\r | |
258 | TProfile *fProfileCosResab; //! Profile Res_a_b\r | |
259 | TProfile *fProfileCosResac; //! Profile Res_a_c\r | |
260 | TProfile *fProfileCosResbc; //! Profile Res_b_c\r | |
8c1c76e9 | 261 | \r |
e17c1f86 | 262 | // F Resolution as function of cosres, centrality for two subevents (TPC)\r |
a8ef1999 | 263 | THnSparseF *fCosRes; //! Res\r |
264 | THnSparseF *fSinRes; //! Res\r | |
265 | TProfile *fProfileCosRes; //! Profile Res\r | |
8c1c76e9 | 266 | \r |
0e30407a | 267 | // Debuging Cuts step by step all centrality together: pt, step (6)\r |
268 | THnSparseF *fTrackingCuts; //! Tracking Cuts\r | |
269 | \r | |
270 | // Before PID cut\r | |
271 | // G Maps delta phi as function of deltaphi, centrality, pt\r | |
272 | THnSparseF *fDeltaPhiMapsBeforePID; //! Delta phi\r | |
273 | // H Maps cos phi : cos, centrality, pt\r | |
274 | THnSparseF *fCosPhiMapsBeforePID; //! Cos\r | |
275 | \r | |
8c1c76e9 | 276 | // G Maps delta phi as function of deltaphi, centrality, pt\r |
a8ef1999 | 277 | THnSparseF *fDeltaPhiMaps; //! Delta phi\r |
5cd679b7 | 278 | THnSparseF *fDeltaPhiMapsContamination; //! Delta phi for contamination substraction\r |
8c1c76e9 | 279 | // H Maps cos phi : cos, centrality, pt\r |
a8ef1999 | 280 | THnSparseF *fCosPhiMaps; //! Cos\r |
281 | TProfile2D *fProfileCosPhiMaps; //! Profile Cos\r | |
0e30407a | 282 | \r |
283 | // Background study: not statistic but tagged \r | |
2747660f | 284 | THnSparseF *fDeltaPhiMapsTaggedPhotonic; //! Delta phi\r |
6733d981 | 285 | //THnSparseF *fCosPhiMapsTaggedPhotonic; //! Cos\r |
2747660f | 286 | THnSparseF *fDeltaPhiMapsTaggedNonPhotonic; //! Delta phi\r |
6733d981 | 287 | //THnSparseF *fCosPhiMapsTaggedNonPhotonic; //! Cos\r |
2747660f | 288 | THnSparseF *fDeltaPhiMapsTaggedPhotonicLS; //! Delta phi\r |
6733d981 | 289 | //THnSparseF *fCosPhiMapsTaggedPhotonicLS; //! Cos\r |
0e30407a | 290 | \r |
291 | // Background study: centrality, pt, source\r | |
292 | THnSparseF *fMCSourceDeltaPhiMaps; //! Source MC\r | |
293 | // Background study: deltaphi, centrality, pt, minv, source\r | |
294 | THnSparseF *fOppSignDeltaPhiMaps; //! Delta phi\r | |
295 | THnSparseF *fSameSignDeltaPhiMaps; //! Delta phi\r | |
296 | // Background study: angle, centrality, source\r | |
297 | THnSparseF *fOppSignAngle; // ! Opening Angles\r | |
298 | THnSparseF *fSameSignAngle; // ! Opening Angles\r | |
299 | \r | |
959ea9d8 | 300 | TTreeSRedirector *fDebugStreamer; //!Debug streamer\r |
301 | \r | |
5a30a273 | 302 | Int_t FindMother(Int_t tr, AliMCEvent *mcEvent, Int_t &indexmother);\r |
7b4c9210 | 303 | Int_t CheckPdg(Int_t tr, AliMCEvent* mcEvent);\r |
0e30407a | 304 | Int_t IsMotherGamma(Int_t tr, AliMCEvent* mcEvent);\r |
305 | Int_t IsMotherPi0(Int_t tr, AliMCEvent* mcEvent);\r | |
306 | Int_t IsMotherC(Int_t tr, AliMCEvent* mcEvent);\r | |
307 | Int_t IsMotherB(Int_t tr, AliMCEvent* mcEvent);\r | |
308 | Int_t IsMotherEta(Int_t tr, AliMCEvent* mcEvent);\r | |
309 | \r | |
8c1c76e9 | 310 | \r |
914042c2 | 311 | ClassDef(AliAnalysisTaskFlowTPCTOFEPSP, 1); // analysisclass\r |
8c1c76e9 | 312 | };\r |
313 | \r | |
314 | #endif\r |