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