]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskV0sInJetsEmcal.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskV0sInJetsEmcal.h
1 #ifndef AliAnalysisTaskV0sInJetsEmcal_cxx
2 #define AliAnalysisTaskV0sInJetsEmcal_cxx
3
4 // task for analysis of V0s (K0S, (anti-)Lambda) in charged jets
5 // fork of AliAnalysisTaskV0sInJets for the EMCal framework
6 // Author: Vit Kucera (vit.kucera@cern.ch)
7
8 class TH1D;
9 class TH2D;
10 class THnSparse;
11 class TRandom;
12 class TClonesArray;
13
14 class AliAODv0;
15 class AliAODVertex;
16 class AliAODJet;
17
18 class AliJetContainer;
19 class AliParticleContainer;
20 class AliClusterContainer;
21
22 #include "AliAnalysisTaskEmcalJet.h"
23 #include "THnSparse.h"
24
25 class AliAnalysisTaskV0sInJetsEmcal : public AliAnalysisTaskEmcalJet
26 {
27 public:
28   AliAnalysisTaskV0sInJetsEmcal(); // Default constructor
29   AliAnalysisTaskV0sInJetsEmcal(const char* name); // Constructor
30   virtual ~AliAnalysisTaskV0sInJetsEmcal(); // Destructor
31   void UserCreateOutputObjects();
32   void Terminate(Option_t*) {}
33
34   void SetIsPbPb(Bool_t val = 1) {fbIsPbPb = val;}
35   void SetCuts(Double_t z = 10, Double_t r = 1, Double_t cL = 0, Double_t cH = 80) {fdCutVertexZ = z; fdCutVertexR2 = r * r; fdCutCentLow = cL; fdCutCentHigh = cH;}
36   void SetPtJetMin(Double_t ptMin = 0) {fdCutPtJetMin = ptMin;}
37   void SetPtTrackMin(Double_t ptMin = 0) {fdCutPtTrackMin = ptMin;}
38   void SetJetRadius(Double_t r = 0.4) {fdRadiusJet = r;}
39   void SetJetSelection(Bool_t select = kTRUE) {fbJetSelection = select;}
40   void SetMCAnalysis(Bool_t select = kTRUE) {fbMCAnalysis = select;}
41   void FillQAHistogramV0(AliAODVertex* vtx, const AliAODv0* vZero, Int_t iIndexHisto, Bool_t IsCandK0s, Bool_t IsCandLambda, Bool_t IsInPeakK0s, Bool_t IsInPeakLambda);
42   void FillCandidates(Double_t mK, Double_t mL, Double_t mAL, Bool_t isK, Bool_t isL, Bool_t isAL, Int_t iCut, Int_t iCent);
43   Bool_t IsParticleInCone(const AliVParticle* part1, const AliVParticle* part2, Double_t dRMax) const; // decides whether a particle is inside a jet cone
44   Bool_t OverlapWithJets(const TClonesArray* array, const AliVParticle* cone, Double_t dDistance) const; // decides whether a cone overlaps with other jets
45   AliAODJet* GetRandomCone(const TClonesArray* array, Double_t dEtaConeMax, Double_t dDistance) const; // generate a random cone which does not overlap with selected jets
46   AliEmcalJet* GetMedianCluster(AliJetContainer* cont, Double_t dEtaConeMax) const; // get median kt cluster
47   Double_t AreaCircSegment(Double_t dRadius, Double_t dDistance) const; // area of circular segment
48
49   void SetCutDCAToPrimVtxMin(Double_t val = 0.1) {fdCutDCAToPrimVtxMin = val;}
50   void SetCutDCADaughtersMax(Double_t val = 1.) {fdCutDCADaughtersMax = val;}
51   void SetCutNSigmadEdxMax(Double_t val = 3.) {fdCutNSigmadEdxMax = val;}
52   void SetCutCPAMin(Double_t val = 0.998) {fdCutCPAMin = val;}
53   void SetCutNTauMax(Double_t val = 5.) {fdCutNTauMax = val;}
54
55   Bool_t IsSelectedForJets(AliAODEvent* fAOD, Double_t dVtxZCut, Double_t dVtxR2Cut, Double_t dCentCutLo, Double_t dCentCutUp, Bool_t bCutDeltaZ = kFALSE, Double_t dDeltaZMax = 100.);
56   Int_t GetCentralityBinIndex(Double_t centrality);
57   Int_t GetCentralityBinEdge(Int_t index);
58   TString GetCentBinLabel(Int_t index);
59   Double_t MassPeakSigmaOld(Double_t pt, Int_t particle);
60   static bool CompareClusters(const std::vector<Double_t> cluster1, const std::vector<Double_t> cluster2); // compare clusters by their pt/area
61
62   // upper edges of centrality bins
63   static const Int_t fgkiNBinsCent = 1; // number of centrality bins
64   static const Int_t fgkiCentBinRanges[fgkiNBinsCent]; // upper edges of centrality bins
65   // axis: pT of V0
66   static const Double_t fgkdBinsPtV0[2]; // [GeV/c] minimum and maximum or desired binning of the axis (intended for the rebinned axis)
67   static const Int_t fgkiNBinsPtV0; // number of bins (intended for the rebinned axis)
68   static const Int_t fgkiNBinsPtV0Init; // initial number of bins (uniform binning)
69   // axis: pT of jets
70   static const Double_t fgkdBinsPtJet[2]; // [GeV/c] minimum and maximum or desired binning of the axis (intended for the rebinned axis)
71   static const Int_t fgkiNBinsPtJet; // number of bins (intended for the rebinned axis)
72   static const Int_t fgkiNBinsPtJetInit; // initial number of bins (uniform binning)
73   // axis: K0S invariant mass
74   static const Int_t fgkiNBinsMassK0s; // number of bins (uniform binning)
75   static const Double_t fgkdMassK0sMin; // minimum
76   static const Double_t fgkdMassK0sMax; // maximum
77   // axis: Lambda invariant mass
78   static const Int_t fgkiNBinsMassLambda; // number of bins (uniform binning)
79   static const Double_t fgkdMassLambdaMin; // minimum
80   static const Double_t fgkdMassLambdaMax; // maximum
81
82 protected:
83   void ExecOnce();
84   Bool_t FillHistograms();
85   Bool_t Run();
86
87 private:
88   AliAODEvent* fAODIn; //! Input AOD event
89   AliAODEvent* fAODOut; //! Output AOD event
90   TList* fOutputListStd; //! Output list for standard analysis results
91   TList* fOutputListQA; //! Output list for quality assurance
92   TList* fOutputListCuts; //! Output list for checking cuts
93   TList* fOutputListMC; //! Output list for MC related results
94   Bool_t fbIsPbPb; // switch Pb-Pb / p-p collisions
95
96   // V0 selection
97   Double_t fdCutDCAToPrimVtxMin; // [cm] min DCA of daughters to the prim vtx
98   Double_t fdCutDCADaughtersMax; // [sigma of TPC tracking] max DCA between daughters
99   Double_t fdCutNSigmadEdxMax; // [sigma dE/dx] max difference between measured and expected signal of dE/dx in the TPC
100   Double_t fdCutCPAMin; // min cosine of the pointing angle
101   Double_t fdCutNTauMax; // [tau] max proper lifetime in multiples of the mean lifetime
102   // jet selection
103   Double_t fdCutPtJetMin; // [GeV/c] minimum jet pt
104   Double_t fdCutPtTrackMin; // [GeV/c] minimum pt of leading jet-track
105   Double_t fdRadiusJet; // R of jet finder used for finding V0s in the jet cone
106   Bool_t fbJetSelection; // switch for the analysis of V0s in jets
107
108   Bool_t fbMCAnalysis; // switch for the analysis of simulated data
109   TRandom* fRandom; //! random-number generator
110
111   // EMCal containers
112   AliJetContainer* fJetsCont; //! Signal Jets
113   AliJetContainer* fJetsBgCont; //! Background Jets
114 //  AliParticleContainer* fTracksCont; //! Tracks
115 //  AliClusterContainer* fCaloClustersCont; //! Clusters
116
117   // event cuts
118   Double_t fdCutVertexZ; // [cm] maximum |z| of primary vertex
119   Double_t fdCutVertexR2; // [cm^2] maximum r^2 of primary vertex
120   Double_t fdCutCentLow; // [%] minimum centrality
121   Double_t fdCutCentHigh; // [%] maximum centrality
122   Double_t fdCentrality; //!
123
124   // event histograms
125   TH1D* fh1EventCounterCut; //! number of events for different selection steps
126   TH1D* fh1EventCounterCutCent[fgkiNBinsCent]; //! number of events for different selection steps and different centralities
127   TH1D* fh1EventCent; //! number of events for different centralities
128   TH1D* fh1EventCent2; //! number of events for different centralities
129   TH1D* fh1EventCent2Jets; //! number of events for different centralities
130   TH1D* fh1EventCent2NoJets; //! number of events for different centralities
131   TH2D* fh2EventCentTracks; //! number of tracks vs centrality
132   TH1D* fh1VtxZ[fgkiNBinsCent]; //! z coordinate of the primary vertex
133   TH2D* fh2VtxXY[fgkiNBinsCent]; //! xy coordinates of the primary vertex
134   TH1D* fh1V0CandPerEvent; //! number of V0 cand per event
135
136   // jet histograms
137   TH1D* fh1PtJet[fgkiNBinsCent]; //! pt spectra of jets for normalisation of in-jet V0 spectra
138   TH1D* fh1EtaJet[fgkiNBinsCent]; //! jet eta
139   TH2D* fh2EtaPtJet[fgkiNBinsCent]; //! jet eta-pT
140   TH1D* fh1PhiJet[fgkiNBinsCent]; //! jet phi
141   TH1D* fh1PtJetTrackLeading[fgkiNBinsCent]; //! pt spectra of leading jet tracks
142   TH1D* fh1NJetPerEvent[fgkiNBinsCent]; //! number of jets per event
143   TH1D* fh1NRndConeCent; //! number of generated random cones in centrality bins
144   TH2D* fh2EtaPhiRndCone[fgkiNBinsCent]; //! random cone eta-pT
145   TH1D* fh1NMedConeCent; //! number of found median-cluster cones in centrality bins
146   TH2D* fh2EtaPhiMedCone[fgkiNBinsCent]; //! median-cluster cone eta-phi
147   TH1D* fh1AreaExcluded; //! area of excluded cones for outside-cones V0s
148
149   static const Int_t fgkiNCategV0 = 17; // number of V0 selection steps
150
151   // QA histograms
152   static const Int_t fgkiNQAIndeces = 2; // 0 - before cuts, 1 - after cuts
153   TH1D* fh1QAV0Status[fgkiNQAIndeces]; //! online vs offline reconstructed V0 candidates
154   TH1D* fh1QAV0TPCRefit[fgkiNQAIndeces]; //! TPC refit on vs off
155   TH1D* fh1QAV0TPCRows[fgkiNQAIndeces]; //! crossed TPC pad rows
156   TH1D* fh1QAV0TPCFindable[fgkiNQAIndeces]; //! findable clusters
157   TH1D* fh1QAV0TPCRowsFind[fgkiNQAIndeces]; //! ratio rows/clusters
158   TH1D* fh1QAV0Eta[fgkiNQAIndeces]; //! pseudorapidity
159   TH2D* fh2QAV0EtaRows[fgkiNQAIndeces]; //! pseudorapidity vs TPC rows
160   TH2D* fh2QAV0PtRows[fgkiNQAIndeces]; //! pt vs TPC rows
161   TH2D* fh2QAV0PhiRows[fgkiNQAIndeces]; //! azimuth vs TPC rows
162   TH2D* fh2QAV0NClRows[fgkiNQAIndeces]; //! clusters vs TPC rows
163   TH2D* fh2QAV0EtaNCl[fgkiNQAIndeces]; //! pseudorapidity vs clusters
164
165   // K0s
166   TH1D* fh1V0CounterCentK0s[fgkiNBinsCent]; //! number of K0s candidates after various cuts
167   TH1D* fh1V0InvMassK0sAll[fgkiNCategV0]; //! V0 invariant mass, selection steps
168   TH2D* fh2QAV0EtaPtK0sPeak[fgkiNQAIndeces]; //! daughters pseudorapidity vs V0 pt, in mass peak
169   TH2D* fh2QAV0EtaEtaK0s[fgkiNQAIndeces]; //! daughters pseudorapidity vs pseudorapidity
170   TH2D* fh2QAV0PhiPhiK0s[fgkiNQAIndeces]; //! daughters azimuth vs azimuth
171   TH1D* fh1QAV0RapK0s[fgkiNQAIndeces]; //! V0 rapidity
172   TH2D* fh2QAV0PtPtK0sPeak[fgkiNQAIndeces]; //! daughters pt vs pt, in mass peak
173   TH2D* fh2ArmPodK0s[fgkiNQAIndeces]; //! Armenteros-Podolanski
174   TH1D* fh1V0CandPerEventCentK0s[fgkiNBinsCent]; //! number of K0s candidates per event, in centrality bins
175   TH1D* fh1V0InvMassK0sCent[fgkiNBinsCent]; //! V0 invariant mass, in centrality bins
176   // K0s Inclusive
177   THnSparse* fhnV0InclusiveK0s[fgkiNBinsCent]; //! V0 inv mass vs pt before and after cuts, in centrality bins
178   // K0s Cones
179   THnSparse* fhnV0InJetK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt vs jet pt, in centrality bins
180   THnSparse* fhnV0InPerpK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt vs jet pt, in centrality bins
181   THnSparse* fhnV0InRndK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt vs jet pt, in centrality bins
182   THnSparse* fhnV0InMedK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt vs jet pt, in centrality bins
183   THnSparse* fhnV0OutJetK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt, in centrality bins
184   THnSparse* fhnV0NoJetK0s[fgkiNBinsCent]; //! V0 invariant mass vs V0 pt, in centrality bins
185
186   TH2D* fh2V0PtJetAngleK0s[fgkiNBinsCent]; //! pt jet vs angle V0-jet, in centrality bins
187   TH1D* fh1DCAInK0s[fgkiNBinsCent]; //! DCA between daughters of V0 inside jets, in centrality bins
188   TH1D* fh1DCAOutK0s[fgkiNBinsCent]; //! DCA between daughters of V0 outside jets, in centrality bins
189   // MC histograms
190   // inclusive
191   TH1D* fh1V0K0sPtMCGen[fgkiNBinsCent]; //! pt spectrum of all generated K0s in event
192   TH2D* fh2V0K0sPtMassMCRec[fgkiNBinsCent]; //! pt-mass spectrum of successfully reconstructed K0s in event
193   TH1D* fh1V0K0sPtMCRecFalse[fgkiNBinsCent]; //! pt spectrum of false reconstructed K0s in event
194   // inclusive eta-pT efficiency
195   TH2D* fh2V0K0sEtaPtMCGen[fgkiNBinsCent]; //! eta-pt spectrum of all generated K0s in event
196   THnSparse* fh3V0K0sEtaPtMassMCRec[fgkiNBinsCent]; //! eta-pt-mass spectrum of successfully reconstructed K0s in event
197   // MC daughter eta inclusive
198 //  THnSparse* fhnV0K0sInclDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
199   THnSparse* fhnV0K0sInclDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
200   // in jets
201   TH2D* fh2V0K0sInJetPtMCGen[fgkiNBinsCent]; //! pt spectrum of generated K0s in jet
202   THnSparse* fh3V0K0sInJetPtMassMCRec[fgkiNBinsCent]; //! mass-pt spectrum of successfully reconstructed K0s in jet
203   // in jets eta-pT efficiency
204   THnSparse* fh3V0K0sInJetEtaPtMCGen[fgkiNBinsCent]; //! eta-pt spectrum of generated K0s in jet
205   THnSparse* fh4V0K0sInJetEtaPtMassMCRec[fgkiNBinsCent]; //! mass-eta-pt spectrum of successfully reconstructed K0s in jet
206   // MC daughter eta in JC
207 //  THnSparse* fhnV0K0sInJetsDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
208   THnSparse* fhnV0K0sInJetsDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
209
210   // resolution
211   TH2D* fh2V0K0sMCResolMPt[fgkiNBinsCent]; //! K0s mass resolution vs pt
212   TH2D* fh2V0K0sMCPtGenPtRec[fgkiNBinsCent]; //! K0s generated pt vs reconstructed pt
213
214   // Lambda
215   TH1D* fh1V0CounterCentLambda[fgkiNBinsCent]; //! number of Lambda candidates after various cuts
216   TH1D* fh1V0InvMassLambdaAll[fgkiNCategV0]; //!
217   TH2D* fh2QAV0EtaPtLambdaPeak[fgkiNQAIndeces]; //!
218   TH2D* fh2QAV0EtaEtaLambda[fgkiNQAIndeces]; //!
219   TH2D* fh2QAV0PhiPhiLambda[fgkiNQAIndeces]; //!
220   TH1D* fh1QAV0RapLambda[fgkiNQAIndeces]; //!
221   TH2D* fh2QAV0PtPtLambdaPeak[fgkiNQAIndeces]; //!
222   TH2D* fh2ArmPodLambda[fgkiNQAIndeces]; //!
223   TH1D* fh1V0CandPerEventCentLambda[fgkiNBinsCent]; //!
224   TH1D* fh1V0InvMassLambdaCent[fgkiNBinsCent]; //!
225   // Lambda Inclusive
226   THnSparse* fhnV0InclusiveLambda[fgkiNBinsCent]; //!
227   // Lambda Cones
228   THnSparse* fhnV0InJetLambda[fgkiNBinsCent]; //!
229   THnSparse* fhnV0InPerpLambda[fgkiNBinsCent]; //!
230   THnSparse* fhnV0InRndLambda[fgkiNBinsCent]; //!
231   THnSparse* fhnV0InMedLambda[fgkiNBinsCent]; //!
232   THnSparse* fhnV0OutJetLambda[fgkiNBinsCent]; //!
233   THnSparse* fhnV0NoJetLambda[fgkiNBinsCent]; //!
234
235   TH2D* fh2V0PtJetAngleLambda[fgkiNBinsCent]; //!
236   TH1D* fh1DCAInLambda[fgkiNBinsCent]; //!
237   TH1D* fh1DCAOutLambda[fgkiNBinsCent]; //!
238   // MC histograms
239   // inclusive
240   TH1D* fh1V0LambdaPtMCGen[fgkiNBinsCent]; //!
241   TH2D* fh2V0LambdaPtMassMCRec[fgkiNBinsCent]; //!
242   TH1D* fh1V0LambdaPtMCRecFalse[fgkiNBinsCent]; //!
243   // inclusive eta-pT efficiency
244   TH2D* fh2V0LambdaEtaPtMCGen[fgkiNBinsCent]; //!
245   THnSparse* fh3V0LambdaEtaPtMassMCRec[fgkiNBinsCent]; //!
246   // MC daughter eta inclusive
247 //  THnSparse* fhnV0LambdaInclDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
248   THnSparse* fhnV0LambdaInclDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
249   // in jets
250   TH2D* fh2V0LambdaInJetPtMCGen[fgkiNBinsCent]; //!
251   THnSparse* fh3V0LambdaInJetPtMassMCRec[fgkiNBinsCent]; //!
252   // in jets eta-pT efficiency
253   THnSparse* fh3V0LambdaInJetEtaPtMCGen[fgkiNBinsCent]; //!
254   THnSparse* fh4V0LambdaInJetEtaPtMassMCRec[fgkiNBinsCent]; //!
255   // MC daughter eta in JC
256 //  THnSparse* fhnV0LambdaInJetsDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
257   THnSparse* fhnV0LambdaInJetsDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
258
259   // resolution
260   TH2D* fh2V0LambdaMCResolMPt[fgkiNBinsCent]; //!
261   TH2D* fh2V0LambdaMCPtGenPtRec[fgkiNBinsCent]; //!
262   // feed-down
263   THnSparseD* fhnV0LambdaInclMCFD[fgkiNBinsCent]; //!
264   THnSparseD* fhnV0LambdaInJetsMCFD[fgkiNBinsCent]; //!
265   THnSparseD* fhnV0LambdaBulkMCFD[fgkiNBinsCent]; //!
266   TH1D* fh1V0XiPtMCGen[fgkiNBinsCent]; //!
267
268   // ALambda
269   TH1D* fh1V0CounterCentALambda[fgkiNBinsCent]; //! number of ALambda candidates after various cuts
270   TH1D* fh1V0InvMassALambdaAll[fgkiNCategV0]; //!
271   TH2D* fh2QAV0EtaPtALambdaPeak[fgkiNQAIndeces]; //!
272   TH2D* fh2QAV0EtaEtaALambda[fgkiNQAIndeces]; //!
273   TH2D* fh2QAV0PhiPhiALambda[fgkiNQAIndeces]; //!
274   TH1D* fh1QAV0RapALambda[fgkiNQAIndeces]; //!
275   TH2D* fh2QAV0PtPtALambdaPeak[fgkiNQAIndeces]; //!
276   TH2D* fh2ArmPodALambda[fgkiNQAIndeces]; //!
277   TH1D* fh1V0CandPerEventCentALambda[fgkiNBinsCent]; //!
278   TH1D* fh1V0InvMassALambdaCent[fgkiNBinsCent]; //!
279   TH1D* fh1V0ALambdaPt[fgkiNBinsCent]; //!
280   // ALambda Inclusive
281   THnSparse* fhnV0InclusiveALambda[fgkiNBinsCent]; //!
282   // ALambda Cones
283   THnSparse* fhnV0InJetALambda[fgkiNBinsCent]; //!
284   THnSparse* fhnV0InPerpALambda[fgkiNBinsCent]; //!
285   THnSparse* fhnV0InRndALambda[fgkiNBinsCent]; //!
286   THnSparse* fhnV0InMedALambda[fgkiNBinsCent]; //!
287   THnSparse* fhnV0OutJetALambda[fgkiNBinsCent]; //!
288   THnSparse* fhnV0NoJetALambda[fgkiNBinsCent]; //!
289
290   TH2D* fh2V0PtJetAngleALambda[fgkiNBinsCent]; //!
291   TH1D* fh1DCAInALambda[fgkiNBinsCent]; //!
292   TH1D* fh1DCAOutALambda[fgkiNBinsCent]; //!
293   // MC histograms
294   // inclusive
295   TH1D* fh1V0ALambdaPtMCGen[fgkiNBinsCent]; //!
296   TH1D* fh1V0ALambdaPtMCRec[fgkiNBinsCent]; //!
297   TH2D* fh2V0ALambdaPtMassMCRec[fgkiNBinsCent]; //!
298   TH1D* fh1V0ALambdaPtMCRecFalse[fgkiNBinsCent]; //!
299   // inclusive eta-pT efficiency
300   TH2D* fh2V0ALambdaEtaPtMCGen[fgkiNBinsCent]; //!
301   THnSparse* fh3V0ALambdaEtaPtMassMCRec[fgkiNBinsCent]; //!
302   // MC daughter eta inclusive
303 //  THnSparse* fhnV0ALambdaInclDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
304   THnSparse* fhnV0ALambdaInclDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
305   // in jets
306   TH2D* fh2V0ALambdaInJetPtMCGen[fgkiNBinsCent]; //!
307   TH2D* fh2V0ALambdaInJetPtMCRec[fgkiNBinsCent]; //!
308   THnSparse* fh3V0ALambdaInJetPtMassMCRec[fgkiNBinsCent]; //!
309   // in jets eta-pT efficiency
310   THnSparse* fh3V0ALambdaInJetEtaPtMCGen[fgkiNBinsCent]; //!
311   THnSparse* fh4V0ALambdaInJetEtaPtMassMCRec[fgkiNBinsCent]; //!
312   // MC daughter eta in JC
313 //  THnSparse* fhnV0ALambdaInJetsDaughterEtaPtPtMCGen[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 generated
314   THnSparse* fhnV0ALambdaInJetsDaughterEtaPtPtMCRec[fgkiNBinsCent]; //! eta_daughter-pt_daughter-pt_V0 reconstructed
315
316   // resolution
317   TH2D* fh2V0ALambdaMCResolMPt[fgkiNBinsCent]; //!
318   TH2D* fh2V0ALambdaMCPtGenPtRec[fgkiNBinsCent]; //!
319   // feed-down
320   THnSparseD* fhnV0ALambdaInclMCFD[fgkiNBinsCent]; //!
321   THnSparseD* fhnV0ALambdaInJetsMCFD[fgkiNBinsCent]; //!
322   THnSparseD* fhnV0ALambdaBulkMCFD[fgkiNBinsCent]; //!
323   TH1D* fh1V0AXiPtMCGen[fgkiNBinsCent]; //!
324
325   TH1D* fh1QAV0Pt[fgkiNQAIndeces]; //! pt
326   TH1D* fh1QAV0Charge[fgkiNQAIndeces]; //! charge
327   TH1D* fh1QAV0DCAVtx[fgkiNQAIndeces]; //! DCA of daughters to prim vtx
328   TH1D* fh1QAV0DCAV0[fgkiNQAIndeces]; //! DCA between daughters
329   TH1D* fh1QAV0Cos[fgkiNQAIndeces]; //! cosine of pointing angle (CPA)
330   TH1D* fh1QAV0R[fgkiNQAIndeces]; //! radial distance between prim vtx and decay vertex
331   TH1D* fh1QACTau2D[fgkiNQAIndeces]; //! lifetime calculated in xy
332   TH1D* fh1QACTau3D[fgkiNQAIndeces]; //! lifetime calculated in xyz
333   TH2D* fh2ArmPod[fgkiNQAIndeces]; //! Armenteros-Podolanski
334   TH2D* fh2CCK0s; //! K0s candidates in Lambda peak
335   TH2D* fh2CCLambda; //! Lambda candidates in K0s peak
336   THnSparse* fh3CCMassCorrelBoth; //! mass correlation of candidates
337   THnSparse* fh3CCMassCorrelKNotL; //! mass correlation of candidates
338   THnSparse* fh3CCMassCorrelLNotK; //! mass correlation of candidates
339
340   // Cut tuning
341   // crossed/findable, daughter pt, dca, cpa, r, pseudorapidity, y, decay length, PID sigma
342   /*
343   TH2D* fh2CutTPCRowsK0s[fgkiNQAIndeces]; //! inv mass vs TPC rows
344   TH2D* fh2CutTPCRowsLambda[fgkiNQAIndeces]; //!
345   TH2D* fh2CutPtPosK0s[fgkiNQAIndeces]; //! inv mass vs pt of positive daughter
346   TH2D* fh2CutPtNegK0s[fgkiNQAIndeces]; //! inv mass vs pt of negative daughter
347   TH2D* fh2CutPtPosLambda[fgkiNQAIndeces]; //!
348   TH2D* fh2CutPtNegLambda[fgkiNQAIndeces]; //!
349   TH2D* fh2CutDCAVtx[fgkiNQAIndeces]; //! inv mass vs DCA of daughters to prim vtx
350   TH2D* fh2CutDCAV0[fgkiNQAIndeces]; //! inv mass vs DCA between daughters
351   TH2D* fh2CutCos[fgkiNQAIndeces]; //! inv mass vs CPA
352   TH2D* fh2CutR[fgkiNQAIndeces]; //! inv mass vs R
353   TH2D* fh2CutEtaK0s[fgkiNQAIndeces]; //! inv mass vs pseudorapidity
354   TH2D* fh2CutEtaLambda[fgkiNQAIndeces]; //!
355   TH2D* fh2CutRapK0s[fgkiNQAIndeces]; //! inv mass vs rapidity
356   TH2D* fh2CutRapLambda[fgkiNQAIndeces]; //!
357   TH2D* fh2CutCTauK0s[fgkiNQAIndeces]; //! inv mass vs lifetime
358   TH2D* fh2CutCTauLambda[fgkiNQAIndeces]; //!
359   TH2D* fh2CutPIDPosK0s[fgkiNQAIndeces]; //! inv mass vs number of dE/dx sigmas for positive daughter
360   TH2D* fh2CutPIDNegK0s[fgkiNQAIndeces]; //! inv mass vs number of dE/dx sigmas for negative daughter
361   TH2D* fh2CutPIDPosLambda[fgkiNQAIndeces]; //!
362   TH2D* fh2CutPIDNegLambda[fgkiNQAIndeces]; //!
363
364   TH2D* fh2Tau3DVs2D[fgkiNQAIndeces]; //! pt vs ratio 3D lifetime / 2D lifetime
365   */
366
367   AliAnalysisTaskV0sInJetsEmcal(const AliAnalysisTaskV0sInJetsEmcal&); // not implemented
368   AliAnalysisTaskV0sInJetsEmcal& operator=(const AliAnalysisTaskV0sInJetsEmcal&); // not implemented
369
370   ClassDef(AliAnalysisTaskV0sInJetsEmcal, 4) // example of analysis
371 };
372
373 #endif