]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/UserTasks/AliAnalysisTaskJetProtonCorr.h
fixing the errors
[u/mrichter/AliRoot.git] / PWGJE / UserTasks / AliAnalysisTaskJetProtonCorr.h
CommitLineData
23536a91 1#include "TH1.h"
2#include "TH2.h"
3#include "TH3.h"
d57e2346 4#include "TF1.h"
23536a91 5
6#include "AliLog.h"
7
0ba09863 8#include "AliVParticle.h"
23536a91 9#include "AliAnalysisTaskSE.h"
a4c7ef28 10#include "AliESDtrackCuts.h"
23536a91 11
12#define ID(x) x, #x
13#define LAB(x) x + 1, #x
14
15class TList;
16class TClonesArray;
ebdf1dbb 17class AliOADBContainer;
18class AliTOFPIDParams;
23536a91 19class AliVTrack;
20class AliPIDResponse;
21class AliEventPoolManager;
22class AliEventPool;
ebdf1dbb 23class AliEventplane;
23536a91 24
25class AliAnalysisTaskJetProtonCorr :
26 public AliAnalysisTaskSE
27{
28public:
29 AliAnalysisTaskJetProtonCorr(const char *name = "jets_trg_trd");
30 ~AliAnalysisTaskJetProtonCorr();
31
32 // analysis operations
33 virtual void UserCreateOutputObjects();
34 virtual Bool_t Notify();
35 virtual void UserExec(Option_t *option);
36 virtual void Terminate(const Option_t *option);
37
ebdf1dbb 38 void SetParamsTOF();
39
23536a91 40 // task configuration
d57e2346 41 void SetJetBranchName(const char* branchName) { strncpy(fJetBranchName, branchName, fgkStringLength-1); }
23536a91 42 const char* GetJetBranchName() const { return fJetBranchName; }
43
44 void SetPtThrPart(Float_t minPt, Float_t maxPt) { fTrgPartPtMin = minPt; fTrgPartPtMax = maxPt; }
45 Float_t GetPtMinPart() const { return fTrgPartPtMin; }
46 Float_t GetPtMaxPart() const { return fTrgPartPtMax; }
47 void SetPtThrJet(Float_t minPt, Float_t maxPt) { fTrgJetPtMin = minPt; fTrgJetPtMax = maxPt; }
48 Float_t GetPtMinJet() const { return fTrgJetPtMin; }
49 Float_t GetPtMaxJet() const { return fTrgJetPtMax; }
50 void SetPtThrAss(Float_t minPt, Float_t maxPt) { fAssPartPtMin = minPt; fAssPartPtMax = maxPt; }
51 Float_t GetPtMinAss() const { return fAssPartPtMin; }
52 Float_t GetPtMaxAss() const { return fAssPartPtMax; }
53
09fd5f9f 54 void SetTwoTrackCut(Float_t cut) { fCutsTwoTrackEff = cut; }
55 Float_t GetTwoTrackCut() const { return fCutsTwoTrackEff; }
56
d57e2346 57 void SetTrackCutsAss(const AliESDtrackCuts &cuts) { *fCutsPrimAss = cuts; }
58 void SetTrackCutsTrg(const AliESDtrackCuts &cuts) { *fCutsPrimTrg = cuts; }
59 void SetTrackCutsTrgConstrain(const AliESDtrackCuts &cuts) { *fCutsPrimTrgConstrain = cuts; }
a4c7ef28 60
09fd5f9f 61 void SetTrgJetEtaMax(Float_t etamax) { fTrgJetEtaMax = etamax; }
62 Float_t GetTrgJetEtaMax() const { return fTrgJetEtaMax; }
63 void SetHadEtaMax(Float_t etamax) { fHadEtaMax = etamax; }
64 Float_t GetHadEtaMax() const { return fHadEtaMax; }
65
a4c7ef28 66 void SetUseEvplaneV0(Bool_t usev0 = kTRUE) { fUseEvplaneV0 = usev0; }
67 Bool_t GetUseEvplaneV0() const { return fUseEvplaneV0; }
68
d57e2346 69 void SetJetV2(Float_t v2Cent, Float_t v2Semi) {
70 fTrgJetPhiModCent->SetParameter(0, v2Cent);
71 fTrgJetPhiModSemi->SetParameter(0, v2Semi);
72 }
73 void SetHadV2(Float_t v2Cent, Float_t v2Semi) {
74 fTrgHadPhiModCent->SetParameter(0, v2Cent);
75 fTrgHadPhiModSemi->SetParameter(0, v2Semi);
76 }
77
78 void SetLeadingTrackPtMin(Float_t pt) { fTrgJetLeadTrkPtMin = pt; }
79 void SetLeadingTrackPtMax(Float_t pt) { fTrgJetLeadTrkPtMax = pt; }
80
81 void SetJetAreaMin(Float_t area) { fTrgJetAreaMin = area; }
687dfd6b 82 Float_t GetJetAreaMin() const { return fTrgJetAreaMin; }
83
84 void SetRequirePID(Bool_t req = kTRUE) { fRequirePID = req; }
85 Bool_t GetRequirePID() const { return fRequirePID; }
d57e2346 86
87 void SetFilterMask(Int_t mask) { fAssFilterMask = mask; }
88 Int_t GetFilterMask() const { return fAssFilterMask; }
89
90 void SetErrorCount(Int_t cnt) { fErrorMsg = cnt; }
91 Int_t GetErrorCount() const { return fErrorMsg; }
92
09fd5f9f 93 void SetTrgAngleToEvPlane(Float_t angle) { fTrgAngleToEvPlane = angle; }
94 Float_t GetTrgAngleToEvPlane() const { return fTrgAngleToEvPlane; }
95
96 void SetToyMeanNoPart(Float_t mean) { fToyMeanNoPart = mean; }
97 Float_t GetToyMeanNoPart() const { return fToyMeanNoPart; }
98 void SetToyRadius(Float_t radius) { fToyRadius = radius; }
99 Float_t GetToyRadius() const { return fToyRadius; }
100 void SetToySmearPhi(Float_t sigma) { fToySmearPhi = sigma; }
101 Float_t GetToySmearPhi() const { return fToySmearPhi; }
102
3082e8ab 103 void PrintTask(Option_t *option, Int_t indent) const;
104
105 static Double_t TOFsignal(Double_t *x, Double_t *par)
106 {
107 Double_t norm = par[0];
108 Double_t mean = par[1];
109 Double_t sigma = par[2];
110 Double_t tail = par[3];
111
112 if (x[0] <= (tail + mean))
113 return norm * TMath::Gaus(x[0], mean, sigma);
114 else
115 return norm * TMath::Gaus(tail + mean, mean, sigma) * TMath::Exp(-tail * (x[0] - tail - mean) / (sigma * sigma));
116 }
117
23536a91 118 // histograms
119 enum Hist_t {
120 kHistStat = 0,
ebdf1dbb 121 kHistVertexNctb,
122 kHistVertexZ,
23536a91 123 kHistCentrality,
124 kHistCentralityUsed,
125 kHistCentralityCheck,
126 kHistCentralityCheckUsed,
ebdf1dbb 127 kHistCentralityVsMult,
3082e8ab 128 kHistSignalTPC,
129 kHistSignalTOF,
130 kHistBetaTOF,
131 kHistDeltaTPC,
132 kHistDeltaTPCSemi,
133 kHistDeltaTOF,
134 kHistDeltaTOFSemi,
ebdf1dbb 135 // kHistExpSigmaTOFe,
136 // kHistExpSigmaTOFmu,
137 // kHistExpSigmaTOFpi,
138 // kHistExpSigmaTOFk,
139 // kHistExpSigmaTOFp,
140 // kHistExpSigmaTOFd,
141 // kHistExpSigmaTOFeSemi,
142 // kHistExpSigmaTOFmuSemi,
143 // kHistExpSigmaTOFpiSemi,
144 // kHistExpSigmaTOFkSemi,
145 // kHistExpSigmaTOFpSemi,
146 // kHistExpSigmaTOFdSemi,
147 // kHistCmpSigmaTOFe,
148 // kHistCmpSigmaTOFmu,
149 // kHistCmpSigmaTOFpi,
150 // kHistCmpSigmaTOFk,
151 // kHistCmpSigmaTOFp,
152 // kHistCmpSigmaTOFd,
153 // kHistCmpSigmaTOFeSemi,
154 // kHistCmpSigmaTOFmuSemi,
155 // kHistCmpSigmaTOFpiSemi,
156 // kHistCmpSigmaTOFkSemi,
157 // kHistCmpSigmaTOFpSemi,
158 // kHistCmpSigmaTOFdSemi,
3082e8ab 159 kHistNsigmaTPCe,
160 kHistNsigmaTPCmu,
161 kHistNsigmaTPCpi,
162 kHistNsigmaTPCk,
163 kHistNsigmaTPCp,
164 kHistNsigmaTPCd,
165 kHistNsigmaTPCe_e,
166 kHistNsigmaTOFe,
167 kHistNsigmaTOFmu,
168 kHistNsigmaTOFpi,
169 kHistNsigmaTOFk,
170 kHistNsigmaTOFp,
171 kHistNsigmaTOFd,
172 kHistNsigmaTOFmismatch,
3082e8ab 173 kHistDeltaTOFe,
174 kHistDeltaTOFmu,
175 kHistDeltaTOFpi,
176 kHistDeltaTOFk,
177 kHistDeltaTOFp,
178 kHistDeltaTOFd,
ebdf1dbb 179
3082e8ab 180 kHistNsigmaTPCeSemi,
181 kHistNsigmaTPCmuSemi,
182 kHistNsigmaTPCpiSemi,
183 kHistNsigmaTPCkSemi,
184 kHistNsigmaTPCpSemi,
185 kHistNsigmaTPCdSemi,
186 kHistNsigmaTPCe_eSemi,
187 kHistNsigmaTOFeSemi,
188 kHistNsigmaTOFmuSemi,
189 kHistNsigmaTOFpiSemi,
190 kHistNsigmaTOFkSemi,
191 kHistNsigmaTOFpSemi,
192 kHistNsigmaTOFdSemi,
193 kHistNsigmaTOFmismatchSemi,
3082e8ab 194 kHistDeltaTOFeSemi,
195 kHistDeltaTOFmuSemi,
196 kHistDeltaTOFpiSemi,
197 kHistDeltaTOFkSemi,
198 kHistDeltaTOFpSemi,
199 kHistDeltaTOFdSemi,
ebdf1dbb 200
23536a91 201 kHistNsigmaTPCTOF,
3082e8ab 202 kHistNsigmaTPCTOFPt,
203 kHistNsigmaTPCTOFUsed,
204 kHistNsigmaTPCTOFUsedCentral,
205 kHistNsigmaTPCTOFUsedSemiCentral,
206 kHistNsigmaTPCTOFUsedPt,
207 kHistNsigmaTPCTOFUsedPtCentral,
208 kHistNsigmaTPCTOFUsedPtSemiCentral,
ebdf1dbb 209
23536a91 210 kHistEvPlane,
211 kHistEvPlaneUsed,
3082e8ab 212 kHistEvPlaneCheck,
213 kHistEvPlaneCheckUsed,
a4c7ef28 214 kHistEvPlane3,
3082e8ab 215 kHistEvPlaneCorr,
ebdf1dbb 216 kHistEvPlaneCorrNoTrgJets,
217 kHistEvPlaneCorrNoTrgJetsTrgd,
3082e8ab 218 kHistJetPtCentral,
219 kHistJetPtSemi,
23536a91 220 kHistEtaPhiTrgHad,
221 kHistEtaPhiTrgJet,
222 kHistEtaPhiAssHad,
223 kHistEtaPhiAssProt,
ebdf1dbb 224 kHistPhiTrgJetEvPlane,
225 kHistPhiTrgHadEvPlane,
687dfd6b 226 kHistPhiRndTrgJetEvPlane,
227 kHistPhiRndTrgHadEvPlane,
ebdf1dbb 228 kHistPhiAssHadEvPlane,
229 kHistPhiAssHadVsEvPlane,
230 kHistPhiAssProtEvPlane,
a4c7ef28 231 kHistPhiTrgJetEvPlane3,
232 kHistPhiTrgHadEvPlane3,
233 kHistPhiAssHadEvPlane3,
234 kHistPhiAssProtEvPlane3,
23536a91 235 kHistLast
236 };
237
238 // statistics
239 enum Stat_t {
240 kStatSeen = 1,
241 kStatTrg,
ebdf1dbb 242 kStatVtx,
23536a91 243 kStatCent,
244 kStatEvPlane,
245 kStatPID,
3082e8ab 246 kStatUsed,
23536a91 247 kStatEvCuts,
3082e8ab 248 kStatCentral,
249 kStatSemiCentral,
23536a91 250 kStatLast
251 };
252
253 // trigger conditions
3082e8ab 254 enum Trigger_t {
23536a91 255 kTriggerMB = 0,
256 kTriggerInt,
257 kTriggerLast
3082e8ab 258 };
23536a91 259
260 // classification
261 enum CorrType_t {
262 kCorrHadHad = 0,
263 kCorrHadProt,
264 kCorrJetHad,
265 kCorrJetProt,
ebdf1dbb 266
ebdf1dbb 267 kCorrRndHadHad,
268 kCorrRndHadProt,
3fa79056 269 kCorrRndJetHad,
270 kCorrRndJetProt,
ebdf1dbb 271
ebdf1dbb 272 kCorrRndHadExcHad,
273 kCorrRndHadExcProt,
3fa79056 274 kCorrRndJetExcHad,
275 kCorrRndJetExcProt,
ebdf1dbb 276
23536a91 277 kCorrLast
278 };
279
280 enum Class_t {
281 kClCentral = 0,
282 kClSemiCentral,
2751fb9a 283 // kClDijet,
23536a91 284 kClLast
285 };
286
287 enum Trg_t {
288 kTrgHad = 0,
289 kTrgJet,
ebdf1dbb 290 kTrgHadRnd,
291 kTrgJetRnd,
23536a91 292 kTrgLast
293 };
294
295 enum Ass_t {
ebdf1dbb 296 kAssHad = 0,
23536a91 297 kAssProt,
ebdf1dbb 298 kAssHadJetExc,
299 kAssProtJetExc,
300 kAssHadHadExc,
301 kAssProtHadExc,
23536a91 302 kAssLast
303 };
304
305 enum Ev_t {
306 kEvSame = 0,
307 kEvMix,
308 kEvLast
309 };
310
0ba09863 311 class AliPartCorr : public AliVParticle {
312 public:
313 AliPartCorr(Float_t eta = 0., Float_t phi = 0., Float_t pt = 0., Float_t charge = 0) :
314 fPt(pt), fEta(eta), fPhi(phi), fCharge(charge) {}
315 AliPartCorr(const AliVParticle &rhs) :
316 fPt(rhs.Pt()), fEta(rhs.Eta()), fPhi(rhs.Phi()), fCharge(rhs.Charge()) {}
317 virtual ~AliPartCorr() {}
318
319 // kinematics
320 virtual Double_t Px() const { AliFatal("not implemented"); return 0; }
321 virtual Double_t Py() const { AliFatal("not implemented"); return 0; }
322 virtual Double_t Pz() const { AliFatal("not implemented"); return 0; }
323 virtual Double_t Pt() const { return fPt; }
324 virtual Double_t P() const { AliFatal("not implemented"); return 0; }
325 virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("not implemented"); return 0; }
326
327 virtual Double_t Xv() const { AliFatal("not implemented"); return 0; }
328 virtual Double_t Yv() const { AliFatal("not implemented"); return 0; }
329 virtual Double_t Zv() const { AliFatal("not implemented"); return 0; }
330 virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("not implemented"); return 0; }
331
332 virtual Double_t OneOverPt() const { AliFatal("not implemented"); return 0; }
333 virtual Double_t Phi() const { return fPhi; }
334 virtual Double_t Theta() const { AliFatal("not implemented"); return 0; }
335
336 virtual Double_t E() const { AliFatal("not implemented"); return 0; }
337 virtual Double_t M() const { AliFatal("not implemented"); return 0; }
338
339 virtual Double_t Eta() const { return fEta; }
340 virtual Double_t Y() const { AliFatal("not implemented"); return 0; }
341
342 virtual Short_t Charge() const { return fCharge; }
343 virtual Int_t GetLabel() const { AliFatal("not implemented"); return 0; }
344
345 virtual Int_t PdgCode() const { AliFatal("not implemented"); return 0; }
346 virtual const Double_t *PID() const { AliFatal("not implemented"); return 0; }
347
348 protected:
349 Float_t fPt;
350 Float_t fEta;
351 Float_t fPhi;
352 Short_t fCharge;
353
354 ClassDef(AliPartCorr, 1);
355 };
356
23536a91 357 class AliHistCorr : public TNamed {
358 public:
359 AliHistCorr(TString name, TList *outputList = 0x0);
360 ~AliHistCorr();
361
0ba09863 362 void Trigger(Float_t phi, Float_t eta, Float_t weight = 1.) {
363 fHistStat->Fill(1., weight);
364 if (fHistCorrTrgEtaPhi)
365 fHistCorrTrgEtaPhi->Fill(phi, eta, weight);
366 }
367 void Ass(Float_t phi, Float_t eta, Float_t weight = 1.) {
368 if (fHistCorrAssEtaPhi)
369 fHistCorrAssEtaPhi->Fill(phi, eta, weight);
370 }
23536a91 371 void Fill(AliVParticle *trgPart, AliVParticle *assPart, Float_t weight = 1.);
ebdf1dbb 372 void Fill(TLorentzVector *trgPart, AliVParticle *assPart, Float_t weight = 1.);
373 void Fill(TLorentzVector *trgPart, TLorentzVector *assPart, Float_t weight = 1.);
23536a91 374
375 protected:
376 TList *fOutputList;
377
378 TH1F *fHistStat;
379
380 TH1F *fHistCorrPhi;
381 TH2F *fHistCorrPhi2;
382 TH2F *fHistCorrEtaPhi;
ebdf1dbb 383 TH2F *fHistCorrAvgEtaPhi;
384 TH2F *fHistCorrTrgEtaPhi;
385 TH2F *fHistCorrAssEtaPhi;
23536a91 386
09fd5f9f 387 const Float_t fHistDphiLo;
388 const Int_t fHistDphiNbins;
389 const Int_t fHistDetaNbins;
390
23536a91 391 AliHistCorr(const AliHistCorr &rhs);
392 AliHistCorr& operator=(const AliHistCorr &rhs);
393
394 ClassDef(AliHistCorr, 1);
395 };
396
397 AliHistCorr*& GetHistCorr(CorrType_t corr, Class_t cl, Ev_t ev) { return fHistCorr[kEvLast*(kClLast*corr + cl) + ev]; }
2751fb9a 398 AliEventPoolManager*& GetPoolMgr(Ass_t ass) { return fPoolMgr[ass]; }
399 AliEventPool*& GetPool(Ass_t ass) { return fPool[ass]; }
23536a91 400
401protected:
402 AliMCEvent *fMCEvent; //!
403 AliESDEvent *fESDEvent; //!
404 AliAODEvent *fAODEvent; //!
405
ebdf1dbb 406 Int_t fRunNumber; //! current run number
407 AliOADBContainer *fOADBContainerTOF; //! container for OADB entry with TOF parameters
408 AliTOFPIDParams *fParamsTOF; //! TOF parametrization
409
410 AliEventplane *fEventplane; //! pointer to the event plane
411
23536a91 412 UInt_t fTriggerMask; //! internal representation of trigger conditions
413 UInt_t fClassMask; //! internal representation of event classes
414 Float_t fCentrality; //!
415 Float_t fCentralityCheck; //!
416 Float_t fZvtx; //!
417 AliPIDResponse *fPIDResponse; //!
ebdf1dbb 418 Float_t fEventPlaneAngle; //!
419 Float_t fEventPlaneAngleCheck; //!
a4c7ef28 420 Float_t fEventPlaneAngle3; //!
421
422 TObjArray *fPrimTrackArrayAss; //!
423 TObjArray *fPrimTrackArrayTrg; //!
424 TClonesArray *fPrimConstrainedTrackArray; //!
23536a91 425 TClonesArray *fJetArray; //!
426
2751fb9a 427 AliEventPoolManager *fPoolMgr[kAssProt + 1]; //!
428 AliEventPool *fPool[kAssProt + 1]; //!
23536a91 429
430 AliHistCorr **fHistCorr; //! [kCorrLast*kEvLast*kClLast]; //!
431
d57e2346 432 Int_t fErrorMsg; //! remaining number of error messages to be printed
433
23536a91 434 Bool_t DetectTriggers();
435 void MarkTrigger(Trigger_t trg) { fTriggerMask |= (1 << trg); }
436 Bool_t IsTrigger(Trigger_t trg) const { return (fTriggerMask & (1 << trg)); }
437
438 Bool_t DetectClasses();
439 void MarkClass(Class_t cl) { fClassMask |= (1 << cl); }
440 Bool_t IsClass(Class_t cl) const { return (fClassMask & (1 << cl)); }
441
442 Bool_t PrepareEvent();
443 Bool_t CleanUpEvent();
444
445 Float_t GetCentrality() const { return fCentrality; }
ebdf1dbb 446 Float_t GetEventPlaneAngle() const { return fEventPlaneAngle; }
23536a91 447 AliPIDResponse* GetPID() const { return fPIDResponse; }
d57e2346 448 Bool_t IsCentral() const { return ((fCentrality >= 0.) && (fCentrality <= 10.)); }
449 Bool_t IsSemiCentral() const { return ((fCentrality >= 30.) && (fCentrality <= 50.)); }
23536a91 450
d57e2346 451 AliVTrack* GetLeadingTrack(const AliAODJet *jet) const;
3082e8ab 452
453 Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1,
454 Float_t phi2, Float_t pt2, Float_t charge2,
d57e2346 455 Float_t radius, Float_t bSign) const;
3082e8ab 456
d57e2346 457 Bool_t AcceptTrigger(const AliVTrack *trg);
458 Bool_t AcceptTrigger(const AliAODJet *trg);
459 Bool_t AcceptAssoc(const AliVTrack *trk) const;
460 Bool_t IsProton(const AliVTrack *trk) const;
461 Bool_t AcceptAngleToEvPlane(Float_t phi, Float_t psi) const;
462 Bool_t AcceptTwoTracks(const AliVParticle *trgPart, const AliVParticle *assPart) const;
23536a91 463
464 TObjArray* CloneTracks(TObjArray *tracks) const;
465
ebdf1dbb 466 Bool_t GenerateRandom(TCollection *trgJetArray, TCollection *trgHadArray,
467 TCollection *assHadJetArray, TCollection *assProtJetArray,
468 TCollection *assHadHadArray, TCollection *assProtHadArray,
469 Float_t pFraction = .5);
470
23536a91 471 Bool_t Correlate(CorrType_t corr, Class_t cl, Ev_t ev,
472 TCollection *trgArray, TCollection *assArray, Float_t weight = 1.);
473
474 Bool_t Correlate(Trg_t trg, Ass_t ass, Class_t cl, Ev_t ev,
475 TCollection *trgArray, TCollection *assArray, Float_t weight = 1.);
476
477 // output objects
478 TList *fOutputList; //! list of output objects
479
480 // histogram management
481 TH1 *fHist[kHistLast]; //! pointers to histogram
482 const char *fShortTaskId; //! short identifier for the task
483
484 TH1*& GetHistogram(Hist_t hist, const Int_t idx = 0) { return fHist[hist + idx]; }
485
486 TH1* AddHistogram(Hist_t hist, const char *hid, TString title,
487 Int_t xbins, Float_t xmin, Float_t xmax, Int_t binType = 1);
488 TH2* AddHistogram(Hist_t hist, const char *hid, TString title,
489 Int_t xbins, Float_t xmin, Float_t xmax,
490 Int_t ybins, Float_t ymin, Float_t ymax, Int_t binType = 1);
491 TH3* AddHistogram(Hist_t hist, const char *hid, TString title,
492 Int_t xbins, Float_t xmin, Float_t xmax,
493 Int_t ybins, Float_t ymin, Float_t ymax,
494 Int_t zbins, Float_t zmin, Float_t zmax, Int_t binType = 1);
495
496 void FillH1(Hist_t hist, Float_t x, Float_t weight = 1., Int_t idx = 0)
497 { GetHistogram(hist, idx)->Fill(x, weight); }
498 void FillH2(Hist_t hist, Float_t x, Float_t y, Float_t weight = 1., Int_t idx = 0)
499 { ((TH2*) GetHistogram(hist, idx))->Fill(x, y, weight); }
500 void FillH3(Hist_t hist, Float_t x, Float_t y, Float_t z, Float_t weight = 1., Int_t idx = 0)
501 { ((TH3*) GetHistogram(hist, idx))->Fill(x, y, z, weight); }
502
503 const char* fkCorrTypeName[kCorrLast]; //!
504 const char* fkClassName[kClLast]; //!
505 const char* fkEvName[kEvLast]; //!
506
507 // task configuration
508 static const Int_t fgkStringLength = 100; // max length for the jet branch name
509 char fJetBranchName[fgkStringLength]; // jet branch name
510
09fd5f9f 511 const Bool_t fUseStandardCuts;
a4c7ef28 512 Bool_t fUseEvplaneV0;
3082e8ab 513
a4c7ef28 514 AliESDtrackCuts *fCutsPrimTrg; // track cuts for primary particles (trigger)
515 AliESDtrackCuts *fCutsPrimTrgConstrain; // track cuts for primary particles (trigger)
516 AliESDtrackCuts *fCutsPrimAss; // track cuts for primary particles (associate)
3082e8ab 517 Float_t fCutsTwoTrackEff;
23536a91 518
d57e2346 519 UInt_t fAssFilterMask;
687dfd6b 520 Bool_t fRequirePID;
d57e2346 521 Float_t fTrgJetEtaMax;
522 Float_t fHadEtaMax;
23536a91 523 Float_t fTrgPartPtMin;
524 Float_t fTrgPartPtMax;
525 Float_t fTrgJetPtMin;
526 Float_t fTrgJetPtMax;
3082e8ab 527 Float_t fTrgJetLeadTrkPtMin;
d57e2346 528 Float_t fTrgJetLeadTrkPtMax;
529 Float_t fTrgJetAreaMin;
23536a91 530 Float_t fAssPartPtMin;
531 Float_t fAssPartPtMax;
3082e8ab 532 Float_t fTrgAngleToEvPlane;
23536a91 533
687dfd6b 534 Float_t fToyMeanNoPart;
535 Float_t fToyRadius;
536 Float_t fToySmearPhi;
537
ebdf1dbb 538 TF1 *fTrgJetPhiModCent;
539 TF1 *fTrgJetPhiModSemi;
540 TF1 *fTrgHadPhiModCent;
541 TF1 *fTrgHadPhiModSemi;
542
23536a91 543 // not implemented
544 AliAnalysisTaskJetProtonCorr(const AliAnalysisTaskJetProtonCorr &rhs);
545 AliAnalysisTaskJetProtonCorr& operator=(const AliAnalysisTaskJetProtonCorr &rhs);
546
547 ClassDef(AliAnalysisTaskJetProtonCorr, 1);
548};