]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskDijetHadron.h
Include binning component in the global analysis framework
[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
b1e2cf83 46 void SetMCJetPtThreshold(Double_t t) { fMCJetPtThreshold = t ; }
6c7b9d7a 47 void SetLeadingHadronPtThreshold1(Double_t u1) { fleadingHadronPtcut1 = u1 ; }
48 void SetLeadingHadronPtThreshold2(Double_t u2) { fleadingHadronPtcut2 = u2 ; }
49 void SetLeadingHadronPtThreshold3(Double_t u3) { fleadingHadronPtcut3 = u3 ; }
50 void SetJet1PtThreshold1(Double_t v1) { fJet1Ptcut1 = v1 ; }
51 void SetJet1PtThreshold2(Double_t v2) { fJet1Ptcut2 = v2 ; }
52 void SetJet1PtThreshold3(Double_t v3) { fJet1Ptcut3 = v3 ; }
53 void SetJet2PtThreshold1(Double_t w1) { fJet2Ptcut1 = w1 ; }
54 void SetJet2PtThreshold2(Double_t w2) { fJet2Ptcut2 = w2 ; }
55 void SetJet2PtThreshold3(Double_t w3) { fJet2Ptcut3 = w3 ; }
56 void SetConeRadius(Double_t r) { fConeRadius = r ; }
b1e2cf83 57 void SetConeEtaPhiEMCAL() ;
58 void SetConeEtaPhiTPC() ;
59 void SetConeEtaLimits(Float_t min, Float_t max) { fConeMinEta = min, fConeMaxEta = max ; }
60 void SetConePhiLimits(Float_t min, Float_t max) { fConeMinPhi = min, fConeMaxPhi = max ; }
61
62 protected:
63 void AllocateHistogramArrays() ;
64 void ExecOnce() ;
65 Bool_t FillHistograms() ;
66 void GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex) ;
67 AliEmcalJet* NextEmbeddedJet(Bool_t reset=kFALSE) ;
68 void DoEmbTrackLoop() ;
69 void DoEmbClusterLoop() ;
b1e2cf83 70 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);
aba4548d 71 Double_t GetDPhi(Double_t mphi,Double_t vphi);
b1e2cf83 72
73 Double_t fMCJetPtThreshold; // threshold for MC jets
6c7b9d7a 74 Double_t fleadingHadronPtcut1; // threshold for leading hadron pT NO1
75 Double_t fleadingHadronPtcut2; // threshold for leading hadron pT NO2
76 Double_t fleadingHadronPtcut3; // threshold for leading hadron pT NO3
77 Double_t fJet1Ptcut1; // threshold for leading Jet pT NO1
78 Double_t fJet1Ptcut2; // threshold for leading Jet pT NO2
79 Double_t fJet1Ptcut3; // threshold for leading Jet pT NO3
80 Double_t fJet2Ptcut1; // threshold for subleading Jet pT NO1
81 Double_t fJet2Ptcut2; // threshold for subleading Jet pT NO2
82 Double_t fJet2Ptcut3; // threshold for subleading Jet pT NO3
83 Double_t fConeRadius; // Radius of the jet cones
84 Float_t fConeMinEta; // Minimum eta of the jet cones
85 Float_t fConeMaxEta; // Maximum eta of the jet cones
86 Float_t fConeMinPhi; // Minimum phi of the jet cones
87 Float_t fConeMaxPhi; // Maximum phi of the jet cones
b1e2cf83 88
89 AliJetContainer *fJetsCont; //!PbPb Jets
90 AliParticleContainer *fTracksCont; //!PbPb Tracks
91 AliClusterContainer *fCaloClustersCont; //!PbPb Clusters
92 AliJetContainer *fMCJetsCont; //!MC jets
93 AliParticleContainer *fMCTracksCont; //!MC tracks
94 AliClusterContainer *fMCCaloClustersCont; //!MC clusters
95 AliJetContainer *fEmbJetsCont; //!EMB jets
96 AliParticleContainer *fEmbTracksCont; //!EMB tracks
97 AliClusterContainer *fEmbCaloClustersCont; //!EMB clusters
b1e2cf83 98
99 //User Task
100 TH1 *fCent_V0; //!Centrality
101 TH1 *fVertex_z_cut; //!z_vertex_cut
aba4548d 102 TH1 *fEP2; //!z_vertex_cut
b1e2cf83 103 TH1 *fJetBG_rho; //!rhoValue
104 TH2 *fJetBG_rho_Cent; //!rho vs. Centrality
105 TH1 **fTrackPt_PbPb; //!PbPb, trackPt
106 TH1 **fTrackPhi_PbPb; //!PbPb, trackPhi
107 TH1 **fTrackEta_PbPb; //!PbPb, trackEta
108 TH2 **fTrack_Phi_Eta_PbPb; //!PbPb, trackPhi vs. trackEta
109 TH1 **fTrackPt_MC; //!MC, trackPt
110 TH1 **fTrackPhi_MC; //!MC, trackPhi
111 TH1 **fTrackEta_MC; //!MC, trackEta
112 TH2 **fTrack_Phi_Eta_MC; //!MC, trackPhi vs. trackEta
113 TH1 **fTrackPt_EMB; //!EMB, trackPt
114 TH1 **fTrackPhi_EMB; //!EMB, trackPhi
115 TH1 **fTrackEta_EMB; //!EMB, trackEta
116 TH2 **fTrack_Phi_Eta_EMB; //!EMB, trackPhi vs. trackEta
117 TH1 *fJetPt_PbPb[4][3]; //!PbPb, jetPt
118 TH1 *fJetPhi_PbPb[4][3]; //!PbPb, jetPhi
119 TH1 *fJetEta_PbPb[4][3]; //!PbPb, jetEta
120 TH2 *fJet_Phi_Eta_PbPb[4][3]; //!PbPb, jetPhi vs. jetEta
121 TH1 *fJetPt_BG_PbPb[4][3]; //!PbPb, pT - rho * area
aba4548d 122 TH2 *fJetDeltaEP_PbPb[4][3]; //!PbPb, jetDeltaEP
b1e2cf83 123 TH1 *fJet1Pt_PbPb[4][3][4][4]; //!PbPb, leadingjetPt
124 TH1 *fJet2Pt_PbPb[4][3][4][4]; //!PbPb, subleadingjetPt
125 TH1 *fJet1Pt_BG_PbPb[4][3][4][4]; //!PbPb, pT - rho * area, jet1
126 TH1 *fJet2Pt_BG_PbPb[4][3][4][4]; //!PbPb, pT - rho * area, jet2
127 TH1 *fJetDeltaPhi_PbPb[4][3][4][4]; //!PbPb, jetDeltaPhi
128 TH1 *fJetDeltaEta_PbPb[4][3][4][4]; //!PbPb, jetDeltaEta
b1e2cf83 129 TH1 *fJet1SelectPt_BG_PbPb[4][3][4][4]; //!PbPb, selectleadingjetPt
130 TH1 *fJet2SelectPt_BG_PbPb[4][3][4][4]; //!PbPb, selectsubleadingjetPt
aba4548d 131 TH2 *fJet1EP_PbPb[4][3][4][4]; //!PbPb, jet1DeltaEP
b1e2cf83 132 TH1 *fAj_PbPb[4][3][4][4]; //!PbPb, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
133
134 TH1 *fJetPt_MC[4][3]; //!MC, jetPt
135 TH1 *fJetPhi_MC[4][3]; //!MC, jetPhi
136 TH1 *fJetEta_MC[4][3]; //!MC, jetEta
137 TH2 *fJet_Phi_Eta_MC[4][3]; //!MC, jetPhi vs. jetEta
aba4548d 138 TH2 *fJetDeltaEP_MC[4][3]; //!MC, jetDeltaEP
b1e2cf83 139 TH1 *fJet1Pt_MC[4][3][4][4]; //!MC, leadingjetPt
140 TH1 *fJet2Pt_MC[4][3][4][4]; //!MC, subleadingjetPt
141 TH1 *fJetDeltaPhi_MC[4][3][4][4]; //!MC, jetDeltaPhi
142 TH1 *fJetDeltaEta_MC[4][3][4][4]; //!MC, jetDeltaEta
aba4548d 143 TH2 *fJet1EP_MC[4][3][4][4]; //!MC, jet1DeltaEP
b1e2cf83 144 TH1 *fAj_MC[4][3][4][4]; //!MC, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
145
146 TH1 *fJetPt_EMB[4][3]; //!EMB, jetPt
147 TH1 *fJetPhi_EMB[4][3]; //!EMB, jetPhi
148 TH1 *fJetEta_EMB[4][3]; //!EMB, jetEta
149 TH2 *fJet_Phi_Eta_EMB[4][3]; //!EMB, jetPhi vs. jetEta
150 TH1 *fJetPt_BG_EMB[4][3]; //!EMB, pT - rho * area
151 TH1 *fJetDeltaPt[4][3]; //!EMB, pT - rho * area - pT(embtrack)
aba4548d 152 TH2 *fJetDeltaEP_EMB[4][3]; //!EMB, jetDeltaEP
b1e2cf83 153 TH1 *fJet1Pt_EMB[4][3][4][4]; //!EMB, leadingjetPt
154 TH1 *fJet2Pt_EMB[4][3][4][4]; //!EMB, subleadingjetPt
155 TH1 *fJet1Pt_BG_EMB[4][3][4][4]; //!EMB, pT - rho * area, jet1
156 TH1 *fJet2Pt_BG_EMB[4][3][4][4]; //!EMB, pT - rho * area, jet2
157 TH1 *fJet1DeltaPt[4][3][4][4]; //!EMB, pT - rho * area - pT(embtrack), jet1
158 TH1 *fJet2DeltaPt[4][3][4][4]; //!EMB, pT - rho * area - pT(embtrack), jet2
159 TH1 *fJetDeltaPhi_EMB[4][3][4][4]; //!EMB, jetDeltaPhi
160 TH1 *fJetDeltaEta_EMB[4][3][4][4]; //!EMB, jetDeltaEta
b1e2cf83 161 TH1 *fJet1SelectPt_BG_EMB[4][3][4][4]; //!EMB, selectleadingjetPt
162 TH1 *fJet2SelectPt_BG_EMB[4][3][4][4]; //!EMB, selectsubleadingjetPt
163 TH1 *fJet1SelectDeltaPt[4][3][4][4]; //!EMB, selectleadingjetPt
164 TH1 *fJet2SelectDeltaPt[4][3][4][4]; //!EMB, selectsubleadingjetPt
aba4548d 165 TH2 *fJet1EP_EMB[4][3][4][4]; //!EMB, jet1DeltaEP
b1e2cf83 166 TH1 *fAj_EMB[4][3][4][4]; //!EMB, Aj(energy balance) -> Aj = (jet1-jet2)/(jet1+jet2)
167
168 TH1 *fHJetDeltaPhi_Aj0_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, no Aj cut
169 TH1 *fHJetDeltaPhi_Aj1_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj1(0.0 to 0.2)
170 TH1 *fHJetDeltaPhi_Aj2_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj2(0.2 to 0.4)
171 TH1 *fHJetDeltaPhi_Aj3_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj3(0.4 to 0.6)
172 TH1 *fHJetDeltaPhi_Aj4_PbPb[4][3][4][4][4]; //!PbPb, HjetDeltaPhi, Aj4(0.6 to 0.8)
aba4548d 173 TH1 *fHJet_EP_Aj0_PbPb[4][3][4][4][4]; //!PbPb, HjetEP, no Aj cut
174 TH1 *fHJet_EP_Aj1_PbPb[4][3][4][4][4]; //!PbPb, HjetEP, Aj1
175 TH1 *fHJet_EP_Aj2_PbPb[4][3][4][4][4]; //!PbPb, HjetEP, Aj2
176 TH1 *fHJet_EP_Aj3_PbPb[4][3][4][4][4]; //!PbPb, HjetEP, Aj3
177 TH1 *fHJet_EP_Aj4_PbPb[4][3][4][4][4]; //!PbPb, HjetEP, Aj4
b1e2cf83 178 TH1 *fHJetDeltaPhi_Aj0_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, no Aj cut
179 TH1 *fHJetDeltaPhi_Aj1_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj1(0.0 to 0.2)
180 TH1 *fHJetDeltaPhi_Aj2_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj2(0.2 to 0.4)
181 TH1 *fHJetDeltaPhi_Aj3_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj3(0.4 to 0.6)
182 TH1 *fHJetDeltaPhi_Aj4_MC[4][3][4][4][4]; //!MC, HjetDeltaPhi, Aj4(0.6 to 0.8)
aba4548d 183 TH1 *fHJet_EP_Aj0_MC[4][3][4][4][4]; //!MC, HjetEP, no Aj cut
184 TH1 *fHJet_EP_Aj1_MC[4][3][4][4][4]; //!MC, HjetEP, Aj1
185 TH1 *fHJet_EP_Aj2_MC[4][3][4][4][4]; //!MC, HjetEP, Aj2
186 TH1 *fHJet_EP_Aj3_MC[4][3][4][4][4]; //!MC, HjetEP, Aj3
187 TH1 *fHJet_EP_Aj4_MC[4][3][4][4][4]; //!MC, HjetEP, Aj4
b1e2cf83 188 TH1 *fHJetDeltaPhi_Aj0_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, no Aj cut
189 TH1 *fHJetDeltaPhi_Aj1_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj1(0.0 to 0.2)
190 TH1 *fHJetDeltaPhi_Aj2_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj2(0.2 to 0.4)
191 TH1 *fHJetDeltaPhi_Aj3_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj3(0.4 to 0.6)
192 TH1 *fHJetDeltaPhi_Aj4_EMB[4][3][4][4][4]; //!EMB, HjetDeltaPhi, Aj4(0.6 to 0.8)
aba4548d 193 TH1 *fHJet_EP_Aj0_EMB[4][3][4][4][4]; //!EMB, HjetEP, no Aj cut
194 TH1 *fHJet_EP_Aj1_EMB[4][3][4][4][4]; //!EMB, HjetEP, Aj1
195 TH1 *fHJet_EP_Aj2_EMB[4][3][4][4][4]; //!EMB, HjetEP, Aj2
196 TH1 *fHJet_EP_Aj3_EMB[4][3][4][4][4]; //!EMB, HjetEP, Aj3
197 TH1 *fHJet_EP_Aj4_EMB[4][3][4][4][4]; //!EMB, HjetEP, Aj4
b1e2cf83 198
b1e2cf83 199 private:
200 AliVEvent *fEvent;
201 Double_t fCentrality; //! V0M for current event
b1e2cf83 202
203 AliAnalysisTaskDijetHadron(const AliAnalysisTaskDijetHadron&); // not implemented
204 AliAnalysisTaskDijetHadron &operator=(const AliAnalysisTaskDijetHadron&); // not implemented
205
206 ClassDef(AliAnalysisTaskDijetHadron, 5) // Jet-Hadron analysis task
207};
208#endif