]>
Commit | Line | Data |
---|---|---|
62567a80 | 1 | #ifndef ALIJETANALYSIS_H |
2 | #define ALIJETANALYSIS_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
83a444b1 | 6 | |
62567a80 | 7 | //--------------------------------------------------------------------- |
8 | // JetAnalysis class | |
83a444b1 | 9 | // Perform Jet Analysis on already found jets |
10 | // Author: andreas.morsch@cern.ch, jgcn@mail.cern.ch | |
11 | // mercedes.lopez.noriega@cern.ch | |
62567a80 | 12 | //--------------------------------------------------------------------- |
83a444b1 | 13 | |
62567a80 | 14 | #include <TObject.h> |
83a444b1 | 15 | class AliLeading; |
16 | class AliJet; | |
17 | class TH1; | |
18 | class TH1F; | |
19 | class TH2F; | |
20 | class TProfile; | |
21 | class TLorentzVector; | |
22 | ||
62567a80 | 23 | class AliJetAnalysis : public TObject |
24 | { | |
25 | public: | |
26 | ||
27 | AliJetAnalysis(); | |
83a444b1 | 28 | virtual ~AliJetAnalysis(); |
62567a80 | 29 | |
83a444b1 | 30 | void Analyze(); |
31 | // define histograms | |
32 | void DefineHistograms(); | |
33 | void DefineKineH(); | |
34 | void DefineCorrH(); | |
35 | void DefineCorr50H(); | |
36 | void DefineShapH(); | |
37 | void DefineFragH(); | |
38 | void DefineTrigH(); | |
39 | void DefineJtH(); | |
40 | void DefinedNdxiH(); | |
41 | // fill histograms | |
42 | void FillHistograms(); | |
43 | void FillKineH(); | |
44 | void FillCorrH(); | |
45 | void FillCorr50H(); | |
46 | void FillShapH(Float_t r); | |
47 | void FillFragH(); | |
48 | void FillTrigH(); | |
49 | void FillJtH(); | |
50 | void FilldNdxiH(); | |
51 | void FillBkgd(Int_t eventN, Int_t runN); | |
52 | // normalize histograms | |
53 | void NormHistograms(); | |
54 | // plot histograms | |
55 | void PlotHistograms(); | |
56 | void PlotKineH() const; | |
57 | void PlotCorrH() const; | |
58 | void PlotCorr50H() const; | |
59 | void PlotShapH() const; | |
60 | void PlotFragH() const; | |
61 | void PlotTrigH(); | |
62 | // save histograms | |
63 | void SaveHistograms(); | |
64 | void SaveKineH(); | |
65 | void SaveCorrH(); | |
66 | void SaveCorr50H(); | |
67 | void SaveShapH(); | |
68 | void SaveFragH(); | |
69 | void SaveTrigH(); | |
70 | void SaveJtH(); | |
71 | void SavedNdxiH(); | |
72 | // other functions | |
73 | void Shape(AliJet *j,TH1F* hs, TH1F* hr, TH1F* ha, TH2F* hd, TH2F* hp, TH1F* wd, Float_t r); | |
74 | void FragFun(AliJet *j,TH1F* hs, TH1F* hr, TH1F* ha); | |
75 | void Correlation(TLorentzVector *lv1,TLorentzVector *lv2,TH2F *h1, TH2F *h2, TH2F *h3, TH2F *h4); | |
76 | void Correlation50(AliJet *j,TLorentzVector *lv1,TLorentzVector *lv2,TH2F *h1, TH2F *h2, TH2F *h3, TH2F *h4); | |
77 | // setters | |
78 | void SetDirectory(char* directory) | |
79 | {fDirectory = directory;} // directory where file with jets is | |
80 | void SetBkgdDirectory(char* directory) | |
81 | {fBkgdDirectory = directory;} // directory where file with background is | |
82 | void SetOutputFile(char* file) {fFile = file;} // file where plots will be saved | |
83 | void SetPercentage(Float_t p) {fPercentage = p;} // minimum percentage of tracks coming from pythia (very aprox.) | |
84 | void SetEventRange(Int_t imin, Int_t imax) | |
85 | {fEventMin = imin; fEventMax = imax;} // first and last event | |
86 | void SetRunRange(Int_t imin, Int_t imax) | |
87 | {fRunMin = imin; fRunMax = imax;} // first and last run | |
88 | void SetMinimumMult(Int_t m){fminMult = m;} // minimum multiplicity cut | |
89 | void SetPythia(Bool_t f = kFALSE){fPythia = f;} // If only pythia, to save everything... | |
90 | void SetDoJt(Bool_t f = kTRUE){fDoJt = f;} // To get j_T distribution | |
91 | void SetDodNdxi(Bool_t f = kTRUE){fDodNdxi = f;} // To get #xi distribution | |
92 | void SetDoBkgd(Bool_t f = kTRUE) {fDoBkgd = f;} // To get the bkgd for j_T, xi and dEdr in a hijing event | |
93 | void SetDoLeadPart(Bool_t f = kTRUE){fDoPart = f;}// To make plots for leading particle | |
94 | void SetDoGenJet(Bool_t f = kTRUE){fDoGenJ = f;} // To make plots for generated jets | |
95 | void SetDoRecJet(Bool_t f = kTRUE){fDoRecJ = f;} // To make plots for reconstructed jets | |
96 | void SetDoKinematics(Bool_t f = kTRUE){fDoKine = f;} // To make the kine plots | |
97 | void SetDoCorrelations(Bool_t f = kTRUE){fDoCorr = f;} // Correlation histograms | |
98 | void SetDoCorr50(Bool_t f = kFALSE){fDoCorr50 = f;} // Correlation histograms when one particle has more than 50% E | |
99 | void SetDoShape(Bool_t f = kTRUE){fDoShap = f;} // Shape plots | |
100 | void SetDoFragmentations(Bool_t f = kTRUE){fDoFrag = f;} // Fragmentation | |
101 | void SetDoTriggerBias(Bool_t f = kTRUE){fDoTrig = f;} // Trigger bias plots | |
102 | void SetDivideEnergy(Float_t Efactor){fEfactor = Efactor;} // Divides E of rec.jet by Efactor | |
103 | void SetProperties(TH1* h,const char* x, const char* y) const; | |
104 | void SetReaderHeader(char *s="AliJetKineReaderHeader"){fReaderHeader = s;} | |
105 | void SetdEdrWeight(); | |
106 | void SetPartPtCut(Float_t c){fPartPtCut = c;} | |
107 | void SetdrJt(Float_t r){fdrJt = r;} | |
108 | void SetdrdNdxi(Float_t r){fdrdNdxi = r;} | |
109 | void SetdrdEdr(Float_t r){fdrdEdr = r;} | |
110 | // getters | |
111 | Float_t GetdEdrWeight(Float_t eta, Float_t r); | |
112 | ||
62567a80 | 113 | private: |
83a444b1 | 114 | char* fReaderHeader; // Reader header |
115 | char* fDirectory; // Directory | |
116 | char* fBkgdDirectory; // Directory for background | |
117 | char* fFile; // Output file name | |
118 | Int_t fEventMin; // Minimum event number | |
119 | Int_t fEventMax; // Maximum event number | |
120 | Int_t fRunMin; // Minimum run number | |
121 | Int_t fRunMax; // Maximum run number | |
122 | Int_t fminMult; // Minimum multiplicity for events | |
123 | Float_t fPercentage; // percentage of pt from signal particles to accept a jet | |
124 | Float_t fPartPtCut; // cut in the pt of particles in histos | |
125 | Float_t fdrJt; // maximum dr for Jt plot | |
126 | Float_t fdrdNdxi; // maximum dr for dN/dxi plot | |
127 | Float_t fdrdEdr; // maximum dr for dE/dr plot | |
128 | Float_t fEfactor; // factor by which energy the reconstructed jet will be divided | |
129 | ||
130 | Float_t fp0; // percentage of tracks in reconstructed jet coming from pythia | |
131 | // so far calculated in aprox. way, it needs to be improved! | |
132 | // for background from hijing events: | |
133 | Float_t fPtJ; // P_T of the pythia jet | |
134 | Float_t fEJ; // Energy of the pythia jet | |
135 | Float_t fEtaJ; // Eta of the pythia jet | |
136 | Float_t fPhiJ; // Phi of the pythia jet | |
137 | Float_t fjv3X, fjv3Y, fjv3Z; // x,y,z of the pythia jet | |
138 | ||
139 | // user options | |
140 | Bool_t fPythia; // if pythia events | |
141 | Bool_t fDoPart; // do analysis of leading particle | |
142 | Bool_t fDoGenJ; // do analysis of leading generated jet | |
143 | Bool_t fDoRecJ; // do analysis of leading rec jet | |
144 | Bool_t fDoKine; // do kinematic plots | |
145 | Bool_t fDoCorr; // do correlation plots | |
146 | Bool_t fDoCorr50; // do correlation plots when one track more than 50% of jet energy | |
147 | Bool_t fDoShap; // do shape plots | |
148 | Bool_t fDoFrag; // do fragmentation plots | |
149 | Bool_t fDoTrig; // do trigger bias plots | |
150 | Bool_t fDoJt; // do jt histo | |
151 | Bool_t fDodNdxi; // do dN/dxi histo | |
152 | Bool_t fDoBkgd; // get dN/dxi bkgd using hijing tracks only | |
62567a80 | 153 | |
83a444b1 | 154 | // weights |
155 | Float_t fWeight; // event weight | |
156 | Float_t fWShapR; // weighted number of jets | |
157 | Float_t fWFragR; // weighted number of jets | |
158 | Float_t fWeightdEdr[10][20]; // weight for acceptance of dE/dr histo | |
159 | Float_t fWdEdr; // weighted number of events for dEdr histo | |
160 | Float_t fWJt; // weight for Jt | |
161 | Float_t fWdNdxi; // weight fro dNd#xi | |
162 | ||
163 | // leading hets and particles | |
164 | AliLeading* fPart; // pointer to leading particle | |
165 | AliJet* fGenJ; // pointer to leading generated jet | |
166 | AliJet* fRecJ; // pointer to leading reconstructed jet | |
167 | AliJet* fRecB; // pointer to leading reconstructed jet for background | |
168 | ||
169 | // kine histos | |
170 | TH1F *fRKineEneH; // Reconstructed energy histo | |
171 | TH1F *fRKinePtH; // Reconstructed Pt histo | |
172 | TH1F *fRKinePhiH; // Reconstructed phi histo | |
173 | TH1F *fRKineEtaH; // Reconstructed eta histo | |
174 | TH1F *fGKineEneH; // Generated energy histo | |
175 | TH1F *fGKinePtH; // Generated Pt histo | |
176 | TH1F *fGKinePhiH; // Generated phi histo | |
177 | TH1F *fGKineEtaH; // Generated eta histo | |
178 | TH1F *fPKineEneH; // Pythia energy histo | |
179 | TH1F *fPKinePtH; // Pythia Pt histo | |
180 | TH1F *fPKinePhiH; // Pythia phi histo | |
181 | TH1F *fPKineEtaH; // Pythia eta histo | |
182 | ||
183 | // correlation histograms | |
184 | TH2F *fPGCorrEneH; // Energy correlation part-gen jet | |
185 | TH2F *fPGCorrPtH; // Pt correlation part-gen jet | |
186 | TH2F *fPGCorrEtaH; // Pseudorapidity correlation part-gen jet | |
187 | TH2F *fPGCorrPhiH; // Azimuthal angle correlation part-gen jet | |
188 | TH2F *fPRCorrEneH; // Energy correlation part-rec jet | |
189 | TH2F *fPRCorrPtH; // Pt correlation part-rec jet | |
190 | TH2F *fPRCorrEtaH; // Pseudorapidity correlation part-rec jet | |
191 | TH2F *fPRCorrPhiH; // Azimuthal angle correlation part-rec jet | |
192 | TH2F *fRGCorrEneH; // Energy correlation rec jet-gen jet | |
193 | TH2F *fRGCorrPtH; // Pt correlation rec jet-gen jet | |
194 | TH2F *fRGCorrEtaH; // Pseudorapidity correlation rec jet-gen jet | |
195 | TH2F *fRGCorrPhiH; // Azimuthal angle correlation rec jet-gen jet | |
196 | ||
1b7d5d7e | 197 | // correlation histogramswhen one particle |
198 | // has more than 50% of the energy of the jet | |
83a444b1 | 199 | TH2F *fPRCorr50EneH; // Energy correlation part-rec jet |
200 | TH2F *fPRCorr50PtH; // Pt correlation part-rec jet | |
201 | TH2F *fPRCorr50EtaH; // Pseudorapidity correlation part-rec jet | |
202 | TH2F *fPRCorr50PhiH; // Azimuthal angle correlation part-rec jet | |
203 | TH2F *fRGCorr50EneH; // Energy correlation rec jet-gen jet | |
204 | TH2F *fRGCorr50PtH; // Pt correlation rec jet-gen jet | |
205 | TH2F *fRGCorr50EtaH; // Pseudorapidity correlation rec jet-gen jet | |
206 | TH2F *fRGCorr50PhiH; // Azimuthal angle correlation rec jet-gen jet | |
207 | ||
208 | // fragmentation function and shape histos | |
209 | TH1F *fRFragSelH; // Frag Fun of reconstructed jets (sel part) | |
210 | TH1F *fRFragRejH; // Frag Fun of reconstructed jets (rej part) | |
211 | TH1F *fRFragAllH; // Frag Fun of reconstructed jets (all part) | |
212 | TH1F *fRShapSelH; // Shape of generated jets (sel part) | |
213 | TH1F *fRShapRejH; // Shape of generated jets (rej part) | |
214 | TH1F *fRShapAllH; // Shape of generated jets (all part) | |
215 | ||
216 | // trigger bias histos | |
217 | TProfile *fGTriggerEneH; // Generated energy (trigger bias) | |
218 | TProfile *fRTriggerEneH; // Reconstructed energy (trigger bias) | |
219 | TProfile *fGPTriggerEneH; // Generated energy (trigger bias) | |
220 | TProfile *fPTriggerEneH; // Leading particle energy (trigger bias) | |
221 | ||
222 | // dE/dr histo | |
223 | TH2F* fdEdrH; // dE/dr histo | |
224 | TH2F* fdEdrB; // dE/dr bkgdhisto | |
225 | TH2F* fPtEneH2;// fPtEneH2 | |
226 | TH1F* fdEdrW; // weights for dE/dr | |
227 | ||
228 | // Jt histo | |
229 | TH2F* fJtH; // J_{T} histogram | |
230 | TH2F* fJtB; // J_{T} bkgd histogram | |
231 | TH1F* fJtW; // J_{T} weight | |
232 | ||
233 | // dN/dxi histo | |
234 | TH2F* fdNdxiH; // dN/d#xi histo | |
235 | TH2F* fdNdxiB; // dN/d#xi bkgd histo | |
236 | TH1F* fdNdxiW; // dN/d#xi weight histo | |
237 | TH2F* fPtEneH; // fPtEneH | |
238 | ||
1b7d5d7e | 239 | protected: |
240 | AliJetAnalysis(const AliJetAnalysis& rJetA); | |
241 | AliJetAnalysis& operator = (const AliJetAnalysis& rhsa); | |
242 | ||
243 | ||
62567a80 | 244 | ClassDef(AliJetAnalysis,1) |
245 | }; | |
246 | ||
247 | #endif |