]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.h
Added fixes for centrality selection, use AddTaskCentrality from ANALYSIS.
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetSpectrum2.h
CommitLineData
3b7ffecf 1#ifndef ALIANALYSISTASKJETSPECTRUM2_H
2#define ALIANALYSISTASKJETSPECTRUM2_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7// **************************************
8// Task used for the correction of determiantion of reconstructed jet spectra
9// Compares input (gen) and output (rec) jets
10// *******************************************
11
12#include "AliAnalysisTaskSE.h"
13#include "THnSparse.h" // cannot forward declare ThnSparseF
14
15////////////////
16class AliJetHeader;
17class AliESDEvent;
18class AliAODEvent;
19class AliAODJet;
c2785065 20class AliAODJetEventBackground;
3b7ffecf 21class AliGenPythiaEventHeader;
22class AliCFManager;
23
24class TList;
25class TChain;
c2785065 26class TH1F;
3b7ffecf 27class TH2F;
28class TH3F;
29class TProfile;
b1cd90b5 30class TSTring;
3b7ffecf 31
32
33class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE
34{
35 public:
36 AliAnalysisTaskJetSpectrum2();
37 AliAnalysisTaskJetSpectrum2(const char* name);
38 virtual ~AliAnalysisTaskJetSpectrum2() {;}
39 // Implementation of interface methods
40 virtual void UserCreateOutputObjects();
41 virtual void Init();
42 virtual void LocalInit() { Init(); }
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *option);
45 virtual Bool_t Notify();
46
b5cc0c6d 47 virtual void SetUseGlobalSelection(Bool_t b){fUseGlobalSelection = b;}
f4132e7d 48 virtual void SetEventClass(Int_t i){fEventClass = i;}
3b7ffecf 49 virtual void SetExternalWeight(Float_t f){fExternalWeight = f;}
50 virtual void SetUseExternalWeightOnly(Bool_t b){fUseExternalWeightOnly = b;}
565584e8 51 virtual void SetAODJetInput(Bool_t b){fUseAODJetInput = b;}
52 virtual void SetAODTrackInput(Bool_t b){fUseAODTrackInput = b;}
53 virtual void SetAODMCInput(Bool_t b){fUseAODMCInput = b;}
3b7ffecf 54 virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;}
c2785065 55 virtual void SetBkgSubtraction(Bool_t b){fBkgSubtraction = b;}
6bd3fdae 56 virtual void SetFillCorrBkg(Int_t i){fFillCorrBkg = i;}
3b7ffecf 57 virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
9280dfa6 58 virtual void SetMinJetPt(Float_t f){fMinJetPt = f;}
59 virtual void SetDeltaPhiWindow(Float_t f){fDeltaPhiWindow = f;}
3b7ffecf 60 virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
61 virtual void SetBranchGen(const char* c){fBranchGen = c;}
62 virtual void SetBranchRec(const char* c){fBranchRec = c;}
c2785065 63 virtual void SetBranchBkg(const char* c){fBranchBkg = c;}
3b7ffecf 64 virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;}
65 virtual void SetTrackTypeRec(Int_t i){fTrackTypeRec = i;}
66 virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
f2dd0695 67 virtual void SetEventSelectionMask(UInt_t i){fEventSelectionMask = i;}
3b7ffecf 68 // use for the CF
69
70
71 // Helper
72 //
73
74 // we have different cases
75 // AOD reading -> MC from AOD
76 // ESD reading -> MC from Kinematics
77 // this has to match with our selection of input events
565584e8 78 enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
3b7ffecf 79 enum {kAnaMC = 0x1, kAnaMCESD = 0x2};
80 enum {kMaxJets = 4};
81 enum {kMaxCorrelation = 3};
82
83 //
84 // 0 all jets
85 // 1 all jet in eta window
86 // 2 all jets with partner
87 // 3 all jets in eta window with partner
88 // 4 all jets with partner in eta window
89 enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep};
90
91
92 private:
93
94 AliAnalysisTaskJetSpectrum2(const AliAnalysisTaskJetSpectrum2&);
95 AliAnalysisTaskJetSpectrum2& operator=(const AliAnalysisTaskJetSpectrum2&);
96
97 void MakeJetContainer();
98 Int_t GetListOfTracks(TList *list,Int_t type);
99
3493c3a9 100 AliJetHeader *fJetHeaderRec;//! The jet header that can be fetched from the userinfo
101 AliJetHeader *fJetHeaderGen;//! The jet header that can fetched from the userinfo
102 AliAODEvent *fAOD; //! where we take the jets from can be input or output AOD
103 THnSparseF *fhnJetContainer[kMaxStep*2]; //! like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same
104 THnSparseF *fhnCorrelation; //! response matrix for unfolding
105 THnSparseF *fhnCorrelationPhiZRec; //! response matrix for unfolding in max Z rec bins
3b7ffecf 106
3493c3a9 107 TF1 *f1PtScale; //! correction function to correct to the average true jet energy depending on p_T,rec
3b7ffecf 108
109 TString fBranchRec; // AOD branch name for reconstructed
110 TString fBranchGen; // AOD brnach for genereated
c2785065 111 TString fBranchBkg; //AOD branch for background
3b7ffecf 112
565584e8 113 Bool_t fUseAODJetInput; // take jet from input AOD not from ouptu AOD
114 Bool_t fUseAODTrackInput; // take track from input AOD not from ouptu AOD
115 Bool_t fUseAODMCInput; // take MC from input AOD not from ouptu AOD
b5cc0c6d 116 Bool_t fUseGlobalSelection; // Limit the eta of the generated jets
3b7ffecf 117 Bool_t fUseExternalWeightOnly; // use only external weight
118 Bool_t fLimitGenJetEta; // Limit the eta of the generated jets
c2785065 119 Bool_t fBkgSubtraction; //flag for bckg subtraction
6bd3fdae 120 Int_t fFillCorrBkg; //flag for filling bckg response matrix
f2dd0695 121 UInt_t fFilterMask; // filter bit for slecected tracks
122 UInt_t fEventSelectionMask; // Selection information used to filter events
3b7ffecf 123 Int_t fAnalysisType; // Analysis type
124 Int_t fTrackTypeRec; // type of tracks used for FF
125 Int_t fTrackTypeGen; // type of tracks used for FF
f4132e7d 126 Int_t fEventClass; // event class to be looked at for this instance of the task
3b7ffecf 127 Float_t fAvgTrials; // Average nimber of trials
128 Float_t fExternalWeight; // external weight
129 Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen
9280dfa6 130 Float_t fMinJetPt; // limits the jet p_T in addition to what already is done in the jet finder, this is important for jet matching for JF with lo threshold
26fa06fb 131 Float_t fDeltaPhiWindow; // minium angle between dijets
132
3b7ffecf 133
3493c3a9 134 TProfile* fh1Xsec; //! pythia cross section and trials
135 TH1F* fh1Trials; //! trials are added
136 TH1F* fh1PtHard; //! Pt har of the event...
137 TH1F* fh1PtHardNoW; //! Pt har of the event without weigt
138 TH1F* fh1PtHardTrials; //! Number of trials
57ca1193 139 TH1F* fh1ZVtx; //! z-vtx distribution
3493c3a9 140 TH1F* fh1NGenJets; //! nr of gen jets
141 TH1F* fh1NRecJets; //! nr of rec jets
142 TH1F* fh1PtTrackRec; //! track pt
143 TH1F* fh1SumPtTrackRec; //! sum over all track pT
144 TH1F* fh1SumPtTrackAreaRec; //! sum over all track pT
145 TH1F* fh1TmpRho; //! just temporary histo for calculation
edfbe476 146
147
3493c3a9 148 TH1F* fh1PtRecIn[kMaxJets]; //! Jet pt for all this info is also in the THNsparse
149 TH1F* fh1PtGenIn[kMaxJets]; //! Jet pt with corellated generated jet
3b7ffecf 150
3493c3a9 151 TH1F* fh1PtJetsRecIn; //! Jet pt for all jets
d8f21f85 152 TH1F* fh1PtJetsGenIn; //! Jet pt for all jets
3493c3a9 153 TH1F* fh1PtJetsLeadingRecIn; //! Jet pt for all jets
154 TH1F* fh1PtTracksRecIn; //! track pt for all tracks
155 TH1F* fh1PtTracksLeadingRecIn; //! track pt for all tracks
156 TH1F* fh1PtTracksGenIn; //! track pt for all tracks
c8eabe24 157
cc0649e4 158
3493c3a9 159 TH2F* fh2NRecJetsPt; //! Number of found jets above threshold
160 TH2F* fh2NRecTracksPt; //! Number of found tracks above threshold
161 TH2F* fh2JetsLeadingPhiEta; //! jet correlation with leading jet
162 TH2F* fh2JetsLeadingPhiPt; //! jet correlation with leading jet
163 TH2F* fh2TracksLeadingPhiEta; //! track correlation with leading track
164 TH2F* fh2TracksLeadingPhiPt; //! track correlation with leading track
165 TH2F* fh2TracksLeadingJetPhiPt; //! track correlation with leading track
166 TH2F* fh2JetPtJetPhi; //! Phi distribution of accepted jets
167 TH2F* fh2TrackPtTrackPhi; //! phi distribution of accepted tracks
168 TH2F* fh2RelPtFGen; //! relative difference between generated and found
169 TH2F* fh2PhiPt[kMaxJets]; //! delta phi correlation of tracks with the jet
170 TH2F* fh2PhiEta[kMaxJets]; //! eta phi correlation of tracks with the jet
171 TH2F* fh2RhoPtRec[kMaxJets]; //! jet shape variable rho
172 TH2F* fh2PsiPtRec[kMaxJets]; //! jet shape variable psi
7f9012c1 173 TH2F* fh2RhoPtGen[kMaxJets]; //!
174 TH2F* fh2PsiPtGen[kMaxJets]; //!
3493c3a9 175 TH2F* fh2FragRec[kMaxJets]; //! fragmentation function
176 TH2F* fh2FragLnRec[kMaxJets]; //! fragmetation in xi
177 TH2F* fh2FragGen[kMaxJets]; //! fragmentation function
178 TH2F* fh2FragLnGen[kMaxJets]; //! fragmetation in xi
3b7ffecf 179
9a83d4af 180
181
26fa06fb 182 // Dijet histos
3493c3a9 183 TH2F* fh2DijetDeltaPhiPt; //! dijet delta phi vs pt
184 TH2F* fh2DijetAsymPt; //! dijet asym vs pt
185 TH2F* fh2DijetAsymPtCut; //! dijet asym vs pt after delta phi cut
186 TH2F* fh2DijetDeltaPhiDeltaEta; //! dijet delta phi delta eta
187 TH2F* fh2DijetPt2vsPt1; //! dijet pt2 vs pt1
188 TH2F* fh2DijetDifvsSum; //! dijet dif vs sum
189 TH1F* fh1DijetMinv; //! dijet inv mass
190 TH1F* fh1DijetMinvCut; //! dijet inv after delta phi cut
c2785065 191 //background histos
7f9012c1 192
193 TH1F* fh1Bkg1; //! background estimate, all jets
194 TH1F* fh1Bkg2; //! background estimate, wo 2 hardest jet
195 TH1F* fh1Bkg3; //! background estimate, random jets
3493c3a9 196 TH1F* fh1Sigma1; //! background fluctuations, all jets
197 TH1F* fh1Sigma2; //! background fluctuations, wo hardest jet
7f9012c1 198 TH1F* fh1Sigma3; //! background fluctuations,random jets
199 TH1F* fh1Area1; //! average background jet area, all jets
200 TH1F* fh1Area2; //! average background jet area, wo 2 hardest jet
201 TH1F* fh1Area3; //! average background jet area, random jets
3493c3a9 202 TH1F* fh1Ptjet; //! rec jet spectrum
203 TH1F* fh1Ptjetsub1;//! subtracted jet spectrum (Bkg1)
204 TH1F* fh1Ptjetsub2; //! subtracted jet spectrum (Bkg2)
7f9012c1 205 TH1F* fh1Ptjetsub3; //! subtracted jet spectrum (Bkg3)
3493c3a9 206 TH1F* fh1Ptjethardest; //! rec hardest jet spectrum
207 TH1F* fh1Ptjetsubhardest1;//! subtracted hardest jet spectrum (Bkg1)
208 TH1F* fh1Ptjetsubhardest2;//! subtracted hardest jet spectrum (Bkg2)
7f9012c1 209 TH1F* fh1Ptjetsubhardest3;//! subtracted hardest jet spectrum (Bkg3)
6bd3fdae 210 TH2F* fh2Rhovspthardest1;//! rho vs hardest subtracted jet pt (Bkg1)
211 TH2F* fh2Rhovspthardest2;//! rho vs hardest subtracted jet pt (Bkg2)
212 TH2F* fh2Rhovspthardest3;//! rho vs hardest subtracted jet pt (Bkg3)
213 TH2F* fh2Errorvspthardest1;//! relative error vs hardest subtracted jet pt (Bkg1)
214 TH2F* fh2Errorvspthardest2;//! relative error vs hardest subtracted jet pt (Bkg2)
215 TH2F* fh2Errorvspthardest3;//! relative error vs hardest subtracted jet pt (Bkg3)
f4132e7d 216 TList *fHistList; //! Output list
3b7ffecf 217
218
f4132e7d 219 ClassDef(AliAnalysisTaskJetSpectrum2, 11) // Analysis task for standard jet analysis
3b7ffecf 220};
221
222#endif