AliPhysics  e59a9ba (e59a9ba)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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  //----------------------------------------
44  class AliFragFuncHistosInvMass : public TObject
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 
86  TH3F* fh3TrackPt;
87  TH3F* fh3Xi;
88  TH3F* fh3Z;
89  TH1F* fh1JetPt;
90 
91  TString fNameFF; // histo names prefix
92 
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 
123  Bool_t IsK0InvMass(Double_t mass) const;
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 
156  virtual void SetSelectArmenteros(Bool_t b) {IsArmenterosSelected = b;}
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 
166  void CalculateInvMass(AliAODv0* v0vtx, Int_t particletype, Double_t& invM, Double_t& trackPt);
167 
168  Bool_t AcceptBetheBloch(AliAODv0 *v0, AliPIDResponse *PIDResponse, Int_t particletype); //don't use this method for MC Analysis
169 
170  Double_t MyRapidity(Double_t rE, Double_t rPz) const;
171 
172  //-- K0s
173 
174  void SetFFInvMassHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //previous 19, 5.,100.
175  Int_t nInvM = 400, Float_t invMMin = 0.3, Float_t invMMax = 0.7, //previous 0.4 to 0.6
176  Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20., //previous 0. to 10.
177  Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
178  Int_t nZ = 11, Float_t zMin = 0., Float_t zMax = 1.1)
179  { fFFIMNBinsJetPt = nJetPt; fFFIMJetPtMin = jetPtMin; fFFIMJetPtMax = jetPtMax;
180  fFFIMNBinsInvM = nInvM; fFFIMInvMMin = invMMin; fFFIMInvMMax = invMMax; fFFIMNBinsPt = nPt; fFFIMPtMin = ptMin; fFFIMPtMax = ptMax;
181  fFFIMNBinsXi = nXi; fFFIMXiMin = xiMin; fFFIMXiMax = xiMax; fFFIMNBinsZ = nZ; fFFIMZMin = zMin; fFFIMZMax = zMax; }
182 
183 
184 
185  // --La and ALa
186 
187  void SetFFInvMassLaHistoBins(Int_t nJetPt = 19, Float_t jetPtMin = 5., Float_t jetPtMax = 100., //La
188  //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
189  Int_t nInvM = 200, Float_t invMMin = 1.05, Float_t invMMax = 1.25,
190  Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 20.,
191  Int_t nXi = 35, Float_t xiMin = 0., Float_t xiMax = 7.,
192  Int_t nZ = 11, Float_t zMin = 0., Float_t zMax = 1.1)
193 
194  { fFFIMLaNBinsJetPt = nJetPt; fFFIMLaJetPtMin = jetPtMin; fFFIMLaJetPtMax = jetPtMax;
196  fFFIMLaNBinsXi = nXi; fFFIMLaXiMin = xiMin; fFFIMLaXiMax = xiMax; fFFIMLaNBinsZ = nZ; fFFIMLaZMin = zMin; fFFIMLaZMax = zMax; }
197 
198 
199  //TRandom3* nRandom; //random number for UE estimation
200 
201  // consts
202 
203 
204  //--
205  TRandom3* fRandom; // TRandom3 for background estimation
206  Int_t fMatchMode;
208  Bool_t fAnalysisMC;
209  Double_t fDeltaVertexZ;
210  Double_t fCutjetEta;
212  Double_t fCuttrackPosNcls;
213  Double_t fCutPostrackRap;
214  Double_t fCutNegtrackRap;
215  Double_t fCutRap;
216  Double_t fCutPostrackEta;
217  Double_t fCutNegtrackEta;
218  Double_t fCutEta;
223  Double_t fCutArmenteros;
224  Double_t fCutV0DecayMin;
225  Double_t fCutV0DecayMax;
226  Double_t fCutV0totMom;
230  Double_t fCutV0RadiusMin;
231  Double_t fCutV0RadiusMax;
232  Double_t fCutBetheBloch;
233  Double_t fCutRatio;
234  Float_t fCutFractionPtEmbedded; // cut on ratio of embedded pt found in jet
235  Float_t fCutDeltaREmbedded; // cut dR rec-embedded jet
236  //TString fBranchEmbeddedJets; // branch name for embedded jets
237 
238  // cuts
239  void SetCuttrackPosNcls(Double_t posNcls){fCuttrackPosNcls=posNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosNcls %f",posNcls);}
240  void SetCuttrackNegNcls(Double_t negNcls){fCuttrackNegNcls=negNcls; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegNcls %f",negNcls);}
241  void SetCuttrackPosRap(Double_t posRap){fCutPostrackRap=posRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosRap %f",posRap);}
242  void SetCuttrackNegRap(Double_t negRap){fCutNegtrackRap=negRap; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegRap %f",negRap);}
243  void SetCutV0Rap(Double_t v0Rap){fCutRap=v0Rap; Printf("AliAnalysisTaskJetChem:: SetCutV0Rap %f",v0Rap);}
244  void SetCuttrackPosEta(Double_t posEta){fCutPostrackEta=posEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackPosEta %f",posEta);}
245  void SetCuttrackNegEta(Double_t negEta){fCutNegtrackEta=negEta; Printf("AliAnalysisTaskJetChem:: SetCuttrackNegEta %f",negEta);}
246  void SetCutV0Eta(Double_t v0Eta){fCutEta=v0Eta; Printf("AliAnalysisTaskJetChem:: SetCutV0Eta %f",v0Eta);}
247  void SetCutJetEta(Double_t jetEta){fCutjetEta=jetEta; Printf("AliAnalysisTaskJetChem:: SetCutjetEta %f",jetEta);}
248  void SetCosOfPointingAngleK0(Double_t cospointAngK0){fCutK0cosPointAngle=cospointAngK0; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngleK0 %f",cospointAngK0);}
249  void SetCosOfPointingAngleLa(Double_t cospointAngLa){fCutLacosPointAngle=cospointAngLa; Printf("AliAnalysisTaskJetChem:: SetCosOfPointingAngleLa %f",cospointAngLa);}
250  void SetAcceptKinkDaughters(Bool_t isKinkDaughtersAccepted){fKinkDaughters=isKinkDaughtersAccepted; Printf("AliAnalysisTaskJetChem:: SetAcceptKinkDaughters %i", isKinkDaughtersAccepted);}
251  void SetRequireTPCRefit(Bool_t isTPCRefit){fRequireTPCRefit=isTPCRefit; Printf("AliAnalysisTaskJetChem:: SetRequireTPCRefit %i", isTPCRefit);}
252  void SetCutArmenteros(Double_t armenteros){fCutArmenteros=armenteros; Printf("AliAnalysisTaskJetChem:: SetCutArmenteros %f", armenteros);}
253  void SetCutV0DecayMin(Double_t decayMin){fCutV0DecayMin=decayMin; Printf("AliAnalysisTaskJetChem:: SetCutDecayMin %f", decayMin);}
254  void SetCutV0DecayMax(Double_t decayMax){fCutV0DecayMax=decayMax; Printf("AliAnalysisTaskJetChem:: SetCutDecayMax %f", decayMax);}
255  void SetCutV0totMom(Double_t v0totMom){fCutV0totMom=v0totMom; Printf("AliAnalysisTaskJetChem:: SetCutV0totMom %f", v0totMom);}
256  void SetCutDcaV0Daughters(Double_t dcav0daughters){fCutDcaV0Daughters=dcav0daughters; Printf("AliAnalysisTaskJetChem:: SetCutDcaV0Daughters %f", dcav0daughters);}
257  void SetCutDcaPosToPrimVertex(Double_t dcaPosToPrimVertex){fCutDcaPosToPrimVertex=dcaPosToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaPosToPrimVertex %f", dcaPosToPrimVertex);}
258  void SetCutDcaNegToPrimVertex(Double_t dcaNegToPrimVertex){fCutDcaNegToPrimVertex=dcaNegToPrimVertex; Printf("AliAnalysisTaskJetChem:: SetCutDcaNegToPrimVertex %f", dcaNegToPrimVertex);}
259  void SetCutV0RadiusMin(Double_t v0RadiusMin){fCutV0RadiusMin=v0RadiusMin; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMin %f", v0RadiusMin);}
260  void SetCutV0RadiusMax(Double_t v0RadiusMax){fCutV0RadiusMax=v0RadiusMax; Printf("AliAnalysisTaskJetChem:: SetCutV0RadiusMax %f", v0RadiusMax);}
261  void SetCutBetheBloch(Double_t cutBetheBloch){fCutBetheBloch=cutBetheBloch; Printf("AliAnalysisTaskJetChem:: SetCutBetheBloch %f", cutBetheBloch);}
262  void SetCutRatioTPC(Double_t cutRatioTPC){fCutRatio=cutRatioTPC; Printf("AliAnalysisTaskJetChem:: SetCutRatioTPC %f", cutRatioTPC);}
263  void SetAnalysisMC(Bool_t analysisMC) {fAnalysisMC = analysisMC;}
264  void SetDeltaZVertexCut(Float_t deltaVtxZ){fDeltaVertexZ = deltaVtxZ;}
265  virtual void SetCutFractionPtEmbedded(Float_t cut = 0) { fCutFractionPtEmbedded = cut; }
266  virtual void SetCutDeltaREmbedded(Float_t cut) { fCutDeltaREmbedded = cut; }
267  void SetMatchMode(Int_t mmode){ fMatchMode = mmode;}
268 
269  private:
270 
271  Int_t fK0Type; // K0 cuts
272  UInt_t fFilterMaskK0;
273  TList* jettracklist;
280  TList* jetConeK0EmbStlist;//standard K0s candidates filled in embedding extra branch to subtract for UE V0 contribution
281  TList* jetConeLaEmbStlist;//standard Lambda candidates filled in embedding extra branch to subtract for UE V0 contribution
282  TList* jetConeALaEmbStlist;//standard Antilambda candidates filled in embedding extra branch to subtract for UE V0 contribution
283 
287 
299  TList* fListK0sRC;
300  TList* fListLaRC;
301  TList* fListALaRC;
303  TList* fTracksRecBckgCuts; //list of charged tracks for Embedding study, filled with standard tracks from data event, serves for no-jet event selection
304 
307  TList* fListK0s;
308  TList* fListK0sMC;
310 
311  AliPIDResponse *fPIDResponse; // PID
312 
313  AliFragFuncQATrackHistos* fV0QAK0;
314  AliFragFuncHistos* fFFHistosRecCutsK0Evt;
315  //AliFragFuncHistosInvMass* fFFHistosIMK0AllEvt; //! K0 pt spec for all events
316  //AliFragFuncHistosInvMass* fFFHistosIMK0Jet; //! K0 FF all dPhi
317  //AliFragFuncHistosInvMass* fFFHistosIMK0Cone; //! K0 FF jet cone
318 
319  Int_t fLaType; // La cuts
320  UInt_t fFilterMaskLa;
321  TList* fListLa;
322  TList* fListLaMC;
324 
325  //AliFragFuncHistosInvMass* fFFHistosIMLaAllEvt; //! La pt spec for all events
326  //AliFragFuncHistosInvMass* fFFHistosIMLaJet; //! La FF all dPhi
327  //AliFragFuncHistosInvMass* fFFHistosIMLaCone; //! La FF jet cone
328 
329  Int_t fALaType; // ALa cuts
330 
331  UInt_t fFilterMaskALa;
332  TList* fListALa;
333  TList* fListALaMC;
335 
340  TList* fListMCgenK0s;
341  TList* fListMCgenLa;
342  TList* fListMCgenALa;
346 
347  Bool_t IsArmenterosSelected; //Armenteros-Podolanski Cut (is/isn't) applied
348  Bool_t fUseNJEvents; //select in Embedding part only NJ events from background jet branch, default is Embedding into all events (= kFALSE)
349  Int_t fUseExtraTracks; // +/- 1: embedded extra/extra only tracks, default: 0 (is set in initialisation list of task, ignore extra tracks)
350  Bool_t fUseExtraJetPt; // for MC use jet of matching extra jet (= data + MC tracks)
351  Bool_t fUseEmbeddedJetPt; // for extra branch: use unsmeared jet pt
352 
353  Bool_t fUseStandard; //use standard tracks V0s for UE V0 subtraction
354 
355  //AliFragFuncHistosInvMass* fFFHistosIMALaAllEvt; //! ALa pt spec for all events
356  //AliFragFuncHistosInvMass* fFFHistosIMALaJet; //! ALa FF all dPhi
357  // AliFragFuncHistosInvMass* fFFHistosIMALaCone; //! ALa FF jet cone
358 
359  // histogram bins
360 
361 
362 
363  //--K0s
364 
365  Int_t fFFIMNBinsJetPt; // FF histos bins
366  Float_t fFFIMJetPtMin; // FF histos limits
367  Float_t fFFIMJetPtMax; // FF histos limits
368 
369  Int_t fFFIMNBinsInvM; // FF histos bins
370  Float_t fFFIMInvMMin; // FF histos bins
371  Float_t fFFIMInvMMax; // FF histos bins
372 
373  Int_t fFFIMNBinsPt; // FF histos bins
374  Float_t fFFIMPtMin; // FF histos limits
375  Float_t fFFIMPtMax; // FF histos limits
376 
377  Int_t fFFIMNBinsXi; // FF histos bins
378  Float_t fFFIMXiMin; // FF histos limits
379  Float_t fFFIMXiMax; // FF histos limits
380 
381  Int_t fFFIMNBinsZ; // FF histos bins
382  Float_t fFFIMZMin; // FF histos limits
383  Float_t fFFIMZMax; // FF histos limits
384 
385  //--La
386 
387  Int_t fFFIMLaNBinsJetPt; // FF histos bins
388  Float_t fFFIMLaJetPtMin; // FF histos limits
389  Float_t fFFIMLaJetPtMax; // FF histos limits
390 
391  Int_t fFFIMLaNBinsInvM; // FF histos bins
392  Float_t fFFIMLaInvMMin; // FF histos bins
393  Float_t fFFIMLaInvMMax; // FF histos bins
394 
395  Int_t fFFIMLaNBinsPt; // FF histos bins
396  Float_t fFFIMLaPtMin; // FF histos limits
397  Float_t fFFIMLaPtMax; // FF histos limits
398 
399  Int_t fFFIMLaNBinsXi; // FF histos bins
400  Float_t fFFIMLaXiMin; // FF histos limits
401  Float_t fFFIMLaXiMax; // FF histos limits
402 
403  Int_t fFFIMLaNBinsZ; // FF histos bins
404  Float_t fFFIMLaZMin; // FF histos limits
405  Float_t fFFIMLaZMax; // FF histos limits
406 
407 
408 
409  // Histograms
410 
412  TH1F* fh1Evt;
413  TH1F* fh1K0Mult;
414  TH1F* fh1dPhiJetK0;
415  TH1F* fh1LaMult;
416  TH1F* fh1dPhiJetLa;
417  TH1F* fh1ALaMult;
419  TH1F* fh1JetEta;
420  TH1F* fh1JetPhi;
421  TH2F* fh2JetEtaPhi;
422 
423  //embedding
425  TH1F* fh1nGenJets;
428 
429  TH1F* fh1PtEmbBeforeMatch; // pt spectrum of embedded jets from extra particles before JetMatching
430  TH1F* fh1PtEmbExtraOnly; // pt spectrum of embedded jets from extraonly particles (embedded truth)
431  TH1F* fh1PtEmbReject; // pt spectrum of embedded jets that are rejected by jet matching cuts
432  TH2F* fh2PtEtaEmbReject; // pt spectrum of embedded jets that are rejected by jet matching cuts
433  TH1F* fh1PtEmbAfterMatch; // pt spectrum of embedded jets from extra particles after JetMatching
440 
442  TH1F* fh1PerpCone;
444  TH1F* fh1IMK0Cone; //jet pt distribution for normalisation by number of jets
445  TH1F* fh1IMLaCone;
447  TH1F* fh1IMK0EmbCone; //jet pt distribution for normalisation by number of jets
450  TH2F* fh2FFJetTrackEta; //charged jet track eta distribution
451  // TH1F* fh1trackPosNCls;
452  // TH1F* fh1trackNegNCls;
455  // TH1F* fh1V0Rap;
458  TH1F* fh1V0Eta;
459  // TH1F* fh1V0totMom;
464  TH1F* fh1V0Radius;
470  TH2F* fh2BBLaPos;
471  TH2F* fh2BBLaNeg;
474  TH1F* fh1PtMCK0s;
475  TH1F* fh1PtMCLa;
476  TH1F* fh1PtMCALa;
477  TH1F* fh1EtaK0s;
478  TH1F* fh1EtaLa;
479  TH1F* fh1EtaALa;
480  TH1F* fh1RC;
481  TH1F* fh1RCBiasK0;
482  TH1F* fh1RCBiasLa;
484  TH1F* fh1MCC;
485  TH1F* fh1OC;
486  TH1F* fh1NJ;
487  TH1F* fh1NJEmbEvt;
488  TH1F* fh1BckgJets;
495  THnSparse* fhnNJK0;
496  THnSparse* fhnNJLa;
497  THnSparse* fhnNJALa;
498  //TH2F* fh2ChTracksNJ;
499  //TH2F* fh2ChTracksRC;
500  // TH2F* fh2ChTracksOC;
501  //TH2F* fh2ChTracksMCC;
502  //TH2F* fh2ChTracksPC;
503  THnSparse* fhnMCgenK0Cone;
504  THnSparse* fhnMCgenLaCone;
505  // TH2F* fh2MCgenALaCone;
506  //TH2F* fh2MCEtagenK0Cone;
507  //TH2F* fh2MCEtagenLaCone;
508  // TH2F* fh2MCEtagenALaCone;
509  /* TH2F* fh2CorrHijingLaProton;
510  TH2F* fh2CorrInjectLaProton;
511  TH2F* fh2CorrHijingALaAProton;
512  TH2F* fh2CorrInjectALaAProton;*/
513  TH1F* fh1IMK0ConeSmear; //histos for normalisation by number of smeared jets
519  /* TH2F* fh2MCEtaVsPtHijingLa;
520  TH2F* fh2MCEtaVsPtInjectLa;
521  TH2F* fh2MCEtaVsPtHijingALa;
522  TH2F* fh2MCEtaVsPtInjectALa;
523  THnSparse* fhnrecMCHijingLaIncl;
524  THnSparse* fhnrecMCHijingLaCone;
525  THnSparse* fhnrecMCHijingALaIncl;
526  THnSparse* fhnrecMCHijingALaCone;
527  THnSparse* fhnrecMCInjectLaIncl;
528  THnSparse* fhnrecMCInjectLaCone;
529  THnSparse* fhnrecMCInjectALaIncl;
530  THnSparse* fhnrecMCInjectALaCone;*/
531  THnSparse* fhnMCrecK0Cone;
532  THnSparse* fhnMCrecLaCone;
533  THnSparse* fhnMCrecALaCone;
534  /*THnSparse* fhnMCrecK0ConeSmear;
535  THnSparse* fhnMCrecLaConeSmear;
536  THnSparse* fhnMCrecALaConeSmear;
537  THnSparse* fhnK0sSecContinCone;
538  THnSparse* fhnLaSecContinCone;
539  THnSparse* fhnALaSecContinCone;*/
540  THnSparse* fhnK0sIncl;
541  THnSparse* fhnK0sCone;
542  THnSparse* fhnK0sEmbCone;
543  THnSparse* fhnK0sEmbConeRef;
545  THnSparse* fhnLaIncl;
546  THnSparse* fhnLaCone;
547  THnSparse* fhnLaEmbCone;
548  THnSparse* fhnLaEmbConeRef;
550  THnSparse* fhnALaIncl;
551  THnSparse* fhnALaCone;
552  THnSparse* fhnALaEmbCone;
553  THnSparse* fhnALaEmbConeRef;
558  THnSparse* fhnK0sPC;
559  THnSparse* fhnK0sEmbPC;
560  THnSparse* fhnLaPC;
561  THnSparse* fhnLaEmbPC;
562  THnSparse* fhnALaPC;
563  THnSparse* fhnALaEmbPC;
564  THnSparse* fhnK0sMCC;
565  THnSparse* fhnLaMCC;
566  THnSparse* fhnALaMCC;
567  THnSparse* fhnK0sRC;
568  THnSparse* fhnLaRC;
569  THnSparse* fhnALaRC;
570  THnSparse* fhnK0sRCBias;
571  THnSparse* fhnLaRCBias;
572  THnSparse* fhnALaRCBias;
573  THnSparse* fhnK0sOC;
574  THnSparse* fhnLaOC;
575  THnSparse* fhnALaOC;
578  TH1F* fh1JetPtMedian; //for normalisation by total number of median cluster jets TH3F* fh3IMALaMedianCone;
581  THnSparse* fhnFeedDownLa;
582  THnSparse* fhnFeedDownALa;
583  THnSparse* fhnFeedDownLaCone;
584  THnSparse* fhnFeedDownALaCone;
585  TH2F* fh2FeedDownXiLa; //Xi - La correlation plot for inclusive Feeddown fractions calculation, considered are Xi- and X0 FD
586  TH2F* fh2FeedDownXiALa; //AXi - ALa correlation plot for inclusive Feeddown fractions calculation, considered are Xibar+ and X0bar FD
590  TH1F* fh1MCPtV0s;
591  TH1F* fh1MCPtK0s;
594  TH1F* fh1MCXiPt;
599  // TH1F* fh1MCRapK0s;
600  //TH1F* fh1MCRapLambda;
601  //TH1F* fh1MCRapAntiLambda;
603  TH1F* fh1MCEtaK0s;
606 
607 
609 };
610 
611 #endif
612 
613 
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)
TList * jetConeFDALalist
feeddown from Xi (-,0) in jet cone
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
index embedded jet matching to leading rec and gen jet
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 * list
TList * fListMCgenK0s
feeddown from Xibar (+,0) in jet cone
Bool_t IsParticleInCone(const AliVParticle *part1, const AliVParticle *part2, Double_t dRMax) const
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)
TList * fListFeeddownLaCand
ALa list.
TList * fListALaStandard
MC gen PYTHIA ALa list.
virtual void SetLaType(Int_t i)
void SetCutDcaV0Daughters(Double_t dcav0daughters)
ClassDef(AliAnalysisTaskJetChem, 3)
TList * fListLaStandard
MC gen PYTHIA La list.
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)
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)
AliAnalysisTaskJetChem & operator=(const AliAnalysisTaskJetChem &o)
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)
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)
virtual void SetUseEmbeddedJetPt(Bool_t ut)
Double_t SmearJetPt(Double_t jetPt, Double_t &jetPtSmear)
Bool_t IsArmenterosSelected
MC generated Antilambdas in cone around jet axis, particles are from fragmentation but also from unde...
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