]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/UserTasks/AliAnalysisTaskJetProtonCorr.h
Remove declaration without definition
[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
579a71d2 210 kHistNsigmaTPCTOFUsedCentralMCe,
211 kHistNsigmaTPCTOFUsedCentralMCmu,
212 kHistNsigmaTPCTOFUsedCentralMCpi,
213 kHistNsigmaTPCTOFUsedCentralMCk,
214 kHistNsigmaTPCTOFUsedCentralMCp,
215 kHistNsigmaTPCTOFUsedCentralMCd,
216
217 kHistNsigmaTPCTOFUsedSemiCentralMCe,
218 kHistNsigmaTPCTOFUsedSemiCentralMCmu,
219 kHistNsigmaTPCTOFUsedSemiCentralMCpi,
220 kHistNsigmaTPCTOFUsedSemiCentralMCk,
221 kHistNsigmaTPCTOFUsedSemiCentralMCp,
222 kHistNsigmaTPCTOFUsedSemiCentralMCd,
223
23536a91 224 kHistEvPlane,
225 kHistEvPlaneUsed,
3082e8ab 226 kHistEvPlaneCheck,
227 kHistEvPlaneCheckUsed,
a4c7ef28 228 kHistEvPlane3,
3082e8ab 229 kHistEvPlaneCorr,
ebdf1dbb 230 kHistEvPlaneCorrNoTrgJets,
231 kHistEvPlaneCorrNoTrgJetsTrgd,
3082e8ab 232 kHistJetPtCentral,
233 kHistJetPtSemi,
23536a91 234 kHistEtaPhiTrgHad,
235 kHistEtaPhiTrgJet,
236 kHistEtaPhiAssHad,
237 kHistEtaPhiAssProt,
ebdf1dbb 238 kHistPhiTrgJetEvPlane,
239 kHistPhiTrgHadEvPlane,
687dfd6b 240 kHistPhiRndTrgJetEvPlane,
241 kHistPhiRndTrgHadEvPlane,
ebdf1dbb 242 kHistPhiAssHadEvPlane,
243 kHistPhiAssHadVsEvPlane,
244 kHistPhiAssProtEvPlane,
a4c7ef28 245 kHistPhiTrgJetEvPlane3,
246 kHistPhiTrgHadEvPlane3,
247 kHistPhiAssHadEvPlane3,
248 kHistPhiAssProtEvPlane3,
23536a91 249 kHistLast
250 };
251
252 // statistics
253 enum Stat_t {
254 kStatSeen = 1,
255 kStatTrg,
ebdf1dbb 256 kStatVtx,
23536a91 257 kStatCent,
258 kStatEvPlane,
259 kStatPID,
3082e8ab 260 kStatUsed,
23536a91 261 kStatEvCuts,
3082e8ab 262 kStatCentral,
263 kStatSemiCentral,
23536a91 264 kStatLast
265 };
266
267 // trigger conditions
3082e8ab 268 enum Trigger_t {
23536a91 269 kTriggerMB = 0,
270 kTriggerInt,
271 kTriggerLast
3082e8ab 272 };
23536a91 273
274 // classification
275 enum CorrType_t {
276 kCorrHadHad = 0,
277 kCorrHadProt,
278 kCorrJetHad,
279 kCorrJetProt,
ebdf1dbb 280
ebdf1dbb 281 kCorrRndHadHad,
282 kCorrRndHadProt,
3fa79056 283 kCorrRndJetHad,
284 kCorrRndJetProt,
ebdf1dbb 285
ebdf1dbb 286 kCorrRndHadExcHad,
287 kCorrRndHadExcProt,
3fa79056 288 kCorrRndJetExcHad,
289 kCorrRndJetExcProt,
ebdf1dbb 290
23536a91 291 kCorrLast
292 };
293
294 enum Class_t {
295 kClCentral = 0,
296 kClSemiCentral,
2751fb9a 297 // kClDijet,
23536a91 298 kClLast
299 };
300
301 enum Trg_t {
302 kTrgHad = 0,
303 kTrgJet,
ebdf1dbb 304 kTrgHadRnd,
305 kTrgJetRnd,
23536a91 306 kTrgLast
307 };
308
309 enum Ass_t {
ebdf1dbb 310 kAssHad = 0,
23536a91 311 kAssProt,
ebdf1dbb 312 kAssHadJetExc,
313 kAssProtJetExc,
314 kAssHadHadExc,
315 kAssProtHadExc,
23536a91 316 kAssLast
317 };
318
319 enum Ev_t {
320 kEvSame = 0,
321 kEvMix,
322 kEvLast
323 };
324
0ba09863 325 class AliPartCorr : public AliVParticle {
326 public:
327 AliPartCorr(Float_t eta = 0., Float_t phi = 0., Float_t pt = 0., Float_t charge = 0) :
328 fPt(pt), fEta(eta), fPhi(phi), fCharge(charge) {}
329 AliPartCorr(const AliVParticle &rhs) :
330 fPt(rhs.Pt()), fEta(rhs.Eta()), fPhi(rhs.Phi()), fCharge(rhs.Charge()) {}
331 virtual ~AliPartCorr() {}
332
333 // kinematics
334 virtual Double_t Px() const { AliFatal("not implemented"); return 0; }
335 virtual Double_t Py() const { AliFatal("not implemented"); return 0; }
336 virtual Double_t Pz() const { AliFatal("not implemented"); return 0; }
337 virtual Double_t Pt() const { return fPt; }
338 virtual Double_t P() const { AliFatal("not implemented"); return 0; }
339 virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("not implemented"); return 0; }
340
341 virtual Double_t Xv() const { AliFatal("not implemented"); return 0; }
342 virtual Double_t Yv() const { AliFatal("not implemented"); return 0; }
343 virtual Double_t Zv() const { AliFatal("not implemented"); return 0; }
344 virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("not implemented"); return 0; }
345
346 virtual Double_t OneOverPt() const { AliFatal("not implemented"); return 0; }
347 virtual Double_t Phi() const { return fPhi; }
348 virtual Double_t Theta() const { AliFatal("not implemented"); return 0; }
349
350 virtual Double_t E() const { AliFatal("not implemented"); return 0; }
351 virtual Double_t M() const { AliFatal("not implemented"); return 0; }
352
353 virtual Double_t Eta() const { return fEta; }
354 virtual Double_t Y() const { AliFatal("not implemented"); return 0; }
355
356 virtual Short_t Charge() const { return fCharge; }
357 virtual Int_t GetLabel() const { AliFatal("not implemented"); return 0; }
358
359 virtual Int_t PdgCode() const { AliFatal("not implemented"); return 0; }
360 virtual const Double_t *PID() const { AliFatal("not implemented"); return 0; }
361
362 protected:
363 Float_t fPt;
364 Float_t fEta;
365 Float_t fPhi;
366 Short_t fCharge;
367
368 ClassDef(AliPartCorr, 1);
369 };
370
23536a91 371 class AliHistCorr : public TNamed {
372 public:
373 AliHistCorr(TString name, TList *outputList = 0x0);
374 ~AliHistCorr();
375
0ba09863 376 void Trigger(Float_t phi, Float_t eta, Float_t weight = 1.) {
377 fHistStat->Fill(1., weight);
378 if (fHistCorrTrgEtaPhi)
379 fHistCorrTrgEtaPhi->Fill(phi, eta, weight);
380 }
381 void Ass(Float_t phi, Float_t eta, Float_t weight = 1.) {
382 if (fHistCorrAssEtaPhi)
383 fHistCorrAssEtaPhi->Fill(phi, eta, weight);
384 }
23536a91 385 void Fill(AliVParticle *trgPart, AliVParticle *assPart, Float_t weight = 1.);
ebdf1dbb 386 void Fill(TLorentzVector *trgPart, AliVParticle *assPart, Float_t weight = 1.);
387 void Fill(TLorentzVector *trgPart, TLorentzVector *assPart, Float_t weight = 1.);
23536a91 388
389 protected:
390 TList *fOutputList;
391
392 TH1F *fHistStat;
393
394 TH1F *fHistCorrPhi;
395 TH2F *fHistCorrPhi2;
396 TH2F *fHistCorrEtaPhi;
ebdf1dbb 397 TH2F *fHistCorrAvgEtaPhi;
398 TH2F *fHistCorrTrgEtaPhi;
399 TH2F *fHistCorrAssEtaPhi;
23536a91 400
09fd5f9f 401 const Float_t fHistDphiLo;
402 const Int_t fHistDphiNbins;
403 const Int_t fHistDetaNbins;
404
23536a91 405 AliHistCorr(const AliHistCorr &rhs);
406 AliHistCorr& operator=(const AliHistCorr &rhs);
407
408 ClassDef(AliHistCorr, 1);
409 };
410
411 AliHistCorr*& GetHistCorr(CorrType_t corr, Class_t cl, Ev_t ev) { return fHistCorr[kEvLast*(kClLast*corr + cl) + ev]; }
2751fb9a 412 AliEventPoolManager*& GetPoolMgr(Ass_t ass) { return fPoolMgr[ass]; }
413 AliEventPool*& GetPool(Ass_t ass) { return fPool[ass]; }
23536a91 414
415protected:
416 AliMCEvent *fMCEvent; //!
417 AliESDEvent *fESDEvent; //!
418 AliAODEvent *fAODEvent; //!
419
ebdf1dbb 420 Int_t fRunNumber; //! current run number
421 AliOADBContainer *fOADBContainerTOF; //! container for OADB entry with TOF parameters
422 AliTOFPIDParams *fParamsTOF; //! TOF parametrization
423
424 AliEventplane *fEventplane; //! pointer to the event plane
425
23536a91 426 UInt_t fTriggerMask; //! internal representation of trigger conditions
427 UInt_t fClassMask; //! internal representation of event classes
428 Float_t fCentrality; //!
429 Float_t fCentralityCheck; //!
430 Float_t fZvtx; //!
431 AliPIDResponse *fPIDResponse; //!
ebdf1dbb 432 Float_t fEventPlaneAngle; //!
433 Float_t fEventPlaneAngleCheck; //!
a4c7ef28 434 Float_t fEventPlaneAngle3; //!
435
436 TObjArray *fPrimTrackArrayAss; //!
437 TObjArray *fPrimTrackArrayTrg; //!
438 TClonesArray *fPrimConstrainedTrackArray; //!
23536a91 439 TClonesArray *fJetArray; //!
440
2751fb9a 441 AliEventPoolManager *fPoolMgr[kAssProt + 1]; //!
442 AliEventPool *fPool[kAssProt + 1]; //!
23536a91 443
444 AliHistCorr **fHistCorr; //! [kCorrLast*kEvLast*kClLast]; //!
445
d57e2346 446 Int_t fErrorMsg; //! remaining number of error messages to be printed
447
23536a91 448 Bool_t DetectTriggers();
449 void MarkTrigger(Trigger_t trg) { fTriggerMask |= (1 << trg); }
450 Bool_t IsTrigger(Trigger_t trg) const { return (fTriggerMask & (1 << trg)); }
451
452 Bool_t DetectClasses();
453 void MarkClass(Class_t cl) { fClassMask |= (1 << cl); }
454 Bool_t IsClass(Class_t cl) const { return (fClassMask & (1 << cl)); }
455
456 Bool_t PrepareEvent();
457 Bool_t CleanUpEvent();
458
459 Float_t GetCentrality() const { return fCentrality; }
ebdf1dbb 460 Float_t GetEventPlaneAngle() const { return fEventPlaneAngle; }
23536a91 461 AliPIDResponse* GetPID() const { return fPIDResponse; }
d57e2346 462 Bool_t IsCentral() const { return ((fCentrality >= 0.) && (fCentrality <= 10.)); }
463 Bool_t IsSemiCentral() const { return ((fCentrality >= 30.) && (fCentrality <= 50.)); }
23536a91 464
d57e2346 465 AliVTrack* GetLeadingTrack(const AliAODJet *jet) const;
3082e8ab 466
467 Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1,
468 Float_t phi2, Float_t pt2, Float_t charge2,
d57e2346 469 Float_t radius, Float_t bSign) const;
3082e8ab 470
d57e2346 471 Bool_t AcceptTrigger(const AliVTrack *trg);
472 Bool_t AcceptTrigger(const AliAODJet *trg);
473 Bool_t AcceptAssoc(const AliVTrack *trk) const;
474 Bool_t IsProton(const AliVTrack *trk) const;
475 Bool_t AcceptAngleToEvPlane(Float_t phi, Float_t psi) const;
476 Bool_t AcceptTwoTracks(const AliVParticle *trgPart, const AliVParticle *assPart) const;
23536a91 477
478 TObjArray* CloneTracks(TObjArray *tracks) const;
479
ebdf1dbb 480 Bool_t GenerateRandom(TCollection *trgJetArray, TCollection *trgHadArray,
481 TCollection *assHadJetArray, TCollection *assProtJetArray,
482 TCollection *assHadHadArray, TCollection *assProtHadArray,
483 Float_t pFraction = .5);
484
23536a91 485 Bool_t Correlate(CorrType_t corr, Class_t cl, Ev_t ev,
486 TCollection *trgArray, TCollection *assArray, Float_t weight = 1.);
487
488 Bool_t Correlate(Trg_t trg, Ass_t ass, Class_t cl, Ev_t ev,
489 TCollection *trgArray, TCollection *assArray, Float_t weight = 1.);
490
491 // output objects
492 TList *fOutputList; //! list of output objects
493
494 // histogram management
495 TH1 *fHist[kHistLast]; //! pointers to histogram
496 const char *fShortTaskId; //! short identifier for the task
497
498 TH1*& GetHistogram(Hist_t hist, const Int_t idx = 0) { return fHist[hist + idx]; }
499
500 TH1* AddHistogram(Hist_t hist, const char *hid, TString title,
501 Int_t xbins, Float_t xmin, Float_t xmax, Int_t binType = 1);
502 TH2* AddHistogram(Hist_t hist, const char *hid, TString title,
503 Int_t xbins, Float_t xmin, Float_t xmax,
504 Int_t ybins, Float_t ymin, Float_t ymax, Int_t binType = 1);
505 TH3* AddHistogram(Hist_t hist, const char *hid, TString title,
506 Int_t xbins, Float_t xmin, Float_t xmax,
507 Int_t ybins, Float_t ymin, Float_t ymax,
508 Int_t zbins, Float_t zmin, Float_t zmax, Int_t binType = 1);
509
510 void FillH1(Hist_t hist, Float_t x, Float_t weight = 1., Int_t idx = 0)
511 { GetHistogram(hist, idx)->Fill(x, weight); }
512 void FillH2(Hist_t hist, Float_t x, Float_t y, Float_t weight = 1., Int_t idx = 0)
513 { ((TH2*) GetHistogram(hist, idx))->Fill(x, y, weight); }
514 void FillH3(Hist_t hist, Float_t x, Float_t y, Float_t z, Float_t weight = 1., Int_t idx = 0)
515 { ((TH3*) GetHistogram(hist, idx))->Fill(x, y, z, weight); }
516
517 const char* fkCorrTypeName[kCorrLast]; //!
518 const char* fkClassName[kClLast]; //!
519 const char* fkEvName[kEvLast]; //!
520
521 // task configuration
522 static const Int_t fgkStringLength = 100; // max length for the jet branch name
523 char fJetBranchName[fgkStringLength]; // jet branch name
524
09fd5f9f 525 const Bool_t fUseStandardCuts;
a4c7ef28 526 Bool_t fUseEvplaneV0;
3082e8ab 527
a4c7ef28 528 AliESDtrackCuts *fCutsPrimTrg; // track cuts for primary particles (trigger)
529 AliESDtrackCuts *fCutsPrimTrgConstrain; // track cuts for primary particles (trigger)
530 AliESDtrackCuts *fCutsPrimAss; // track cuts for primary particles (associate)
3082e8ab 531 Float_t fCutsTwoTrackEff;
23536a91 532
d57e2346 533 UInt_t fAssFilterMask;
687dfd6b 534 Bool_t fRequirePID;
d57e2346 535 Float_t fTrgJetEtaMax;
536 Float_t fHadEtaMax;
23536a91 537 Float_t fTrgPartPtMin;
538 Float_t fTrgPartPtMax;
539 Float_t fTrgJetPtMin;
540 Float_t fTrgJetPtMax;
3082e8ab 541 Float_t fTrgJetLeadTrkPtMin;
d57e2346 542 Float_t fTrgJetLeadTrkPtMax;
543 Float_t fTrgJetAreaMin;
23536a91 544 Float_t fAssPartPtMin;
545 Float_t fAssPartPtMax;
3082e8ab 546 Float_t fTrgAngleToEvPlane;
23536a91 547
687dfd6b 548 Float_t fToyMeanNoPart;
549 Float_t fToyRadius;
550 Float_t fToySmearPhi;
551
ebdf1dbb 552 TF1 *fTrgJetPhiModCent;
553 TF1 *fTrgJetPhiModSemi;
554 TF1 *fTrgHadPhiModCent;
555 TF1 *fTrgHadPhiModSemi;
556
23536a91 557 // not implemented
558 AliAnalysisTaskJetProtonCorr(const AliAnalysisTaskJetProtonCorr &rhs);
559 AliAnalysisTaskJetProtonCorr& operator=(const AliAnalysisTaskJetProtonCorr &rhs);
560
561 ClassDef(AliAnalysisTaskJetProtonCorr, 1);
562};