]>
Commit | Line | Data |
---|---|---|
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 | //////////////// | |
16 | class AliJetHeader; | |
17 | class AliESDEvent; | |
18 | class AliAODEvent; | |
19 | class AliAODJet; | |
20 | class AliGenPythiaEventHeader; | |
21 | class AliCFManager; | |
22 | ||
23 | class TList; | |
24 | class TChain; | |
25 | class TH2F; | |
26 | class TH3F; | |
27 | class TProfile; | |
b1cd90b5 | 28 | class TSTring; |
3b7ffecf | 29 | |
30 | ||
31 | class AliAnalysisTaskJetSpectrum2 : public AliAnalysisTaskSE | |
32 | { | |
33 | public: | |
34 | AliAnalysisTaskJetSpectrum2(); | |
35 | AliAnalysisTaskJetSpectrum2(const char* name); | |
36 | virtual ~AliAnalysisTaskJetSpectrum2() {;} | |
37 | // Implementation of interface methods | |
38 | virtual void UserCreateOutputObjects(); | |
39 | virtual void Init(); | |
40 | virtual void LocalInit() { Init(); } | |
41 | virtual void UserExec(Option_t *option); | |
42 | virtual void Terminate(Option_t *option); | |
43 | virtual Bool_t Notify(); | |
44 | ||
b5cc0c6d | 45 | virtual void SetUseGlobalSelection(Bool_t b){fUseGlobalSelection = b;} |
3b7ffecf | 46 | virtual void SetExternalWeight(Float_t f){fExternalWeight = f;} |
47 | virtual void SetUseExternalWeightOnly(Bool_t b){fUseExternalWeightOnly = b;} | |
565584e8 | 48 | virtual void SetAODJetInput(Bool_t b){fUseAODJetInput = b;} |
49 | virtual void SetAODTrackInput(Bool_t b){fUseAODTrackInput = b;} | |
50 | virtual void SetAODMCInput(Bool_t b){fUseAODMCInput = b;} | |
3b7ffecf | 51 | virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;} |
52 | virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;} | |
9280dfa6 | 53 | virtual void SetMinJetPt(Float_t f){fMinJetPt = f;} |
54 | virtual void SetDeltaPhiWindow(Float_t f){fDeltaPhiWindow = f;} | |
3b7ffecf | 55 | virtual void SetAnalysisType(Int_t i){fAnalysisType = i;} |
56 | virtual void SetBranchGen(const char* c){fBranchGen = c;} | |
57 | virtual void SetBranchRec(const char* c){fBranchRec = c;} | |
58 | virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;} | |
59 | virtual void SetTrackTypeRec(Int_t i){fTrackTypeRec = i;} | |
60 | virtual void SetFilterMask(UInt_t i){fFilterMask = i;} | |
61 | // use for the CF | |
62 | ||
63 | ||
64 | // Helper | |
65 | // | |
66 | ||
67 | // we have different cases | |
68 | // AOD reading -> MC from AOD | |
69 | // ESD reading -> MC from Kinematics | |
70 | // this has to match with our selection of input events | |
565584e8 | 71 | enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance}; |
3b7ffecf | 72 | enum {kAnaMC = 0x1, kAnaMCESD = 0x2}; |
73 | enum {kMaxJets = 4}; | |
74 | enum {kMaxCorrelation = 3}; | |
75 | ||
76 | // | |
77 | // 0 all jets | |
78 | // 1 all jet in eta window | |
79 | // 2 all jets with partner | |
80 | // 3 all jets in eta window with partner | |
81 | // 4 all jets with partner in eta window | |
82 | enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep}; | |
83 | ||
84 | ||
85 | private: | |
86 | ||
87 | AliAnalysisTaskJetSpectrum2(const AliAnalysisTaskJetSpectrum2&); | |
88 | AliAnalysisTaskJetSpectrum2& operator=(const AliAnalysisTaskJetSpectrum2&); | |
89 | ||
90 | void MakeJetContainer(); | |
91 | Int_t GetListOfTracks(TList *list,Int_t type); | |
92 | ||
93 | AliJetHeader *fJetHeaderRec; | |
94 | AliJetHeader *fJetHeaderGen; | |
95 | AliAODEvent *fAOD; // where we take the jets from can be input or output AOD | |
96 | THnSparseF *fhnJetContainer[kMaxStep*2]; // like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same | |
97 | THnSparseF *fhnCorrelation; // response matrix for unfolding | |
c8eabe24 | 98 | THnSparseF *fhnCorrelationPhiZRec; // response matrix for unfolding in max Z rec bins |
3b7ffecf | 99 | |
c8eabe24 | 100 | TF1 *f1PtScale; // correction function to correct to the average true jet energy depending on p_T,rec |
3b7ffecf | 101 | |
102 | TString fBranchRec; // AOD branch name for reconstructed | |
103 | TString fBranchGen; // AOD brnach for genereated | |
104 | ||
565584e8 | 105 | Bool_t fUseAODJetInput; // take jet from input AOD not from ouptu AOD |
106 | Bool_t fUseAODTrackInput; // take track from input AOD not from ouptu AOD | |
107 | Bool_t fUseAODMCInput; // take MC from input AOD not from ouptu AOD | |
b5cc0c6d | 108 | Bool_t fUseGlobalSelection; // Limit the eta of the generated jets |
3b7ffecf | 109 | Bool_t fUseExternalWeightOnly; // use only external weight |
110 | Bool_t fLimitGenJetEta; // Limit the eta of the generated jets | |
111 | UInt_t fFilterMask; // filter bit for slecected tracks | |
112 | Int_t fAnalysisType; // Analysis type | |
113 | Int_t fTrackTypeRec; // type of tracks used for FF | |
114 | Int_t fTrackTypeGen; // type of tracks used for FF | |
115 | Float_t fAvgTrials; // Average nimber of trials | |
116 | Float_t fExternalWeight; // external weight | |
117 | Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen | |
9280dfa6 | 118 | 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 | 119 | Float_t fDeltaPhiWindow; // minium angle between dijets |
120 | ||
3b7ffecf | 121 | |
122 | TProfile* fh1Xsec; // pythia cross section and trials | |
123 | TH1F* fh1Trials; // trials are added | |
124 | TH1F* fh1PtHard; // Pt har of the event... | |
125 | TH1F* fh1PtHardNoW; // Pt har of the event without weigt | |
126 | TH1F* fh1PtHardTrials; // Number of trials | |
127 | TH1F* fh1NGenJets; // nr of gen jets | |
128 | TH1F* fh1NRecJets; // nr of rec jets | |
edfbe476 | 129 | TH1F* fh1PtTrackRec; // track pt |
130 | TH1F* fh1SumPtTrackRec; // sum over all track pT | |
131 | TH1F* fh1SumPtTrackAreaRec; // sum over all track pT | |
c8eabe24 | 132 | TH1F* fh1TmpRho; // just temporary histo for calculation |
edfbe476 | 133 | |
134 | ||
3b7ffecf | 135 | TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all this info is also in the THNsparse |
136 | TH1F* fh1PtGenIn[kMaxJets]; // Jet pt with corellated generated jet | |
137 | ||
cc0649e4 | 138 | TH1F* fh1PtJetsRecIn; // Jet pt for all jets |
565584e8 | 139 | TH1F* fh1PtJetsLeadingRecIn; // Jet pt for all jets |
cc0649e4 | 140 | TH1F* fh1PtTracksRecIn; // track pt for all tracks |
565584e8 | 141 | TH1F* fh1PtTracksLeadingRecIn; // track pt for all tracks |
cc0649e4 | 142 | TH1F* fh1PtTracksGenIn; // track pt for all tracks |
c8eabe24 | 143 | |
cc0649e4 | 144 | |
145 | TH2F* fh2NRecJetsPt; // Number of found jets above threshold | |
146 | TH2F* fh2NRecTracksPt; // Number of found tracks above threshold | |
565584e8 | 147 | TH2F* fh2JetsLeadingPhiEta; // jet correlation with leading jet |
148 | TH2F* fh2JetsLeadingPhiPt; // jet correlation with leading jet | |
149 | TH2F* fh2TracksLeadingPhiEta; // track correlation with leading track | |
150 | TH2F* fh2TracksLeadingPhiPt; // track correlation with leading track | |
cf049e94 | 151 | TH2F* fh2TracksLeadingJetPhiPt; // track correlation with leading track |
c8eabe24 | 152 | TH2F* fh2JetPtJetPhi; // Phi distribution of accepted jets |
153 | TH2F* fh2TrackPtTrackPhi; // phi distribution of accepted tracks | |
edfbe476 | 154 | TH2F* fh2PhiPt[kMaxJets]; // delta phi correlation of tracks with the jet |
155 | TH2F* fh2PhiEta[kMaxJets]; // eta phi correlation of tracks with the jet | |
c8eabe24 | 156 | TH2F* fh2RhoPtRec[kMaxJets]; // jet shape variable rho |
157 | TH2F* fh2PsiPtRec[kMaxJets]; // jet shape variable psi | |
158 | TH2F* fh2RhoPtGen[kMaxJets]; // | |
159 | TH2F* fh2PsiPtGen[kMaxJets]; // | |
3b7ffecf | 160 | TH2F* fh2FragRec[kMaxJets]; // fragmentation function |
161 | TH2F* fh2FragLnRec[kMaxJets]; // fragmetation in xi | |
3b7ffecf | 162 | TH2F* fh2FragGen[kMaxJets]; // fragmentation function |
163 | TH2F* fh2FragLnGen[kMaxJets]; // fragmetation in xi | |
164 | ||
26fa06fb | 165 | // Dijet histos |
166 | TH2F* fh2DijetDeltaPhiPt; // dijet delta phi vs pt | |
167 | TH2F* fh2DijetAsymPt; // dijet asym vs pt | |
168 | TH2F* fh2DijetAsymPtCut; // dijet asym vs pt after delta phi cut | |
169 | TH2F* fh2DijetDeltaPhiDeltaEta; // dijet delta phi delta eta | |
170 | TH2F* fh2DijetPt2vsPt1; // dijet pt2 vs pt1 | |
171 | TH2F* fh2DijetDifvsSum; // dijet dif vs sum | |
172 | TH1F* fh1DijetMinv; // dijet inv mass | |
173 | TH1F* fh1DijetMinvCut; // dijet inv after delta phi cut | |
174 | ||
3b7ffecf | 175 | |
176 | TList *fHistList; // Output list | |
177 | ||
178 | ||
c8eabe24 | 179 | ClassDef(AliAnalysisTaskJetSpectrum2, 4) // Analysis task for standard jet analysis |
3b7ffecf | 180 | }; |
181 | ||
182 | #endif |