]>
Commit | Line | Data |
---|---|---|
9fd4b54e | 1 | #ifndef ALIANALYSISTASKBFPSI_H\r |
2 | #define ALIANALYSISTASKBFPSI_H\r | |
0879e280 | 3 | \r |
4 | // Analysis task for the BF vs Psi code\r | |
5 | // Authors: Panos Cristakoglou@cern.ch\r | |
6 | \r | |
7 | class TList;\r | |
8 | class TH1F;\r | |
9 | class TH2F;\r | |
f2e8af26 | 10 | class TH3F; \r |
0879e280 | 11 | class TF1;\r |
35aff0f3 | 12 | class TH3D;\r |
0879e280 | 13 | \r |
14 | class AliBalancePsi;\r | |
15 | class AliESDtrackCuts;\r | |
f06d59b3 | 16 | class AliEventPoolManager;\r |
17 | \r | |
0879e280 | 18 | \r |
19 | #include "AliAnalysisTaskSE.h"\r | |
20 | #include "AliBalancePsi.h"\r | |
21 | \r | |
22 | #include "AliPID.h" \r | |
23 | #include "AliPIDResponse.h"\r | |
24 | #include "AliPIDCombined.h"\r | |
25 | \r | |
35aff0f3 | 26 | //================================correction\r |
6fa567bd | 27 | #define kCENTRALITY 101 \r |
28 | //const Double_t centralityArrayForPbPb[kCENTRALITY+1] = {0.,5.,10.,20.,30.,40.,50.,60.,70.,80.};\r | |
29 | //const TString centralityArrayForPbPb_string[kCENTRALITY] = {"0-5","5-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80"};\r | |
35aff0f3 | 30 | //================================correction\r |
0879e280 | 31 | \r |
32 | class AliAnalysisTaskBFPsi : public AliAnalysisTaskSE {\r | |
33 | public:\r | |
34 | AliAnalysisTaskBFPsi(const char *name = "AliAnalysisTaskBFPsi");\r | |
35 | virtual ~AliAnalysisTaskBFPsi(); \r | |
35aff0f3 | 36 | \r |
0879e280 | 37 | virtual void UserCreateOutputObjects();\r |
38 | virtual void UserExec(Option_t *option);\r | |
39 | virtual void FinishTaskOutput();\r | |
40 | virtual void Terminate(Option_t *);\r | |
41 | \r | |
35aff0f3 | 42 | //========================correction\r |
c3b1f1a5 | 43 | virtual void SetInputCorrection(TString filename, \r |
44 | Int_t nCentralityBins, \r | |
45 | Double_t *centralityArrayForCorrections);\r | |
35aff0f3 | 46 | //========================correction\r |
a3ed6fc1 | 47 | void SetDebugLevel() {fDebugLevel = kTRUE;}\r |
35aff0f3 | 48 | \r |
0879e280 | 49 | void SetAnalysisObject(AliBalancePsi *const analysis) {\r |
50 | fBalance = analysis;\r | |
51 | }\r | |
52 | void SetShufflingObject(AliBalancePsi *const analysisShuffled) {\r | |
53 | fRunShuffling = kTRUE;\r | |
54 | fShuffledBalance = analysisShuffled;\r | |
55 | }\r | |
f06d59b3 | 56 | void SetMixingObject(AliBalancePsi *const analysisMixed) {\r |
57 | fRunMixing = kTRUE;\r | |
58 | fMixedBalance = analysisMixed;\r | |
59 | }\r | |
8cdfbf52 | 60 | void SetMixingWithEventPlane(Bool_t bMixingWithEventPlane = kTRUE) { fRunMixingEventPlane = bMixingWithEventPlane; }\r |
f06d59b3 | 61 | void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }\r |
0879e280 | 62 | void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {\r |
63 | fESDtrackCuts = trackCuts;}\r | |
64 | void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {\r | |
65 | fVxMax = vx;\r | |
66 | fVyMax = vy;\r | |
67 | fVzMax = vz;\r | |
68 | }\r | |
69 | \r | |
70 | //==============AOD analysis==============//\r | |
71 | void SetAODtrackCutBit(Int_t bit){\r | |
4d528efb | 72 | fnAODtrackCutBit = bit;\r |
0879e280 | 73 | }\r |
74 | \r | |
75 | void SetKinematicsCutsAOD(Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax){\r | |
9fd4b54e | 76 | fPtMin = ptmin; fPtMax = ptmax;\r |
77 | fEtaMin = etamin; fEtaMax = etamax;\r | |
0879e280 | 78 | }\r |
79 | \r | |
80 | void SetExtraDCACutsAOD(Double_t DCAxy, Double_t DCAz){\r | |
81 | fDCAxyCut = DCAxy;\r | |
82 | fDCAzCut = DCAz;\r | |
83 | }\r | |
84 | \r | |
85 | void SetExtraTPCCutsAOD(Double_t maxTPCchi2, Int_t minNClustersTPC){\r | |
86 | fTPCchi2Cut = maxTPCchi2;\r | |
87 | fNClustersTPCCut = minNClustersTPC;\r | |
88 | }\r | |
89 | \r | |
90 | //==============MC analysis==============//\r | |
91 | void SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,\r | |
92 | Double_t etamin, Double_t etamax){\r | |
93 | fPtMin = ptmin; fPtMax = ptmax;\r | |
94 | fEtaMin = etamin; fEtaMax = etamax;\r | |
95 | }\r | |
96 | void UseFlowAfterBurner(TF1 *gDifferentialV2) {\r | |
97 | fDifferentialV2 = gDifferentialV2;\r | |
98 | fUseFlowAfterBurner = kTRUE;\r | |
99 | }\r | |
100 | void ExcludeResonancesInMC() {fExcludeResonancesInMC = kTRUE;}\r | |
8b3da35d | 101 | void ExcludeElectronsInMC() {fExcludeElectronsInMC = kTRUE;}\r |
0879e280 | 102 | \r |
103 | void SetPDGCode(Int_t gPdgCode) {\r | |
104 | fUseMCPdgCode = kTRUE;\r | |
105 | fPDGCodeToBeAnalyzed = gPdgCode;\r | |
106 | }\r | |
107 | \r | |
108 | //Centrality\r | |
109 | void SetCentralityEstimator(const char* centralityEstimator) {fCentralityEstimator = centralityEstimator;}\r | |
9fd4b54e | 110 | const char* GetCentralityEstimator(void) const {return fCentralityEstimator;}\r |
0879e280 | 111 | void SetCentralityPercentileRange(Double_t min, Double_t max) { \r |
112 | fUseCentrality = kTRUE;\r | |
113 | fCentralityPercentileMin=min;\r | |
114 | fCentralityPercentileMax=max;\r | |
115 | }\r | |
116 | void SetImpactParameterRange(Double_t min, Double_t max) { \r | |
117 | fUseCentrality = kTRUE;\r | |
118 | fImpactParameterMin=min;\r | |
119 | fImpactParameterMax=max;\r | |
120 | }\r | |
121 | \r | |
122 | //multiplicity\r | |
4d528efb | 123 | void SetMultiplicityEstimator(const char* multiplicityEstimator) {fMultiplicityEstimator = multiplicityEstimator;}\r |
124 | const char* GetMultiplicityEstimator(void) const {return fMultiplicityEstimator;}\r | |
9efce966 | 125 | void SetMultiplicityRange(Double_t min, Double_t max) {\r |
0879e280 | 126 | fUseMultiplicity = kTRUE;\r |
127 | fNumberOfAcceptedTracksMin = min;\r | |
128 | fNumberOfAcceptedTracksMax = max;}\r | |
129 | \r | |
7556a0f0 | 130 | // additional event cuts (default = kFALSE)\r |
0879e280 | 131 | void UseOfflineTrigger() {fUseOfflineTrigger = kTRUE;}\r |
7556a0f0 | 132 | void CheckFirstEventInChunk() {fCheckFirstEventInChunk = kTRUE;}\r |
133 | void CheckPileUp() {fCheckPileUp = kTRUE;}\r | |
d9eb282c | 134 | void UseMCforKinematics() {fUseMCforKinematics = kTRUE;}\r |
0879e280 | 135 | \r |
136 | //Acceptance filter\r | |
137 | void SetAcceptanceParameterization(TF1 *parameterization) {\r | |
138 | fAcceptanceParameterization = parameterization;}\r | |
139 | \r | |
140 | //pid\r | |
141 | enum kDetectorUsedForPID { kTPCpid, kTOFpid, kTPCTOF }; // default TPC & TOF pid (via GetTPCpid & GetTOFpid) \r | |
142 | enum kParticleOfInterest { kMuon, kElectron, kPion, kKaon, kProton }; \r | |
143 | \r | |
144 | void SetUseBayesianPID(Double_t gMinProbabilityValue) {\r | |
145 | fUsePID = kTRUE; fUsePIDnSigma = kFALSE; fUsePIDPropabilities = kTRUE;\r | |
146 | fMinAcceptedPIDProbability = gMinProbabilityValue; }\r | |
147 | \r | |
148 | void SetUseNSigmaPID(Double_t gMaxNSigma) {\r | |
149 | fUsePID = kTRUE; fUsePIDPropabilities = kFALSE; fUsePIDnSigma = kTRUE;\r | |
150 | fPIDNSigma = gMaxNSigma; }\r | |
151 | \r | |
152 | void SetParticleOfInterest(kParticleOfInterest poi) {\r | |
153 | fParticleOfInterest = poi;}\r | |
154 | void SetDetectorUsedForPID(kDetectorUsedForPID detConfig) {\r | |
155 | fPidDetectorConfig = detConfig;}\r | |
f0fb4ac1 | 156 | void SetEventClass(TString receivedEventClass){\r |
157 | fEventClass = receivedEventClass;\r | |
158 | }\r | |
ea9867da | 159 | \r |
160 | void SetCustomBinning(TString receivedCustomBinning) { fCustomBinning = receivedCustomBinning; }\r | |
161 | \r | |
0879e280 | 162 | \r |
c443da34 | 163 | // electron rejection\r |
164 | void SetElectronRejection(Double_t gMaxNSigma){\r | |
165 | fElectronRejection = kTRUE;\r | |
166 | fElectronRejectionNSigma = gMaxNSigma;\r | |
167 | }\r | |
168 | \r | |
8b3da35d | 169 | void SetElectronOnlyRejection(Double_t gMaxNSigma){\r |
170 | fElectronRejection = kTRUE;\r | |
171 | fElectronOnlyRejection = kTRUE;\r | |
172 | fElectronRejectionNSigma = gMaxNSigma;\r | |
173 | }\r | |
174 | \r | |
175 | void SetElectronRejectionPt(Double_t minPt,Double_t maxPt){\r | |
176 | fElectronRejectionMinPt = minPt;\r | |
177 | fElectronRejectionMaxPt = maxPt;\r | |
178 | }\r | |
179 | \r | |
35aff0f3 | 180 | \r |
0879e280 | 181 | private:\r |
f06d59b3 | 182 | Double_t IsEventAccepted(AliVEvent* event);\r |
f0fb4ac1 | 183 | Double_t GetRefMultiOrCentrality(AliVEvent* event);\r |
4d528efb | 184 | Double_t GetReferenceMultiplicityFromAOD(AliVEvent* event);\r |
f06d59b3 | 185 | Double_t GetEventPlane(AliVEvent* event);\r |
35aff0f3 | 186 | //===============================correction\r |
6fa567bd | 187 | Double_t GetTrackbyTrackCorrectionMatrix(Double_t vEta, \r |
188 | Double_t vPhi, \r | |
189 | Double_t vPt, \r | |
190 | Short_t vCharge, \r | |
191 | Double_t gCentrality);\r | |
35aff0f3 | 192 | //===============================correction\r |
193 | TObjArray* GetAcceptedTracks(AliVEvent* event, Double_t gCentrality, Double_t gReactionPlane);\r | |
194 | TObjArray* GetShuffledTracks(TObjArray* tracks, Double_t gCentrality);\r | |
6f719a5b | 195 | \r |
a3ed6fc1 | 196 | Bool_t fDebugLevel; // debug level\r |
197 | \r | |
6f719a5b | 198 | TClonesArray* fArrayMC; //! AOD object //+++++++++++++++++++++\r |
0879e280 | 199 | AliBalancePsi *fBalance; //BF object\r |
200 | Bool_t fRunShuffling;//run shuffling or not\r | |
201 | AliBalancePsi *fShuffledBalance; //BF object (shuffled)\r | |
f06d59b3 | 202 | Bool_t fRunMixing;//run mixing or not\r |
8cdfbf52 | 203 | Bool_t fRunMixingEventPlane;//run mixing with Event Plane\r |
f06d59b3 | 204 | Int_t fMixingTracks;\r |
205 | AliBalancePsi *fMixedBalance; //TriggeredBF object (mixed)\r | |
206 | AliEventPoolManager* fPoolMgr; //! event pool manager\r | |
207 | \r | |
0879e280 | 208 | TList *fList; //fList object\r |
209 | TList *fListBF; //fList object\r | |
210 | TList *fListBFS; //fList object\r | |
f06d59b3 | 211 | TList *fListBFM; //fList object\r |
0879e280 | 212 | TList *fHistListPIDQA; //! list of histograms\r |
213 | \r | |
6b046844 | 214 | TH2F *fHistEventStats; //event stats\r |
0879e280 | 215 | TH2F *fHistCentStats; //centrality stats\r |
2213e863 | 216 | TH2F *fHistCentStatsUsed; //centrality stats USED +++++++++++++++++++++++\r |
0879e280 | 217 | TH1F *fHistTriggerStats; //trigger stats\r |
218 | TH1F *fHistTrackStats; //Track filter bit stats\r | |
219 | TH1F *fHistVx; //x coordinate of the primary vertex\r | |
220 | TH1F *fHistVy; //y coordinate of the primary vertex\r | |
6b046844 | 221 | TH2F *fHistVz; //z coordinate of the primary vertex\r |
0879e280 | 222 | \r |
4d528efb | 223 | TH2F *fHistTPCvsVZEROMultiplicity; //VZERO vs TPC reference multiplicity\r |
224 | TH2F *fHistVZEROSignal; //VZERO channel vs signal\r | |
225 | \r | |
6b046844 | 226 | TH2F *fHistEventPlane; //event plane distribution\r |
0879e280 | 227 | \r |
9fd4b54e | 228 | TH2F *fHistClus;//number of clusters (QA histogram)\r |
229 | TH2F *fHistDCA;//DCA (QA histogram)\r | |
230 | TH2F *fHistChi2;//track chi2 (QA histogram)\r | |
231 | TH2F *fHistPt;//transverse momentum (QA histogram)\r | |
232 | TH2F *fHistEta;//pseudorapidity (QA histogram)\r | |
233 | TH2F *fHistRapidity;//rapidity (QA histogram)\r | |
234 | TH2F *fHistPhi;//phi (QA histogram)\r | |
f2e8af26 | 235 | TH3F *fHistEtaPhiPos;//eta-phi pos particles (QA histogram) \r |
236 | TH3F *fHistEtaPhiNeg;//eta-phi neg particles (QA histogram)\r | |
9fd4b54e | 237 | TH2F *fHistPhiBefore;//phi before v2 afterburner (QA histogram)\r |
238 | TH2F *fHistPhiAfter;//phi after v2 afterburner (QA histogram)\r | |
239 | TH2F *fHistPhiPos;//phi for positive particles (QA histogram)\r | |
240 | TH2F *fHistPhiNeg;//phi for negative particles (QA histogram)\r | |
241 | TH2F *fHistV0M;//V0 multiplicities (QA histogram)\r | |
242 | TH2F *fHistRefTracks;//reference track multiplicities (QA histogram)\r | |
0879e280 | 243 | \r |
244 | //============PID============//\r | |
9fd4b54e | 245 | TH2D *fHistdEdxVsPTPCbeforePID;//TPC dEdx vs momentum before PID cuts (QA histogram)\r |
246 | TH2D *fHistBetavsPTOFbeforePID;//beta vs momentum before PID cuts (QA histogram)\r | |
247 | TH2D *fHistProbTPCvsPtbeforePID; //TPC probability vs pT before PID cuts (QA histogram)\r | |
248 | TH2D *fHistProbTOFvsPtbeforePID;//TOF probability vs pT before PID cuts (QA histogram)\r | |
249 | TH2D *fHistProbTPCTOFvsPtbeforePID;//TOF/TPC probability vs pT before PID cuts (QA histogram)\r | |
250 | TH2D *fHistNSigmaTPCvsPtbeforePID;//TPC nsigma vs pT before PID cuts (QA histogram)\r | |
251 | TH2D *fHistNSigmaTOFvsPtbeforePID;//TOF nsigma vs pT before PID cuts (QA histogram)\r | |
252 | TH2D *fHistdEdxVsPTPCafterPID;//TPC dEdx vs momentum after PID cuts (QA histogram)\r | |
253 | TH2D *fHistBetavsPTOFafterPID;//beta vs momentum after PID cuts (QA histogram)\r | |
254 | TH2D *fHistProbTPCvsPtafterPID; //TPC probability vs pT after PID cuts (QA histogram)\r | |
255 | TH2D *fHistProbTOFvsPtafterPID;//TOF probability vs pT after PID cuts (QA histogram)\r | |
256 | TH2D *fHistProbTPCTOFvsPtafterPID;//TOF/TPC probability vs pT after PID cuts (QA histogram)\r | |
257 | TH2D *fHistNSigmaTPCvsPtafterPID;//TPC nsigma vs pT after PID cuts (QA histogram)\r | |
258 | TH2D *fHistNSigmaTOFvsPtafterPID;//TOF nsigma vs pT after PID cuts (QA histogram)\r | |
35aff0f3 | 259 | \r |
d79d2934 | 260 | TH3F *fHistCorrectionPlus[kCENTRALITY]; //====correction\r |
261 | TH3F *fHistCorrectionMinus[kCENTRALITY]; //===correction\r | |
6fa567bd | 262 | Double_t fCentralityArrayForCorrections[kCENTRALITY];\r |
263 | Int_t fCentralityArrayBinsForCorrections;\r | |
0879e280 | 264 | \r |
265 | AliPIDResponse *fPIDResponse; //! PID response object\r | |
266 | AliPIDCombined *fPIDCombined; //! combined PID object\r | |
267 | \r | |
9fd4b54e | 268 | kParticleOfInterest fParticleOfInterest;//analyzed particle\r |
269 | kDetectorUsedForPID fPidDetectorConfig;//used detector for PID\r | |
270 | \r | |
271 | Bool_t fUsePID; //flag to use PID \r | |
272 | Bool_t fUsePIDnSigma;//flag to use nsigma method for PID\r | |
273 | Bool_t fUsePIDPropabilities;//flag to use probability method for PID\r | |
274 | Double_t fPIDNSigma;//nsigma cut for PID\r | |
275 | Double_t fMinAcceptedPIDProbability;//probability cut for PID\r | |
1cb2a06e | 276 | \r |
c443da34 | 277 | Bool_t fElectronRejection;//flag to use electron rejection\r |
8b3da35d | 278 | Bool_t fElectronOnlyRejection;//flag to use electron rejection with exclusive electron PID (no other particle in nsigma range)\r |
c443da34 | 279 | Double_t fElectronRejectionNSigma;//nsigma cut for electron rejection\r |
8b3da35d | 280 | Double_t fElectronRejectionMinPt;//minimum pt for electron rejection (default = 0.)\r |
281 | Double_t fElectronRejectionMaxPt;//maximum pt for electron rejection (default = 1000.)\r | |
c443da34 | 282 | \r |
0879e280 | 283 | //============PID============//\r |
284 | \r | |
285 | AliESDtrackCuts *fESDtrackCuts; //ESD track cuts\r | |
286 | \r | |
287 | TString fCentralityEstimator; //"V0M","TRK","TKL","ZDC","FMD"\r | |
288 | Bool_t fUseCentrality;//use the centrality (PbPb) or not (pp)\r | |
289 | Double_t fCentralityPercentileMin;//centrality percentile min\r | |
290 | Double_t fCentralityPercentileMax;//centrality percentile max\r | |
291 | Double_t fImpactParameterMin;//impact parameter min (used for MC)\r | |
292 | Double_t fImpactParameterMax;//impact parameter max (used for MC)\r | |
293 | \r | |
4d528efb | 294 | TString fMultiplicityEstimator;//"V0M","V0A","V0C","TPC"\r |
0879e280 | 295 | Bool_t fUseMultiplicity;//use the multiplicity cuts\r |
9efce966 | 296 | Double_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r |
297 | Double_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r | |
6b046844 | 298 | TH2F *fHistNumberOfAcceptedTracks;//hisot to store the number of accepted tracks\r |
6ec16c49 | 299 | TH1F *fHistMultiplicity;//hisot to store the number of accepted tracks //++++++++++++++++++\r |
0879e280 | 300 | \r |
301 | Bool_t fUseOfflineTrigger;//Usage of the offline trigger selection\r | |
7556a0f0 | 302 | Bool_t fCheckFirstEventInChunk;//Usage of the "First Event in Chunk" check (not needed for new productions)\r |
303 | Bool_t fCheckPileUp;//Usage of the "Pile-Up" event check\r | |
d9eb282c | 304 | Bool_t fUseMCforKinematics;//Usage of MC information for filling the kinematics information of particles (only in MCAODrec mode)\r |
0879e280 | 305 | \r |
306 | Double_t fVxMax;//vxmax\r | |
307 | Double_t fVyMax;//vymax\r | |
308 | Double_t fVzMax;//vzmax\r | |
309 | \r | |
4d528efb | 310 | Int_t fnAODtrackCutBit;//track cut bit from track selection (only used for AODs)\r |
0879e280 | 311 | \r |
312 | Double_t fPtMin;//only used for AODs\r | |
313 | Double_t fPtMax;//only used for AODs\r | |
35aff0f3 | 314 | Double_t fPtMinForCorrections;//only used for AODs\r |
315 | Double_t fPtMaxForCorrections;//only used for AODs\r | |
316 | Double_t fPtBinForCorrections; //=================================correction\r | |
0879e280 | 317 | Double_t fEtaMin;//only used for AODs\r |
318 | Double_t fEtaMax;//only used for AODs\r | |
35aff0f3 | 319 | Double_t fEtaMinForCorrections;//only used for AODs\r |
320 | Double_t fEtaMaxForCorrections;//only used for AODs\r | |
321 | Double_t fEtaBinForCorrections; //=================================correction\r | |
322 | Double_t fPhiMin; //=================================correction \r | |
323 | Double_t fPhiMax; //=================================correction\r | |
324 | Double_t fPhiMinForCorrections;//only used for AODs\r | |
325 | Double_t fPhiMaxForCorrections;//only used for AODs\r | |
326 | Double_t fPhiBinForCorrections; //=================================correction\r | |
0879e280 | 327 | \r |
328 | Double_t fDCAxyCut;//only used for AODs\r | |
329 | Double_t fDCAzCut;//only used for AODs\r | |
330 | \r | |
331 | Double_t fTPCchi2Cut;//only used for AODs\r | |
332 | Int_t fNClustersTPCCut;//only used for AODs\r | |
333 | \r | |
334 | TF1 *fAcceptanceParameterization;//acceptance filter used for MC\r | |
335 | \r | |
336 | TF1 *fDifferentialV2;//pt-differential v2 (from real data)\r | |
337 | Bool_t fUseFlowAfterBurner;//Usage of a flow after burner\r | |
338 | \r | |
8b3da35d | 339 | Bool_t fExcludeResonancesInMC;//flag to exclude the resonances' decay products (and conversion) from the MC analysis\r |
340 | Bool_t fExcludeElectronsInMC;//flag to exclude the electrons from the MC analysis\r | |
0879e280 | 341 | Bool_t fUseMCPdgCode; //Boolean to analyze a set of particles in MC\r |
342 | Int_t fPDGCodeToBeAnalyzed; //Analyze a set of particles in MC\r | |
f0fb4ac1 | 343 | TString fEventClass; //Can be "EventPlane", "Centrality", "Multiplicity"\r |
ea9867da | 344 | TString fCustomBinning;//for setting customized binning (for output AliTHn of AliBalancePsi)\r |
0879e280 | 345 | \r |
346 | \r | |
347 | AliAnalysisTaskBFPsi(const AliAnalysisTaskBFPsi&); // not implemented\r | |
348 | AliAnalysisTaskBFPsi& operator=(const AliAnalysisTaskBFPsi&); // not implemented\r | |
349 | \r | |
5c01a71f | 350 | ClassDef(AliAnalysisTaskBFPsi, 6); // example of analysis\r |
0879e280 | 351 | };\r |
352 | \r | |
f06d59b3 | 353 | \r |
354 | \r | |
0879e280 | 355 | #endif\r |