]>
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;} | |
53 | virtual void SetAnalysisType(Int_t i){fAnalysisType = i;} | |
54 | virtual void SetBranchGen(const char* c){fBranchGen = c;} | |
55 | virtual void SetBranchRec(const char* c){fBranchRec = c;} | |
56 | virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;} | |
57 | virtual void SetTrackTypeRec(Int_t i){fTrackTypeRec = i;} | |
58 | virtual void SetFilterMask(UInt_t i){fFilterMask = i;} | |
59 | // use for the CF | |
60 | ||
61 | ||
62 | // Helper | |
63 | // | |
64 | ||
65 | // we have different cases | |
66 | // AOD reading -> MC from AOD | |
67 | // ESD reading -> MC from Kinematics | |
68 | // this has to match with our selection of input events | |
565584e8 | 69 | enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance}; |
3b7ffecf | 70 | enum {kAnaMC = 0x1, kAnaMCESD = 0x2}; |
71 | enum {kMaxJets = 4}; | |
72 | enum {kMaxCorrelation = 3}; | |
73 | ||
74 | // | |
75 | // 0 all jets | |
76 | // 1 all jet in eta window | |
77 | // 2 all jets with partner | |
78 | // 3 all jets in eta window with partner | |
79 | // 4 all jets with partner in eta window | |
80 | enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep}; | |
81 | ||
82 | ||
83 | private: | |
84 | ||
85 | AliAnalysisTaskJetSpectrum2(const AliAnalysisTaskJetSpectrum2&); | |
86 | AliAnalysisTaskJetSpectrum2& operator=(const AliAnalysisTaskJetSpectrum2&); | |
87 | ||
88 | void MakeJetContainer(); | |
89 | Int_t GetListOfTracks(TList *list,Int_t type); | |
90 | ||
91 | AliJetHeader *fJetHeaderRec; | |
92 | AliJetHeader *fJetHeaderGen; | |
93 | AliAODEvent *fAOD; // where we take the jets from can be input or output AOD | |
94 | THnSparseF *fhnJetContainer[kMaxStep*2]; // like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same | |
95 | THnSparseF *fhnCorrelation; // response matrix for unfolding | |
96 | ||
97 | ||
98 | TString fBranchRec; // AOD branch name for reconstructed | |
99 | TString fBranchGen; // AOD brnach for genereated | |
100 | ||
565584e8 | 101 | Bool_t fUseAODJetInput; // take jet from input AOD not from ouptu AOD |
102 | Bool_t fUseAODTrackInput; // take track from input AOD not from ouptu AOD | |
103 | Bool_t fUseAODMCInput; // take MC from input AOD not from ouptu AOD | |
b5cc0c6d | 104 | Bool_t fUseGlobalSelection; // Limit the eta of the generated jets |
3b7ffecf | 105 | Bool_t fUseExternalWeightOnly; // use only external weight |
106 | Bool_t fLimitGenJetEta; // Limit the eta of the generated jets | |
107 | UInt_t fFilterMask; // filter bit for slecected tracks | |
108 | Int_t fAnalysisType; // Analysis type | |
109 | Int_t fTrackTypeRec; // type of tracks used for FF | |
110 | Int_t fTrackTypeGen; // type of tracks used for FF | |
111 | Float_t fAvgTrials; // Average nimber of trials | |
112 | Float_t fExternalWeight; // external weight | |
113 | Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen | |
114 | ||
115 | TProfile* fh1Xsec; // pythia cross section and trials | |
116 | TH1F* fh1Trials; // trials are added | |
117 | TH1F* fh1PtHard; // Pt har of the event... | |
118 | TH1F* fh1PtHardNoW; // Pt har of the event without weigt | |
119 | TH1F* fh1PtHardTrials; // Number of trials | |
120 | TH1F* fh1NGenJets; // nr of gen jets | |
121 | TH1F* fh1NRecJets; // nr of rec jets | |
edfbe476 | 122 | TH1F* fh1PtTrackRec; // track pt |
123 | TH1F* fh1SumPtTrackRec; // sum over all track pT | |
124 | TH1F* fh1SumPtTrackAreaRec; // sum over all track pT | |
125 | ||
126 | ||
3b7ffecf | 127 | TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all this info is also in the THNsparse |
128 | TH1F* fh1PtGenIn[kMaxJets]; // Jet pt with corellated generated jet | |
129 | ||
cc0649e4 | 130 | TH1F* fh1PtJetsRecIn; // Jet pt for all jets |
565584e8 | 131 | TH1F* fh1PtJetsLeadingRecIn; // Jet pt for all jets |
cc0649e4 | 132 | TH1F* fh1PtTracksRecIn; // track pt for all tracks |
565584e8 | 133 | TH1F* fh1PtTracksLeadingRecIn; // track pt for all tracks |
cc0649e4 | 134 | TH1F* fh1PtTracksGenIn; // track pt for all tracks |
135 | ||
136 | ||
137 | TH2F* fh2NRecJetsPt; // Number of found jets above threshold | |
138 | TH2F* fh2NRecTracksPt; // Number of found tracks above threshold | |
565584e8 | 139 | TH2F* fh2JetsLeadingPhiEta; // jet correlation with leading jet |
140 | TH2F* fh2JetsLeadingPhiPt; // jet correlation with leading jet | |
141 | TH2F* fh2TracksLeadingPhiEta; // track correlation with leading track | |
142 | TH2F* fh2TracksLeadingPhiPt; // track correlation with leading track | |
cf049e94 | 143 | TH2F* fh2TracksLeadingJetPhiPt; // track correlation with leading track |
edfbe476 | 144 | TH2F* fh2PhiPt[kMaxJets]; // delta phi correlation of tracks with the jet |
145 | TH2F* fh2PhiEta[kMaxJets]; // eta phi correlation of tracks with the jet | |
146 | ||
3b7ffecf | 147 | TH2F* fh2FragRec[kMaxJets]; // fragmentation function |
148 | TH2F* fh2FragLnRec[kMaxJets]; // fragmetation in xi | |
149 | ||
150 | TH2F* fh2FragGen[kMaxJets]; // fragmentation function | |
151 | TH2F* fh2FragLnGen[kMaxJets]; // fragmetation in xi | |
152 | ||
153 | ||
154 | TList *fHistList; // Output list | |
155 | ||
156 | ||
157 | ClassDef(AliAnalysisTaskJetSpectrum2, 1) // Analysis task for standard jet analysis | |
158 | }; | |
159 | ||
160 | #endif |