]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskDijetHadron.h
Add new DijetHadron task from Taiyo
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskDijetHadron.h
CommitLineData
b1e2cf83 1#ifndef ALIANALYSISTASKDIJETHADRON_H
2#define ALIANALYSISTASKDIJETHADRON_H
3
4// $Id$
5#include <vector>
6
7class TH1;
8class TH2;
9class TH3;
10class TH2F;
11class TH1F;
12class TF1;
13class TH3F;
14class THnSparse;
15class TClonesArray;
16class TObject;
17class TString;
18class AliNamedString;
19class AliAODEvent;
20class AliESDEvent;
21class AliMCEvent;
22class AliRhoParameter;
23class TRandom3;
24class AliEmcalJet;
25class AliVTrack;
26class AliNamedArrayI;
27class AliJetContainer;
28class AliParticleContainer;
29class AliClusterContainer;
30
31template<class T> class TParameter;
32
33#include "AliAnalysisTaskSE.h"
34#include "AliEmcalJet.h"
35#include "AliAnalysisTaskEmcalJet.h"
36
37class AliAnalysisTaskDijetHadron : public AliAnalysisTaskEmcalJet {
38 public:
39
40 AliAnalysisTaskDijetHadron();
41 AliAnalysisTaskDijetHadron(const char *name);
42 virtual ~AliAnalysisTaskDijetHadron() {;}
43
44 void UserCreateOutputObjects();
45
46 void SetJetMinRC2LJ(Float_t d) { fMinRC2LJ = d ; }
47 void SetRCperEvent(Int_t n) { fRCperEvent = n ; }
48 void SetMCJetPtThreshold(Double_t t) { fMCJetPtThreshold = t ; }
49 void SetConeRadius(Double_t r) { fConeRadius = r ; }
50 void SetConeEtaPhiEMCAL() ;
51 void SetConeEtaPhiTPC() ;
52 void SetConeEtaLimits(Float_t min, Float_t max) { fConeMinEta = min, fConeMaxEta = max ; }
53 void SetConePhiLimits(Float_t min, Float_t max) { fConeMinPhi = min, fConeMaxPhi = max ; }
54
55 protected:
56 void AllocateHistogramArrays() ;
57 void ExecOnce() ;
58 Bool_t FillHistograms() ;
59 void GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex) ;
60 AliEmcalJet* NextEmbeddedJet(Bool_t reset=kFALSE) ;
61 void DoEmbTrackLoop() ;
62 void DoEmbClusterLoop() ;
63 void GetRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters,
64 AliEmcalJet *jet = 0, Bool_t bPartialExclusion = 0) const;
65 Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz, const Double_t jetPx, const Double_t jetPy, const Double_t jetPz);
66 Double_t GetNColl() const;
67
68
69 Double_t fMCJetPtThreshold; // threshold for MC jets
70 Float_t fMinRC2LJ; // Minimum distance random cone to leading jet
71 Int_t fRCperEvent; // No. of random cones per event
72 Double_t fConeRadius; // Radius of the random cones
73 Float_t fConeMinEta; // Minimum eta of the random cones
74 Float_t fConeMaxEta; // Maximum eta of the random cones
75 Float_t fConeMinPhi; // Minimum phi of the random cones
76 Float_t fConeMaxPhi; // Maximum phi of the random cones
77
78 AliJetContainer *fJetsCont; //!PbPb Jets
79 AliParticleContainer *fTracksCont; //!PbPb Tracks
80 AliClusterContainer *fCaloClustersCont; //!PbPb Clusters
81 AliJetContainer *fMCJetsCont; //!MC jets
82 AliParticleContainer *fMCTracksCont; //!MC tracks
83 AliClusterContainer *fMCCaloClustersCont; //!MC clusters
84 AliJetContainer *fEmbJetsCont; //!EMB jets
85 AliParticleContainer *fEmbTracksCont; //!EMB tracks
86 AliClusterContainer *fEmbCaloClustersCont; //!EMB clusters
87 //AliParticleContainer *fRandTracksCont; //!Randomized tracks
88 //AliClusterContainer *fRandCaloClustersCont; //!Randomized clusters
89
90 // Random cones
91 TH2 *fHistRCPhiEta; //!Phi-Eta distribution of random cones
92 TH1 **fHistRCPt; //!Random cone pt
93 TH1 **fHistRCPtExLJ; //!Random cone pt, imposing min distance from leading jet
94 TH1 **fHistRCPtExPartialLJ; //!Random cone pt, imposing min distance from leading jet with 1/ncoll probability
95 //TH1 **fHistRCPtRand; //!Random cone pt, randomized particles
96 TH2 **fHistRhoVSRCPt; //!Area(RC) * rho vs. Pt(RC)
97 TH2 **fHistDeltaPtRCvsEP; //!deltaPt = Pt(RC) - A * rho vs. event plane
98 TH1 **fHistDeltaPtRCExLJ; //!deltaPt = Pt(RC) - A * rho, imposing min distance from leading jet
99 TH1 **fHistDeltaPtRCExPartialLJ; //!deltaPt = Pt(RC) - A * rho, imposing min distance from leading jet with 1/ncoll probability
100 //TH1 **fHistDeltaPtRCRand; //!deltaPt = Pt(RC) - A * rho, randomzied particles
101
102 // Jet embedding
103 TH3 **fHistEmbJetsPtArea; //!Pt vs. area of EMB jets
104 TH3 **fHistEmbJetsCorrPtArea; //!Pt-rho*A vs. area of EMB jets
105 TH2 **fHistEmbPartPtvsJetPt; //!MC jet pt total jet pt
106 TH2 **fHistEmbPartPtvsJetCorrPt; //!MC jet pt total jet pt - rho*A
107 TH2 **fHistJetPtvsJetCorrPt; //!Pt vs jet pt - rho*A
108 TH1 **fHistDistLeadPart2JetAxis; //!Distance between leading particle and jet axis
109 TH2 **fHistEmbBkgArea; //!Pt(embjet) - Pt(embtrack) vs. area of EMB jets
110 TH2 **fHistRhoVSEmbBkg; //!Area(embjet) * rho vs. Pt(embjet) - Pt(embtrack)
111 TH2 **fHistDeltaPtEmbArea; //!deltaPt = Pt(embjet) - Area(embjet) * rho - Pt(embtrack) vs. Area(embjet)
112 TH2 **fHistDeltaPtEmbvsEP; //!deltaPt = Pt(embjet) - Area(embjet) * rho - Pt(embtrack) vs. event plane
113 TH2 *fHistRCPtExLJVSDPhiLJ; //!Random cone pt, imposing min distance from leading jet, vs. deltaPhi leading jet
114 TH2 *fHistRCPtExPartialLJVSDPhiLJ; //!Random cone pt, imposing min distance from leading jet, vs. deltaPhi leading jet with 1/ncoll probability
115 TH2 *fHistEmbJetsPhiEta; //!Phi-Eta distribution of EMB jets
116 TH2 *fHistLeadPartPhiEta; //!Phi-Eta distribution of the leading particle of EMB jets
117
118 //User Task
119 TH1 *fCent_V0; //!Centrality
120 TH1 *fVertex_z_cut; //!z_vertex_cut
121 TH1 *fJetBG_rho; //!rhoValue
122 TH2 *fJetBG_rho_Cent; //!rho vs. Centrality
123 TH1 **fTrackPt_PbPb; //!PbPb, trackPt
124 TH1 **fTrackPhi_PbPb; //!PbPb, trackPhi
125 TH1 **fTrackEta_PbPb; //!PbPb, trackEta
126 TH2 **fTrack_Phi_Eta_PbPb; //!PbPb, trackPhi vs. trackEta
127 TH1 **fTrackPt_MC; //!MC, trackPt
128 TH1 **fTrackPhi_MC; //!MC, trackPhi
129 TH1 **fTrackEta_MC; //!MC, trackEta
130 TH2 **fTrack_Phi_Eta_MC; //!MC, trackPhi vs. trackEta
131 TH1 **fTrackPt_EMB; //!EMB, trackPt
132 TH1 **fTrackPhi_EMB; //!EMB, trackPhi
133 TH1 **fTrackEta_EMB; //!EMB, trackEta
134 TH2 **fTrack_Phi_Eta_EMB; //!EMB, trackPhi vs. trackEta
135 TH1 *fJetPt_PbPb[4][3]; //!PbPb, jetPt
136 TH1 *fJetPhi_PbPb[4][3]; //!PbPb, jetPhi
137 TH1 *fJetEta_PbPb[4][3]; //!PbPb, jetEta
138 TH2 *fJet_Phi_Eta_PbPb[4][3]; //!PbPb, jetPhi vs. jetEta
139 TH1 *fJetPt_BG_PbPb[4][3]; //!PbPb, pT - rho * area
140 TH1 *fJet1Pt_PbPb[4][3][4][4]; //!PbPb, leadingjetPt
141 TH1 *fJet2Pt_PbPb[4][3][4][4]; //!PbPb, subleadingjetPt
142 TH1 *fJet1Pt_BG_PbPb[4][3][4][4]; //!PbPb, pT - rho * area, jet1
143 TH1 *fJet2Pt_BG_PbPb[4][3][4][4]; //!PbPb, pT - rho * area, jet2
144 TH1 *fJetDeltaPhi_PbPb[4][3][4][4]; //!PbPb, jetDeltaPhi
145 TH1 *fJetDeltaEta_PbPb[4][3][4][4]; //!PbPb, jetDeltaEta
146 TH1 *fJetDeltaEP_PbPb[4][3][4][4]; //!PbPb, jetDeltaEP
147 TH1 *fJet1SelectPt_BG_PbPb[4][3][4][4]; //!PbPb, selectleadingjetPt
148 TH1 *fJet2SelectPt_BG_PbPb[4][3][4][4]; //!PbPb, selectsubleadingjetPt
149 TH1 *fAj_PbPb[4][3][4][4]; //!PbPb, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
150
151 TH1 *fJetPt_MC[4][3]; //!MC, jetPt
152 TH1 *fJetPhi_MC[4][3]; //!MC, jetPhi
153 TH1 *fJetEta_MC[4][3]; //!MC, jetEta
154 TH2 *fJet_Phi_Eta_MC[4][3]; //!MC, jetPhi vs. jetEta
155 TH1 *fJet1Pt_MC[4][3][4][4]; //!MC, leadingjetPt
156 TH1 *fJet2Pt_MC[4][3][4][4]; //!MC, subleadingjetPt
157 TH1 *fJetDeltaPhi_MC[4][3][4][4]; //!MC, jetDeltaPhi
158 TH1 *fJetDeltaEta_MC[4][3][4][4]; //!MC, jetDeltaEta
159 TH1 *fJetDeltaEP_MC[4][3][4][4]; //!MC, jetDeltaEP
160 TH1 *fAj_MC[4][3][4][4]; //!MC, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
161
162 TH1 *fJetPt_EMB[4][3]; //!EMB, jetPt
163 TH1 *fJetPhi_EMB[4][3]; //!EMB, jetPhi
164 TH1 *fJetEta_EMB[4][3]; //!EMB, jetEta
165 TH2 *fJet_Phi_Eta_EMB[4][3]; //!EMB, jetPhi vs. jetEta
166 TH1 *fJetPt_BG_EMB[4][3]; //!EMB, pT - rho * area
167 TH1 *fJetDeltaPt[4][3]; //!EMB, pT - rho * area - pT(embtrack)
168 TH1 *fJet1Pt_EMB[4][3][4][4]; //!EMB, leadingjetPt
169 TH1 *fJet2Pt_EMB[4][3][4][4]; //!EMB, subleadingjetPt
170 TH1 *fJet1Pt_BG_EMB[4][3][4][4]; //!EMB, pT - rho * area, jet1
171 TH1 *fJet2Pt_BG_EMB[4][3][4][4]; //!EMB, pT - rho * area, jet2
172 TH1 *fJet1DeltaPt[4][3][4][4]; //!EMB, pT - rho * area - pT(embtrack), jet1
173 TH1 *fJet2DeltaPt[4][3][4][4]; //!EMB, pT - rho * area - pT(embtrack), jet2
174 TH1 *fJetDeltaPhi_EMB[4][3][4][4]; //!EMB, jetDeltaPhi
175 TH1 *fJetDeltaEta_EMB[4][3][4][4]; //!EMB, jetDeltaEta
176 TH1 *fJetDeltaEP_EMB[4][3][4][4]; //!EMB, jetDeltaEP
177 TH1 *fJet1SelectPt_BG_EMB[4][3][4][4]; //!EMB, selectleadingjetPt
178 TH1 *fJet2SelectPt_BG_EMB[4][3][4][4]; //!EMB, selectsubleadingjetPt
179 TH1 *fJet1SelectDeltaPt[4][3][4][4]; //!EMB, selectleadingjetPt
180 TH1 *fJet2SelectDeltaPt[4][3][4][4]; //!EMB, selectsubleadingjetPt
181 TH1 *fAj_EMB[4][3][4][4]; //!EMB, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
182
183 TH1 *fHJetDeltaPhi_Aj0_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, no Aj cut
184 TH1 *fHJetDeltaPhi_Aj1_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj1(0.0 to 0.2)
185 TH1 *fHJetDeltaPhi_Aj2_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj2(0.2 to 0.4)
186 TH1 *fHJetDeltaPhi_Aj3_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj3(0.4 to 0.6)
187 TH1 *fHJetDeltaPhi_Aj4_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj4(0.6 to 0.8)
188 TH1 *fHJetPt_Aj0_PbPb[4][3][4][4][4]; //!PbPb, HjetPt, no Aj cut
189 TH1 *fHJetPt_Aj1_PbPb[4][3][4][4][4]; //!PbPb, HjetPt, Aj1
190 TH1 *fHJetPt_Aj2_PbPb[4][3][4][4][4]; //!PbPb, HjetPt, Aj2
191 TH1 *fHJetPt_Aj3_PbPb[4][3][4][4][4]; //!PbPb, HjetPt, Aj3
192 TH1 *fHJetPt_Aj4_PbPb[4][3][4][4][4]; //!PbPb, HjetPt, Aj4
193 TH1 *fHJetDeltaPhi_Aj0_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, no Aj cut
194 TH1 *fHJetDeltaPhi_Aj1_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj1(0.0 to 0.2)
195 TH1 *fHJetDeltaPhi_Aj2_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj2(0.2 to 0.4)
196 TH1 *fHJetDeltaPhi_Aj3_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj3(0.4 to 0.6)
197 TH1 *fHJetDeltaPhi_Aj4_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj4(0.6 to 0.8)
198 TH1 *fHJetPt_Aj0_MC[4][3][4][4][4]; //!MC, HjetPt, no Aj cut
199 TH1 *fHJetPt_Aj1_MC[4][3][4][4][4]; //!MC, HjetPt, Aj1
200 TH1 *fHJetPt_Aj2_MC[4][3][4][4][4]; //!MC, HjetPt, Aj2
201 TH1 *fHJetPt_Aj3_MC[4][3][4][4][4]; //!MC, HjetPt, Aj3
202 TH1 *fHJetPt_Aj4_MC[4][3][4][4][4]; //!MC, HjetPt, Aj4
203 TH1 *fHJetDeltaPhi_Aj0_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, no Aj cut
204 TH1 *fHJetDeltaPhi_Aj1_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj1(0.0 to 0.2)
205 TH1 *fHJetDeltaPhi_Aj2_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj2(0.2 to 0.4)
206 TH1 *fHJetDeltaPhi_Aj3_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj3(0.4 to 0.6)
207 TH1 *fHJetDeltaPhi_Aj4_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj4(0.6 to 0.8)
208 TH1 *fHJetPt_Aj0_EMB[4][3][4][4][4]; //!EMB, HjetPt, no Aj cut
209 TH1 *fHJetPt_Aj1_EMB[4][3][4][4][4]; //!EMB, HjetPt, Aj1
210 TH1 *fHJetPt_Aj2_EMB[4][3][4][4][4]; //!EMB, HjetPt, Aj2
211 TH1 *fHJetPt_Aj3_EMB[4][3][4][4][4]; //!EMB, HjetPt, Aj3
212 TH1 *fHJetPt_Aj4_EMB[4][3][4][4][4]; //!EMB, HjetPt, Aj4
213
214 TH1 *fHJetDeltaPhiasEP_Aj0_PbPb[4][4][4][4][4]; //!PbPb, HjetDeltaPhi, asEP, no Aj cut
215 TH1 *fHJetDeltaPhiasEP_Aj1_PbPb[4][4][4][4][4]; //!PbPb, HjetDeltaPhi, asEP, Aj1
216 TH1 *fHJetDeltaPhiasEP_Aj2_PbPb[4][4][4][4][4]; //!PbPb, HjetDeltaPhi, asEP, Aj2
217 TH1 *fHJetDeltaPhiasEP_Aj3_PbPb[4][4][4][4][4]; //!PbPb, HjetDeltaPhi, asEP, Aj3
218 TH1 *fHJetDeltaPhiasEP_Aj4_PbPb[4][4][4][4][4]; //!PbPb, HjetDeltaPhi, asEP, Aj4
219 TH1 *fHJetPtasEP_Aj0_PbPb[4][4][4][4][4]; //!PbPb, HjetPt, asEP, no Aj cut
220 TH1 *fHJetPtasEP_Aj1_PbPb[4][4][4][4][4]; //!PbPb, HjetPt, asEP, Aj1
221 TH1 *fHJetPtasEP_Aj2_PbPb[4][4][4][4][4]; //!PbPb, HjetPt, asEP, Aj2
222 TH1 *fHJetPtasEP_Aj3_PbPb[4][4][4][4][4]; //!PbPb, HjetPt, asEP, Aj3
223 TH1 *fHJetPtasEP_Aj4_PbPb[4][4][4][4][4]; //!PbPb, HjetPt, asEP, Aj4
224 TH1 *fHJetDeltaPhiasEP_Aj0_MC[4][4][4][4][4]; //!MC, HjetDeltaPhi, asEP, no Aj cut
225 TH1 *fHJetDeltaPhiasEP_Aj1_MC[4][4][4][4][4]; //!MC, HjetDeltaPhi, asEP, Aj1
226 TH1 *fHJetDeltaPhiasEP_Aj2_MC[4][4][4][4][4]; //!MC, HjetDeltaPhi, asEP, Aj2
227 TH1 *fHJetDeltaPhiasEP_Aj3_MC[4][4][4][4][4]; //!MC, HjetDeltaPhi, asEP, Aj3
228 TH1 *fHJetDeltaPhiasEP_Aj4_MC[4][4][4][4][4]; //!MC, HjetDeltaPhi, asEP, Aj4
229 TH1 *fHJetPtasEP_Aj0_MC[4][4][4][4][4]; //!MC, HjetPt, asEP, no Aj cut
230 TH1 *fHJetPtasEP_Aj1_MC[4][4][4][4][4]; //!MC, HjetPt, asEP, Aj1
231 TH1 *fHJetPtasEP_Aj2_MC[4][4][4][4][4]; //!MC, HjetPt, asEP, Aj2
232 TH1 *fHJetPtasEP_Aj3_MC[4][4][4][4][4]; //!MC, HjetPt, asEP, Aj3
233 TH1 *fHJetPtasEP_Aj4_MC[4][4][4][4][4]; //!MC, HjetPt, asEP, Aj4
234 TH1 *fHJetDeltaPhiasEP_Aj0_EMB[4][4][4][4][4]; //!EMB, HjetDeltaPhi, asEP, no Aj cut
235 TH1 *fHJetDeltaPhiasEP_Aj1_EMB[4][4][4][4][4]; //!EMB, HjetDeltaPhi, asEP, Aj1
236 TH1 *fHJetDeltaPhiasEP_Aj2_EMB[4][4][4][4][4]; //!EMB, HjetDeltaPhi, asEP, Aj2
237 TH1 *fHJetDeltaPhiasEP_Aj3_EMB[4][4][4][4][4]; //!EMB, HjetDeltaPhi, asEP, Aj3
238 TH1 *fHJetDeltaPhiasEP_Aj4_EMB[4][4][4][4][4]; //!EMB, HjetDeltaPhi, asEP, Aj4
239 TH1 *fHJetPtasEP_Aj0_EMB[4][4][4][4][4]; //!EMB, HjetPt, asEP, no Aj cut
240 TH1 *fHJetPtasEP_Aj1_EMB[4][4][4][4][4]; //!EMB, HjetPt, asEP, Aj1
241 TH1 *fHJetPtasEP_Aj2_EMB[4][4][4][4][4]; //!EMB, HjetPt, asEP, Aj2
242 TH1 *fHJetPtasEP_Aj3_EMB[4][4][4][4][4]; //!EMB, HjetPt, asEP, Aj3
243 TH1 *fHJetPtasEP_Aj4_EMB[4][4][4][4][4]; //!EMB, HjetPt, asEP, Aj4
244
245
246 private:
247 AliVEvent *fEvent;
248 Double_t fCentrality; //! V0M for current event
249 //AliNamedString *fPtHardBinName; //!Pt hard bin param
250 //Int_t fPtHardBin; //!
251 //TH1F *fhPtHardBins; //!
252
253 AliAnalysisTaskDijetHadron(const AliAnalysisTaskDijetHadron&); // not implemented
254 AliAnalysisTaskDijetHadron &operator=(const AliAnalysisTaskDijetHadron&); // not implemented
255
256 ClassDef(AliAnalysisTaskDijetHadron, 5) // Jet-Hadron analysis task
257};
258#endif