AliPhysics  b76e98e (b76e98e)
AliAnalysisTaskJetChem.h
Go to the documentation of this file.
1 /*************************************************************************
2  * *
3  * Task for Jet Chemistry Analysis in PWG-JE Jet Task Force Train *
4  * *
5  * *
6  * contact: *
7  * Alice Zimmermann *
8  * zimmermann@physi.uni-heidelberg.de *
9  * *
10  * *
11  * *
12  * *
13  *************************************************************************/
14 
15 
16 #ifndef ALIANALYSISTASKJETCHEM_H
17 #define ALIANALYSISTASKJETCHEM_H
18 
19 /* Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
20  * See cxx source for full Copyright notice */
21 
22 /* $Id$ */
23 
24 class AliAODv0;
25 class AliAODVertex;
26 class AliAnalysisCentralitySelector;
27 class AliPIDResponse;
28 class TString;
29 class TList;
30 class AliAODMCParticle;
31 class AliAODTrack;
32 class TRandom3;
33 
34 #include "AliAnalysisTaskFragmentationFunction.h"
35 #include "AliPID.h"
36 #include "AliAnalysisTaskSE.h"
37 #include "AliAODMCHeader.h"
38 
39 class AliAnalysisTaskJetChem : public AliAnalysisTaskFragmentationFunction {
40 
41  public:
42 
43  //----------------------------------------
45  {
46 
47  public:
48 
49  AliFragFuncHistosInvMass(const char* name = "FFIMhistos",
50  Int_t nJetPt = 0, Float_t jetPtMin = 0, Float_t jetPtMax = 0,
51  Int_t nInvMass = 0, Float_t invMassMin=0, Float_t invMassMax=0,
52  Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
53  Int_t nXi = 0, Float_t xiMin = 0, Float_t xiMax = 0,
54  Int_t nZ = 0, Float_t zMin = 0, Float_t zMax = 0);
57  virtual ~AliFragFuncHistosInvMass();
58 
59  virtual void DefineHistos();
60  virtual void FillFF(Float_t trackPt, Float_t invM, Float_t jetPt,Bool_t incrementJetPt);
61  virtual void AddToOutput(TList* list) const;
62 
63 
64 
65 
66  private:
67 
68  Int_t fNBinsJetPt; // FF histos bins
69  Float_t fJetPtMin; // FF histos limits
70  Float_t fJetPtMax; // FF histos limits
71  Int_t fNBinsInvMass; // FF histos bins
72  Float_t fInvMassMin; // FF histos limits
73  Float_t fInvMassMax; // FF histos limits
74  Int_t fNBinsPt; // FF histos bins
75  Float_t fPtMin; // FF histos limits
76  Float_t fPtMax; // FF histos limits
77  Int_t fNBinsXi; // FF histos bins
78  Float_t fXiMin; // FF histos limits
79  Float_t fXiMax; // FF histos limits
80  Int_t fNBinsZ; // FF histos bins
81  Float_t fZMin; // FF histos limits
82  Float_t fZMax; // FF histos limits
83 
84 
85 
89  TH1F* fh1JetPt;
90 
91  TString fNameFF; // histo names prefix
92 
93  ClassDef(AliFragFuncHistosInvMass, 1);
94  };
95 
96 
97  //----------------------------------------
98 
100  AliAnalysisTaskJetChem(const char *name);
103  virtual ~AliAnalysisTaskJetChem();
104 
105  virtual void UserCreateOutputObjects();
106  virtual void UserExec(Option_t *option);
107 
109  enum { kK0, kLambda, kAntiLambda };// particletype
110 
117 
118 
119  static void SetProperties(TH3F* h,const char* x, const char* y,const char* z);
120 
121  //Bool_t IsAccepteddEdx(Double_t mom, Double_t signal, AliPID::EParticleType n, Double_t cutnSig) const;//not used anymore
122 
124  Int_t GetListOfV0s(TList *list, Int_t type, Int_t particletype, Int_t tracktype, AliAODVertex* primVertex, AliAODEvent* aod);
125  Int_t GetListOfParticles(TList *list, Int_t type, Int_t particletype, AliAODVertex* primVertex);
126  Int_t GetListOfMCParticles(TList *outputlist, Int_t particletype, AliAODEvent* mcaodevent);
127  void GetTracksInCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPt, Double_t minPt, Double_t maxPt, Bool_t& isBadPt);
128  void GetTracksInPerpCone(TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPerpPt);
129  Bool_t MCLabelCheck(AliAODv0* v0, Int_t particletype, const AliAODTrack* trackNeg, const AliAODTrack* trackPos, TList *listmc, Int_t& negDaughterpdg, Int_t& posDaughterpdg, Int_t& motherType, Int_t& v0Label, Double_t& MCPt, Bool_t& fPhysicalPrimary, Int_t& MCv0PDGCode, TString& generatorName, Bool_t& isinjected);
130  Bool_t IsParticleMatching(const AliAODMCParticle* mcp0, Int_t v0Label);
131  Bool_t DaughterTrackCheck(AliAODv0* v0, Int_t& nnum, Int_t& pnum);
132  //Int_t SplitCocktail(AliAODMCParticle *mcv0, Int_t v0Label, AliAODMCHeader *header, TClonesArray *arrayMC);
133  TString GetGenerator(Int_t label, AliAODMCHeader* header);
134  void GetTrackPrimaryGenerator(Int_t lab, AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
135  Bool_t IsTrackInjected(Int_t lab, AliAODMCHeader *header,TClonesArray *arrayMC, TString &nameGen);
136  Double_t SmearJetPt(Double_t jetPt, Double_t& jetPtSmear);
137  Bool_t IsParticleInCone(const AliVParticle* part1, const AliVParticle* part2, Double_t dRMax) const;
138  Bool_t IsRCJCOverlap(TList* recjetlist, const AliVParticle* part, Double_t dDistance) const;
139  AliAODJet* GetRandomCone(TList* jetlist, Double_t dEtaConeMax, Double_t dDistance) const;
140  void FillEmbeddedHistos(const AliAODJet* embeddedJet, const AliAODJet* matchedJet, Int_t nK0s, Int_t nLa, Int_t nALa, TList* Jettracklist);
141 
142 
143  AliAODJet* GetMedianCluster();
144  Double_t AreaCircSegment(Double_t dRadius, Double_t dDistance) const;
145 
146  virtual void SetK0Type(Int_t i){ fK0Type = i; }
147  virtual void SetFilterMaskK0(UInt_t i) {fFilterMaskK0 = i;}
148 
149  Bool_t IsLaInvMass(Double_t mass) const; //La and ALa mass check
150  virtual void SetLaType(Int_t i){ fLaType = i; }
151  virtual void SetFilterMaskLa(UInt_t i) {fFilterMaskLa = i;}
152 
153  virtual void SetALaType(Int_t i){ fALaType = i; }
154  virtual void SetFilterMaskALa(UInt_t i) {fFilterMaskALa = i;}
155 
157  virtual void SetUseNJEvents(Bool_t b) { fUseNJEvents = b;}
158  virtual void UseExtraTracks() { fUseExtraTracks = 1;}
159  virtual void UseExtraonlyTracks() { fUseExtraTracks = -1;}
160  virtual void SetUseExtraJetPt(Bool_t ut) { fUseExtraJetPt = ut;}
161  virtual void SetUseEmbeddedJetPt(Bool_t ut) { fUseEmbeddedJetPt = ut;}
162 
163  virtual void SetUseStandardV0s(Bool_t bo) { fUseStandard = bo;}
164 
165  virtual void SetUsePosV0Eta(Bool_t ps) { fusePosV0Eta = ps;}
166  virtual void SetUseNegV0Eta(Bool_t ng) { fuseNegV0Eta = ng;}
167  virtual void SetUsePosMCV0Eta(Bool_t pmc) { fusePosMCV0Eta = pmc;}
168  virtual void SetUseNegMCV0Eta(Bool_t nmc) { fuseNegMCV0Eta = nmc;}
169 
170  void CalculateInvMass(AliAODv0* v0vtx, Int_t particletype, Double_t& invM, Double_t& trackPt);
171 
172  Bool_t AcceptBetheBloch(AliAODv0 *v0, AliPIDResponse *PIDResponse, Int_t particletype); //don't use this method for MC Analysis
173 
174  Double_t MyRapidity(Double_t rE, Double_t rPz) const;
175 
176  //-- K0s
177 
178  void SetFFInvMassHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //previous 19, 5.,100.
179  Int_t nInvM = 400, Float_t invMMin = 0.3, Float_t invMMax = 0.7, //previous 0.4 to 0.6
180  Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20., //previous 0. to 10.
181  Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
182  Int_t nZ = 11, Float_t zMin = 0., Float_t zMax = 1.1)
183  { fFFIMNBinsJetPt = nJetPt; fFFIMJetPtMin = jetPtMin; fFFIMJetPtMax = jetPtMax;
184  fFFIMNBinsInvM = nInvM; fFFIMInvMMin = invMMin; fFFIMInvMMax = invMMax; fFFIMNBinsPt = nPt; fFFIMPtMin = ptMin; fFFIMPtMax = ptMax;
185  fFFIMNBinsXi = nXi; fFFIMXiMin = xiMin; fFFIMXiMax = xiMax; fFFIMNBinsZ = nZ; fFFIMZMin = zMin; fFFIMZMax = zMax; }
186 
187 
188 
189  // --La and ALa
190 
191  void SetFFInvMassLaHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //La
192  //Int_t nInvM = 140, Float_t invMMin = 1.06, Float_t invMMax = 1.2,//original inv. mass range, now I shifted to Vits slightly larger mass window
193  Int_t nInvM = 200, Float_t invMMin = 1.05, Float_t invMMax = 1.25,
194  Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20.,
195  Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
196  Int_t nZ = 11, Float_t zMin = 0., Float_t zMax = 1.1)
197 
198  { fFFIMLaNBinsJetPt = nJetPt; fFFIMLaJetPtMin = jetPtMin; fFFIMLaJetPtMax = jetPtMax;
200  fFFIMLaNBinsXi = nXi; fFFIMLaXiMin = xiMin; fFFIMLaXiMax = xiMax; fFFIMLaNBinsZ = nZ; fFFIMLaZMin = zMin; fFFIMLaZMax = zMax; }
201 
202 
203  //TRandom3* nRandom; //random number for UE estimation
204 
205  // consts
206 
207 
208  //--
209  TRandom3* fRandom; // TRandom3 for background estimation
211  Bool_t fEPAnalysis; // get event plane information for Embedding as check
243  Float_t fCutFractionPtEmbedded; // cut on ratio of embedded pt found in jet
244  Float_t fCutDeltaREmbedded; // cut dR rec-embedded jet
245  //TString fBranchEmbeddedJets; // branch name for embedded jets
246 
247  // cuts
248  void SetCuttrackPosNcls(Double_t posNcls){fCuttrackPosNcls=posNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosNcls %f",posNcls);}
249  void SetCuttrackNegNcls(Double_t negNcls){fCuttrackNegNcls=negNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegNcls %f",negNcls);}
250  void SetCuttrackPosRap(Double_t posRap){fCutPostrackRap=posRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosRap %f",posRap);}
251  void SetCuttrackNegRap(Double_t negRap){fCutNegtrackRap=negRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegRap %f",negRap);}
252  void SetCutV0Rap(Double_t v0Rap){fCutRap=v0Rap; Printf("AliAnalysisTaskJetChem:: SetCutV0Rap %f",v0Rap);}
253  void SetCuttrackPosEta(Double_t posEta){fCutPostrackEta=posEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosEta %f",posEta);}
254  void SetCuttrackNegEta(Double_t negEta){fCutNegtrackEta=negEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegEta %f",negEta);}
255  void SetCutV0Eta(Double_t v0Eta){fCutEta=v0Eta; Printf("AliAnalysisTaskJetChem:: SetCutV0Eta %f",v0Eta);}
256  void SetCutJetEta(Double_t jetEta){fCutjetEta=jetEta; Printf("AliAnalysisTaskJetChem:: SetCutjetEta %f",jetEta);}
257  void SetCosOfPointingAngleK0(Double_t cospointAngK0){fCutK0cosPointAngle=cospointAngK0; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngleK0 %f",cospointAngK0);}
258  void SetCosOfPointingAngleLa(Double_t cospointAngLa){fCutLacosPointAngle=cospointAngLa; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngleLa %f",cospointAngLa);}
259  void SetAcceptKinkDaughters(Bool_t isKinkDaughtersAccepted){fKinkDaughters=isKinkDaughtersAccepted; Printf("AliAnalysisTaskJetChem:: SetAcceptKinkDaughters %i", isKinkDaughtersAccepted);}
260  void SetRequireTPCRefit(Bool_t isTPCRefit){fRequireTPCRefit=isTPCRefit; Printf("AliAnalysisTaskJetChem:: SetRequireTPCRefit %i", isTPCRefit);}
261  void SetCutArmenteros(Double_t armenteros){fCutArmenteros=armenteros; Printf("AliAnalysisTaskJetChem:: SetCutArmenteros %f", armenteros);}
262  void SetCutV0DecayMin(Double_t decayMin){fCutV0DecayMin=decayMin; Printf("AliAnalysisTaskJetChem:: SetCutDecayMin %f", decayMin);}
263  void SetCutV0DecayMax(Double_t decayMax){fCutV0DecayMax=decayMax; Printf("AliAnalysisTaskJetChem:: SetCutDecayMax %f", decayMax);}
264  void SetCutV0totMom(Double_t v0totMom){fCutV0totMom=v0totMom; Printf("AliAnalysisTaskJetChem:: SetCutV0totMom %f", v0totMom);}
265  void SetCutDcaV0Daughters(Double_t dcav0daughters){fCutDcaV0Daughters=dcav0daughters; Printf("AliAnalysisTaskJetChem:: SetCutDcaV0Daughters %f", dcav0daughters);}
266  void SetCutDcaPosToPrimVertex(Double_t dcaPosToPrimVertex){fCutDcaPosToPrimVertex=dcaPosToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaPosToPrimVertex %f", dcaPosToPrimVertex);}
267  void SetCutDcaNegToPrimVertex(Double_t dcaNegToPrimVertex){fCutDcaNegToPrimVertex=dcaNegToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaNegToPrimVertex %f", dcaNegToPrimVertex);}
268  void SetCutV0RadiusMin(Double_t v0RadiusMin){fCutV0RadiusMin=v0RadiusMin; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMin %f", v0RadiusMin);}
269  void SetCutV0RadiusMax(Double_t v0RadiusMax){fCutV0RadiusMax=v0RadiusMax; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMax %f", v0RadiusMax);}
270  void SetCutBetheBloch(Double_t cutBetheBloch){fCutBetheBloch=cutBetheBloch; Printf("AliAnalysisTaskJetChem:: SetCutBetheBloch %f", cutBetheBloch);}
271  void SetCutRatioTPC(Double_t cutRatioTPC){fCutRatio=cutRatioTPC; Printf("AliAnalysisTaskJetChem:: SetCutRatioTPC %f", cutRatioTPC);}
272  void SetAnalysisMC(Bool_t analysisMC) {fAnalysisMC = analysisMC;}
273  void SetDeltaZVertexCut(Float_t deltaVtxZ){fDeltaVertexZ = deltaVtxZ;}
274  virtual void SetCutFractionPtEmbedded(Float_t cut = 0) { fCutFractionPtEmbedded = cut; }
275  virtual void SetCutDeltaREmbedded(Float_t cut) { fCutDeltaREmbedded = cut; }
276  void SetMatchMode(Int_t mmode){ fMatchMode = mmode;}
277  void SetEPAnalysisMode(Bool_t EPmode){ fEPAnalysis= EPmode;}
278 
279  private:
280 
281  Int_t fK0Type; // K0 cuts
290  TList* jetConeK0EmbStlist;//standard K0s candidates filled in embedding extra branch to subtract for UE V0 contribution
291  TList* jetConeLaEmbStlist;//standard Lambda candidates filled in embedding extra branch to subtract for UE V0 contribution
292  TList* jetConeALaEmbStlist;//standard Antilambda candidates filled in embedding extra branch to subtract for UE V0 contribution
293 
297 
313  TList* fTracksRecBckgCuts; //list of charged tracks for Embedding study, filled with standard tracks from data event, serves for no-jet event selection
314 
320 
321  AliPIDResponse *fPIDResponse; // PID
322 
323  AliFragFuncQATrackHistos* fV0QAK0;
324  AliFragFuncHistos* fFFHistosRecCutsK0Evt;
325  //AliFragFuncHistosInvMass* fFFHistosIMK0AllEvt; //! K0 pt spec for all events
326  //AliFragFuncHistosInvMass* fFFHistosIMK0Jet; //! K0 FF all dPhi
327  //AliFragFuncHistosInvMass* fFFHistosIMK0Cone; //! K0 FF jet cone
328 
329  Int_t fLaType; // La cuts
334 
335  //AliFragFuncHistosInvMass* fFFHistosIMLaAllEvt; //! La pt spec for all events
336  //AliFragFuncHistosInvMass* fFFHistosIMLaJet; //! La FF all dPhi
337  //AliFragFuncHistosInvMass* fFFHistosIMLaCone; //! La FF jet cone
338 
339  Int_t fALaType; // ALa cuts
340 
345 
356 
357  Bool_t IsArmenterosSelected; //Armenteros-Podolanski Cut (is/isn't) applied
358  Bool_t fUseNJEvents; //select in Embedding part only NJ events from background jet branch, default is Embedding into all events (= kFALSE)
359  Int_t fUseExtraTracks; // +/- 1: embedded extra/extra only tracks, default: 0 (is set in initialisation list of task, ignore extra tracks)
360  Bool_t fUseExtraJetPt; // for MC use jet of matching extra jet (= data + MC tracks)
361  Bool_t fUseEmbeddedJetPt; // for extra branch: use unsmeared jet pt
362 
363  Bool_t fUseStandard; //use standard tracks V0s for UE V0 subtraction
364 
365  //AliFragFuncHistosInvMass* fFFHistosIMALaAllEvt; //! ALa pt spec for all events
366  //AliFragFuncHistosInvMass* fFFHistosIMALaJet; //! ALa FF all dPhi
367  // AliFragFuncHistosInvMass* fFFHistosIMALaCone; //! ALa FF jet cone
368 
369  // histogram bins
370 
371 
372 
373  //--K0s
374 
375  Int_t fFFIMNBinsJetPt; // FF histos bins
376  Float_t fFFIMJetPtMin; // FF histos limits
377  Float_t fFFIMJetPtMax; // FF histos limits
378 
379  Int_t fFFIMNBinsInvM; // FF histos bins
380  Float_t fFFIMInvMMin; // FF histos bins
381  Float_t fFFIMInvMMax; // FF histos bins
382 
383  Int_t fFFIMNBinsPt; // FF histos bins
384  Float_t fFFIMPtMin; // FF histos limits
385  Float_t fFFIMPtMax; // FF histos limits
386 
387  Int_t fFFIMNBinsXi; // FF histos bins
388  Float_t fFFIMXiMin; // FF histos limits
389  Float_t fFFIMXiMax; // FF histos limits
390 
391  Int_t fFFIMNBinsZ; // FF histos bins
392  Float_t fFFIMZMin; // FF histos limits
393  Float_t fFFIMZMax; // FF histos limits
394 
395  //--La
396 
397  Int_t fFFIMLaNBinsJetPt; // FF histos bins
398  Float_t fFFIMLaJetPtMin; // FF histos limits
399  Float_t fFFIMLaJetPtMax; // FF histos limits
400 
401  Int_t fFFIMLaNBinsInvM; // FF histos bins
402  Float_t fFFIMLaInvMMin; // FF histos bins
403  Float_t fFFIMLaInvMMax; // FF histos bins
404 
405  Int_t fFFIMLaNBinsPt; // FF histos bins
406  Float_t fFFIMLaPtMin; // FF histos limits
407  Float_t fFFIMLaPtMax; // FF histos limits
408 
409  Int_t fFFIMLaNBinsXi; // FF histos bins
410  Float_t fFFIMLaXiMin; // FF histos limits
411  Float_t fFFIMLaXiMax; // FF histos limits
412 
413  Int_t fFFIMLaNBinsZ; // FF histos bins
414  Float_t fFFIMLaZMin; // FF histos limits
415  Float_t fFFIMLaZMax; // FF histos limits
416 
417  // Histograms
418 
420  TH1F* fh1Evt;
421  TH1F* fh1EP2;
422  TH1F* fh1EP3;
423  TH1F* fh1K0Mult;
424  TH1F* fh1dPhiJetK0;
425  TH1F* fh1LaMult;
426  TH1F* fh1dPhiJetLa;
427  TH1F* fh1ALaMult;
429  TH1F* fh1JetEta;
430  TH1F* fh1JetPhi;
432 
433  //embedding
435  TH1F* fh1nGenJets;
439 
440  TH1F* fh1PtEmbBeforeMatch; // pt spectrum of embedded jets from extra particles before JetMatching
441  TH1F* fh1PtEmbExtraOnly; // pt spectrum of embedded jets from extraonly particles (embedded truth)
442  TH1F* fh1PtEmbReject; // pt spectrum of embedded jets that are rejected by jet matching cuts
443  TH2F* fh2PtEtaEmbReject; // pt spectrum of embedded jets that are rejected by jet matching cuts
444  TH1F* fh1PtEmbAfterMatch; // pt spectrum of embedded jets from extra particles after JetMatching
451 
453  TH1F* fh1PerpCone;
455  TH1F* fh1IMK0Cone; //jet pt distribution for normalisation by number of jets
456  TH1F* fh1IMLaCone;
458  TH1F* fh1IMK0EmbCone; //jet pt distribution for normalisation by number of jets
461  TH2F* fh2FFJetTrackEta; //charged jet track eta distribution
462  // TH1F* fh1trackPosNCls;
463  // TH1F* fh1trackNegNCls;
466  // TH1F* fh1V0Rap;
469  TH1F* fh1V0Eta;
470  // TH1F* fh1V0totMom;
475  TH1F* fh1V0Radius;
485  TH1F* fh1PtMCK0s;
486  TH1F* fh1PtMCLa;
487  TH1F* fh1PtMCALa;
488  TH1F* fh1EtaK0s;
489  TH1F* fh1EtaLa;
490  TH1F* fh1EtaALa;
491  TH1F* fh1RC;
492  TH1F* fh1RCBiasK0;
493  TH1F* fh1RCBiasLa;
495  TH1F* fh1MCC;
496  TH1F* fh1OC;
497  TH1F* fh1NJ;
498  TH1F* fh1NJEmbEvt;
499  TH1F* fh1BckgJets;
506  THnSparse* fhnNJK0;
507  THnSparse* fhnNJLa;
508  THnSparse* fhnNJALa;
509  //TH2F* fh2ChTracksNJ;
510  //TH2F* fh2ChTracksRC;
511  // TH2F* fh2ChTracksOC;
512  //TH2F* fh2ChTracksMCC;
513  //TH2F* fh2ChTracksPC;
514  THnSparse* fhnMCgenK0Cone;
515  THnSparse* fhnMCgenLaCone;
516  // TH2F* fh2MCgenALaCone;
517  //TH2F* fh2MCEtagenK0Cone;
518  //TH2F* fh2MCEtagenLaCone;
519  // TH2F* fh2MCEtagenALaCone;
520  /* TH2F* fh2CorrHijingLaProton;
521  TH2F* fh2CorrInjectLaProton;
522  TH2F* fh2CorrHijingALaAProton;
523  TH2F* fh2CorrInjectALaAProton;*/
524  TH1F* fh1IMK0ConeSmear; //histos for normalisation by number of smeared jets
530  /* TH2F* fh2MCEtaVsPtHijingLa;
531  TH2F* fh2MCEtaVsPtInjectLa;
532  TH2F* fh2MCEtaVsPtHijingALa;
533  TH2F* fh2MCEtaVsPtInjectALa;
534  THnSparse* fhnrecMCHijingLaIncl;
535  THnSparse* fhnrecMCHijingLaCone;
536  THnSparse* fhnrecMCHijingALaIncl;
537  THnSparse* fhnrecMCHijingALaCone;
538  THnSparse* fhnrecMCInjectLaIncl;
539  THnSparse* fhnrecMCInjectLaCone;
540  THnSparse* fhnrecMCInjectALaIncl;
541  THnSparse* fhnrecMCInjectALaCone;*/
542  THnSparse* fhnMCrecK0Cone;
543  THnSparse* fhnMCrecLaCone;
544  THnSparse* fhnMCrecALaCone;
545  /*THnSparse* fhnMCrecK0ConeSmear;
546  THnSparse* fhnMCrecLaConeSmear;
547  THnSparse* fhnMCrecALaConeSmear;
548  THnSparse* fhnK0sSecContinCone;
549  THnSparse* fhnLaSecContinCone;
550  THnSparse* fhnALaSecContinCone;*/
551  THnSparse* fhnK0sIncl;
552  THnSparse* fhnK0sCone;
553  THnSparse* fhnK0sEmbCone;
554  THnSparse* fhnK0sEmbConeRef;
556  THnSparse* fhnLaIncl;
557  THnSparse* fhnLaCone;
558  THnSparse* fhnLaEmbCone;
559  THnSparse* fhnLaEmbConeRef;
561  THnSparse* fhnALaIncl;
562  THnSparse* fhnALaCone;
563  THnSparse* fhnALaEmbCone;
564  THnSparse* fhnALaEmbConeRef;
569  THnSparse* fhnK0sPC;
570  THnSparse* fhnK0sEmbPC;
571  THnSparse* fhnLaPC;
572  THnSparse* fhnLaEmbPC;
573  THnSparse* fhnALaPC;
574  THnSparse* fhnALaEmbPC;
575  THnSparse* fhnK0sMCC;
576  THnSparse* fhnLaMCC;
577  THnSparse* fhnALaMCC;
578  THnSparse* fhnK0sRC;
579  THnSparse* fhnLaRC;
580  THnSparse* fhnALaRC;
581  THnSparse* fhnK0sRCBias;
582  THnSparse* fhnLaRCBias;
583  THnSparse* fhnALaRCBias;
584  THnSparse* fhnK0sOC;
585  THnSparse* fhnLaOC;
586  THnSparse* fhnALaOC;
589  TH1F* fh1JetPtMedian; //for normalisation by total number of median cluster jets TH3F* fh3IMALaMedianCone;
592  THnSparse* fhnFeedDownLa;
593  THnSparse* fhnFeedDownALa;
594  THnSparse* fhnFeedDownLaCone;
595  THnSparse* fhnFeedDownALaCone;
596  TH2F* fh2FeedDownXiLa; //Xi - La correlation plot for inclusive Feeddown fractions calculation, considered are Xi- and X0 FD
597  TH2F* fh2FeedDownXiALa; //AXi - ALa correlation plot for inclusive Feeddown fractions calculation, considered are Xibar+ and X0bar FD
601  TH1F* fh1MCPtV0s;
602  TH1F* fh1MCPtK0s;
605  TH1F* fh1MCXiPt;
610  // TH1F* fh1MCRapK0s;
611  //TH1F* fh1MCRapLambda;
612  //TH1F* fh1MCRapAntiLambda;
614  TH1F* fh1MCEtaK0s;
617 
618 
619  ClassDef(AliAnalysisTaskJetChem, 3);
620 };
621 
622 #endif
623 
624 
void SetFFInvMassHistoBins(Int_t nJetPt=19, Float_t jetPtMin=5., Float_t jetPtMax=100., Int_t nInvM=400, Float_t invMMin=0.3, Float_t invMMax=0.7, Int_t nPt=200, Float_t ptMin=0., Float_t ptMax=20., Int_t nXi=35, Float_t xiMin=0., Float_t xiMax=7., Int_t nZ=11, Float_t zMin=0., Float_t zMax=1.1)
void SetCosOfPointingAngleK0(Double_t cospointAngK0)
TString GetGenerator(Int_t label, AliAODMCHeader *header)
Bool_t AcceptBetheBloch(AliAODv0 *v0, AliPIDResponse *PIDResponse, Int_t particletype)
virtual void SetFilterMaskLa(UInt_t i)
double Double_t
Definition: External.C:58
Definition: External.C:260
TList * jetConeFDALalist
feeddown from Xi (-,0) in jet cone
Definition: External.C:236
Bool_t IsK0InvMass(Double_t mass) const
void SetFFInvMassLaHistoBins(Int_t nJetPt=19, Float_t jetPtMin=5., Float_t jetPtMax=100., Int_t nInvM=200, Float_t invMMin=1.05, Float_t invMMax=1.25, Int_t nPt=200, Float_t ptMin=0., Float_t ptMax=20., Int_t nXi=35, Float_t xiMin=0., Float_t xiMax=7., Int_t nZ=11, Float_t zMin=0., Float_t zMax=1.1)
TList * fListMCgenLaCone
MC generated K0s in cone around jet axis, particles are from fragmentation but also from underlying e...
virtual void SetCutFractionPtEmbedded(Float_t cut=0)
AliAODJet * GetRandomCone(TList *jetlist, Double_t dEtaConeMax, Double_t dDistance) const
TH1F * fh1PtEmbBeforeMatch
delta phi between jet and 2nd order harmonic event plane of data event
void SetCuttrackNegNcls(Double_t negNcls)
Double_t mass
void SetCuttrackPosRap(Double_t posRap)
virtual void SetFilterMaskALa(UInt_t i)
AliFragFuncHistosInvMass(const char *name="FFIMhistos", Int_t nJetPt=0, Float_t jetPtMin=0, Float_t jetPtMax=0, Int_t nInvMass=0, Float_t invMassMin=0, Float_t invMassMax=0, Int_t nPt=0, Float_t ptMin=0, Float_t ptMax=0, Int_t nXi=0, Float_t xiMin=0, Float_t xiMax=0, Int_t nZ=0, Float_t zMin=0, Float_t zMax=0)
AliFragFuncHistos * fFFHistosRecCutsK0Evt
track QA: V0s in K0 inv mass range
TList * fListMCgenK0s
feeddown from Xibar (+,0) in jet cone
Bool_t IsParticleInCone(const AliVParticle *part1, const AliVParticle *part2, Double_t dRMax) const
virtual void SetUseNegV0Eta(Bool_t ng)
virtual void SetALaType(Int_t i)
Double_t ptMin
void SetAnalysisMC(Bool_t analysisMC)
Int_t GetListOfV0s(TList *list, Int_t type, Int_t particletype, Int_t tracktype, AliAODVertex *primVertex, AliAODEvent *aod)
TList * fListLa
La legs cuts.
void SetCuttrackPosEta(Double_t posEta)
void SetCutV0RadiusMax(Double_t v0RadiusMax)
AliFragFuncHistosInvMass & operator=(const AliFragFuncHistosInvMass &o)
void GetTracksInCone(TList *inputlist, TList *outputlist, const AliAODJet *jet, Double_t radius, Double_t &sumPt, Double_t minPt, Double_t maxPt, Bool_t &isBadPt)
void SetCuttrackNegRap(Double_t negRap)
Int_t GetListOfParticles(TList *list, Int_t type, Int_t particletype, AliAODVertex *primVertex)
Bool_t IsParticleMatching(const AliAODMCParticle *mcp0, Int_t v0Label)
Int_t fALaType
La standard list for embedding UE V0 subtraction.
void FillEmbeddedHistos(const AliAODJet *embeddedJet, const AliAODJet *matchedJet, Int_t nK0s, Int_t nLa, Int_t nALa, TList *Jettracklist)
int Int_t
Definition: External.C:63
TList * fListFeeddownLaCand
ALa list.
TList * fListALaStandard
MC gen PYTHIA ALa list.
unsigned int UInt_t
Definition: External.C:33
virtual void SetLaType(Int_t i)
void SetCutDcaV0Daughters(Double_t dcav0daughters)
TList * fListLaStandard
MC gen PYTHIA La list.
float Float_t
Definition: External.C:68
void SetEPAnalysisMode(Bool_t EPmode)
TList * fListK0sStandard
MC gen PYTHIA K0s list.
TList * fListMCgenALa
MC generated La.
TH1F * fh1IndexEmbeddedMC
index embedded jet matching to leading rec jet
void GetTracksInPerpCone(TList *inputlist, TList *outputlist, const AliAODJet *jet, Double_t radius, Double_t &sumPerpPt)
void SetCutV0DecayMax(Double_t decayMax)
void CalculateInvMass(AliAODv0 *v0vtx, Int_t particletype, Double_t &invM, Double_t &trackPt)
void SetCuttrackNegEta(Double_t negEta)
TH1F * fh1EmbeddedJetPhiDelta
index embedded jet matching to leading rec and gen jet
virtual void SetUseExtraJetPt(Bool_t ut)
void SetCutDcaPosToPrimVertex(Double_t dcaPosToPrimVertex)
Double_t AreaCircSegment(Double_t dRadius, Double_t dDistance) const
virtual void SetUseStandardV0s(Bool_t bo)
static void SetProperties(TH3F *h, const char *x, const char *y, const char *z)
void SetCutArmenteros(Double_t armenteros)
virtual void SetUseNJEvents(Bool_t b)
virtual void SetUseNegMCV0Eta(Bool_t nmc)
TList * fListK0s
K0 legs cuts.
Double_t MyRapidity(Double_t rE, Double_t rPz) const
void SetDeltaZVertexCut(Float_t deltaVtxZ)
AliFragFuncQATrackHistos * fV0QAK0
void SetCutJetEta(Double_t jetEta)
Bool_t MCLabelCheck(AliAODv0 *v0, Int_t particletype, const AliAODTrack *trackNeg, const AliAODTrack *trackPos, TList *listmc, Int_t &negDaughterpdg, Int_t &posDaughterpdg, Int_t &motherType, Int_t &v0Label, Double_t &MCPt, Bool_t &fPhysicalPrimary, Int_t &MCv0PDGCode, TString &generatorName, Bool_t &isinjected)
void SetRequireTPCRefit(Bool_t isTPCRefit)
void SetCutV0RadiusMin(Double_t v0RadiusMin)
Int_t GetListOfMCParticles(TList *outputlist, Int_t particletype, AliAODEvent *mcaodevent)
TList * fListMCgenLa
MC generated K0s.
void SetCutV0Rap(Double_t v0Rap)
virtual void SetCutDeltaREmbedded(Float_t cut)
Bool_t IsLaInvMass(Double_t mass) const
TList * fListALa
ALa legs cuts.
virtual void FillFF(Float_t trackPt, Float_t invM, Float_t jetPt, Bool_t incrementJetPt)
virtual void SetUsePosV0Eta(Bool_t ps)
TList * fListMCgenALaCone
MC generated Lambdas in cone around jet axis, particles are from fragmentation but also from underlyi...
virtual void SetK0Type(Int_t i)
void SetCutRatioTPC(Double_t cutRatioTPC)
void SetCutBetheBloch(Double_t cutBetheBloch)
Bool_t IsRCJCOverlap(TList *recjetlist, const AliVParticle *part, Double_t dDistance) const
void SetCuttrackPosNcls(Double_t posNcls)
virtual void UserExec(Option_t *option)
TH2F * fh2FractionPtVsEmbeddedJetPtMC
delta R rec - embedded jet particle level
void SetCutV0Eta(Double_t v0Eta)
AliPIDResponse * fPIDResponse
K0 list for standard V0s in extra embedded branch.
TH1F * fh1FractionPtEmbeddedMC
delta R rec - embedded jet detector level
Bool_t DaughterTrackCheck(AliAODv0 *v0, Int_t &nnum, Int_t &pnum)
void SetAcceptKinkDaughters(Bool_t isKinkDaughtersAccepted)
TList * fListMCgenK0sCone
MC generated ALa.
virtual void SetSelectArmenteros(Bool_t b)
Bool_t IsTrackInjected(Int_t lab, AliAODMCHeader *header, TClonesArray *arrayMC, TString &nameGen)
const char Option_t
Definition: External.C:48
virtual void SetUseEmbeddedJetPt(Bool_t ut)
Double_t SmearJetPt(Double_t jetPt, Double_t &jetPtSmear)
bool Bool_t
Definition: External.C:53
Bool_t IsArmenterosSelected
MC generated Antilambdas in cone around jet axis, particles are from fragmentation but also from unde...
virtual void SetUsePosMCV0Eta(Bool_t pmc)
Double_t ptMax
Int_t fLaType
inclusive FF for K0 evt
void GetTrackPrimaryGenerator(Int_t lab, AliAODMCHeader *header, TClonesArray *arrayMC, TString &nameGen)
void SetCosOfPointingAngleLa(Double_t cospointAngLa)
void SetCutV0totMom(Double_t v0totMom)
void SetCutV0DecayMin(Double_t decayMin)
TH3F * fh3Xi
FF: track transverse momentum.
TList * fListFeeddownALaCand
feeddown from Xi (-,0)
virtual void SetFilterMaskK0(UInt_t i)
TList * jetConeFDLalist
feeddown from Xibar (+,0)
void SetCutDcaNegToPrimVertex(Double_t dcaNegToPrimVertex)
TH1F * fh1DeltaREmbedded
ratio embedded pt in rec jet to embedded jet pt