]>
Commit | Line | Data |
---|---|---|
ac6a3f1e | 1 | #ifndef AliAnalysisTaskFullpAJets_H |
2 | #define AliAnalysisTaskFullpAJets_H | |
3 | ||
4 | class TH1D; | |
5 | class TH2D; | |
6 | class TH3D; | |
7 | class TList; | |
8 | class TProfile; | |
9 | class TProfile2D; | |
10 | class TProfile3D; | |
11 | class TClonesArray; | |
12 | class AliESDtrackCuts; | |
13 | ||
14 | #ifndef ALIANALYSISTASKSE_H | |
15 | #include "AliAnalysisTaskSE.h" | |
16 | #endif | |
17 | ||
18 | class AliAnalysisTaskFullpAJets : public AliAnalysisTaskSE | |
19 | { | |
20 | public: | |
21 | AliAnalysisTaskFullpAJets(); | |
22 | AliAnalysisTaskFullpAJets(const char *name); | |
23 | virtual ~AliAnalysisTaskFullpAJets(); | |
24 | ||
25 | virtual void UserCreateOutputObjects(); | |
26 | virtual void UserExecOnce(); | |
27 | virtual void UserExec(Option_t *option); | |
28 | virtual void Terminate(Option_t *); | |
29 | ||
30 | // User Defined Sub-Routines | |
31 | void TrackHisto(); | |
32 | void ClusterHisto(); | |
33 | void EventHistos(); | |
34 | void InitChargedJets(); | |
35 | void InitFullJets(); | |
36 | void EstimateTotalBackground(); | |
37 | void EstimateBackgoundMinusLJet(); | |
38 | void Method1A(); | |
39 | void Method1B(); | |
40 | void Method1C(); | |
41 | void Method2A(); | |
42 | void Method2B(); | |
43 | void Method3(Bool_t EMCalOn); | |
78246241 | 44 | void Method3DiJet(); |
45 | void Method3Perp(); | |
ac6a3f1e | 46 | void JetPtFullProfile(); |
47 | void JetPtChargedProfile(); | |
48 | void JetPtEtaProfile(); | |
49 | void FillFullCorrJetPt(TH1D *myHisto,Double_t rho,Bool_t signal_cut); | |
c54b626a | 50 | void FillFullCorrJetPt(TH2D *myHisto,Double_t rho, Bool_t signal_cut); |
ac6a3f1e | 51 | void FillFullDeltaRho(TH1D *myHisto,Double_t delta_rho,Bool_t signal_cut); |
52 | void FillBckgFlucDeltaPt(TH1D *myHisto, Double_t rho); | |
53 | void DeleteArrays(Bool_t EMCalOn); | |
54 | ||
55 | // User Defined Functions | |
56 | Bool_t IsDiJetEvent(); | |
57 | Bool_t InsideRect(Double_t phi,Double_t phi_min,Double_t phi_max,Double_t eta,Double_t eta_min,Double_t eta_max); | |
58 | Bool_t IsInEMCal(Double_t phi,Double_t eta); | |
59 | Bool_t IsInEMCalFull(Double_t r,Double_t phi,Double_t eta); | |
60 | Bool_t IsInEMCalPart(Double_t r,Double_t phi,Double_t eta); | |
61 | Bool_t IsInTPCFull(Double_t r,Double_t phi,Double_t eta); | |
62 | Bool_t IsInTPC(Double_t r,Double_t phi,Double_t eta,Bool_t Complete); | |
63 | ||
64 | Double_t AreaWithinTPC(Double_t r,Double_t eta); | |
65 | Double_t AreaWithinEMCal(Double_t r,Double_t phi,Double_t eta); | |
66 | Double_t AreaEdge(Double_t r,Double_t z); | |
67 | Double_t AreaOverlap(Double_t r,Double_t x,Double_t y); | |
68 | Double_t TransverseArea(Double_t r,Double_t psi0,Double_t phi,Double_t eta); | |
69 | ||
c54b626a | 70 | // Used to set the R for the jet finders |
71 | inline void SetRjet(Int_t r) | |
ac6a3f1e | 72 | { |
73 | fRJET = r; | |
74 | }; | |
75 | ||
76 | private: | |
77 | TList *fOutput; // Output list | |
78 | AliESDtrackCuts *fTrackCuts; // Track cuts | |
79 | ||
80 | TH1D *fhTrackPt; //! | |
81 | TH1D *fhTrackEta; //! | |
82 | TH1D *fhTrackPhi; //! | |
83 | TH1D *fhClusterPt; //! | |
84 | TH1D *fhClusterEta; //! | |
85 | TH1D *fhClusterPhi; //! | |
c54b626a | 86 | TH1D *fhCentrality; //! |
ac6a3f1e | 87 | TH1D *fhBckgMult; //! |
88 | TH1D *fhBckgFluc; //! | |
89 | TH1D *fhChargedJetPt; //! Charged Jet Pt distribution | |
90 | TH1D *fhChargedJetPtAreaCut; //! Charged Jet Pt distribution with standard Area cut applied | |
91 | TH1D *fhJetPtEMCal; //! Jet Pt distribution of Jets inside the EMCal | |
92 | TH1D *fhJetPtEMCalAreaCut; //! Jet Pt distribution of Jets inside the EMCal with standard Area cut applied | |
93 | TH1D *fhJetPtEMCalAreaCutSignal; //! Jet Pt distribution of Jets inside the EMCal with standard Area and Signal Threshold cut applied | |
94 | TH1D *fhJetPtTPC; //! Jet Pt distribution of Jet outside EMCal | |
95 | TH1D *fhJetPtTPCAreaCut; //! Jet Pt distribution of Jet outside EMCal with standard Area cut applied | |
96 | TH1D *fhJetTPtRhoTotal; //! Jet Pt distribution corrected for full background | |
97 | TH1D *fhJetTPtRhoTotalSignal; //! Jet Pt distribution corrected for full background with signal cut | |
98 | TH1D *fhJetTPtRhoNoLeading; //! Jet Pt distribution corrected for full background minus leading jet | |
99 | TH1D *fhJetTPtRhoNoLeadingSignal; //! Jet Pt distribution corrected for full background minus leading jet with signal cut | |
100 | TH1D *fhJetTPt1B; //! Jet Pt distribution corrected for background using Method 1B | |
101 | TH1D *fhJetTPt1BSignal; //! Jet Pt distribution corrected for background using Method 1B with signal cut | |
102 | TH1D *fhEMCalBckg1B; //! Cluster Pt distribution of Tracks+CaloCluster with R=0.4 Method 1B | |
103 | TH1D *fhJetTPt1C; //! Jet Pt distribution corrected for background using Method 1C | |
104 | TH1D *fhEMCalBckg1C; //! Cluster Pt distribution of Tracks+CaloCluster with R=0.4 Method 1C | |
105 | TH1D *fhEMCalJet2A; //! Clusters within the EMCal from di-jets within the TPC Satisfying certian criteria | |
106 | TH1D *fhJetTPt2B; //! Jet Pt distribution corrected for background using Method 2B | |
107 | TH1D *fhEMCalBckg2B; //! Cluster Pt distribution of Tracks+CaloCluster with R=0.4 Method 2B | |
108 | TH1D *fhJetTPt3; //! Charged jet Pt distribution corrected for background using Method 3 | |
109 | TH1D *fhDeltaPtTotal; //! Delta pT spectrum with total rho used | |
110 | TH1D *fhDeltaPtNoLeading; //! Delta pT spectrum with total - leading jet rho used | |
111 | TH1D *fhDeltaPt1B; //! Delta pT spectrum with all signal jets subtracted rho used | |
112 | TH1D *fhDeltaRho01; //! Differential between rho_0 to rho_1 event by event | |
113 | TH1D *fhEMCalCellCounts; //! Plots the distribution of cluster counts in the EMCal. Used to determine which cells are hot (if any...) | |
c54b626a | 114 | TH1D *fh020RhoTotal; //! 0-20% Centrality rho plot for rho_0 |
115 | TH1D *fh020RhoNoLeading; //! 0-20% Centrality rho plot for rho_1 | |
116 | TH1D *fh020Rho1B; //! 0-20% Centrality rho plot for rho_n | |
117 | TH1D *fh020Rho2B; //! 0-20% Centrality rho plot for di-jet rho | |
118 | TH1D *fh020Rho3; //! 0-20% Centrality rho plot for charged rho | |
119 | TH1D *fh020JetPtEMCal; //! | |
120 | TH1D *fh020JetPtEMCalAreaCut; //! | |
121 | TH1D *fh020JetPtEMCalAreaCutSignal; //! | |
122 | TH1D *fh020JetTPtRhoTotal; //! | |
123 | TH1D *fh020JetTPtRhoTotalSignal; //! | |
124 | TH1D *fh020JetTPtRhoNoLeading; //! | |
125 | TH1D *fh020JetTPtRhoNoLeadingSignal; //! | |
126 | TH1D *fh020JetTPt1B; //! | |
127 | TH1D *fh020JetTPt1BSignal; //! | |
128 | TH1D *fh020JetTPt1C; //! | |
129 | TH1D *fh020JetTPt2B; //! | |
130 | TH1D *fh020JetTPt3; //! | |
131 | TH1D *fhDeltaPt2B; //! Delta pT spectrum with Method 2B used for rho | |
132 | TH1D *fhDeltaPtkT; //! Delta pT spectrum with kT jets used to calculate rho | |
78246241 | 133 | TH1D *fh020DiJetAsy; //! di-jet asymmetry. Should be scaled by the histogram's integral |
134 | TH1D *fh020RhokT; //! 0-20% Centrality rho plot for kT Background estimate | |
135 | TH1D *fh020EMCalkTClusters; //! Number of kT clusters in EMCal event by event | |
136 | TH1D *fh020EMCalAkTJets; //! Number of AkT jets in EMCal event by event | |
137 | TH1D *fh020DiJetDeltaPhi; //! Angular dependance between events that contain two or more signal jets. Always angle between leading jet in the event and other sugnal jets. | |
138 | TH1D *fhDiJetEMCalLeadingPt; //! Minimum biased plot of leading EMCal jet pT in a dijet event. Used to explore 3-jet events... | |
139 | TH1D *fhDiJetEMCalLeadingDeltaPhi; //! Minimum biased plot of the angular difference between the leading dijet and the leading EMCal jet in a dijet event. Used to explore 3-jet events... | |
140 | TH1D *fh020EMCalJet2A; //! 0-20% Clusters within the EMCal from di-jets within the TPC satisfying certian criteria | |
141 | ||
142 | TH1D *fhDeltaRho0DiJet; //! QA Plot to investigate the event by event differential between rho_0 and rho_dijet. In principal should be a delta function centered at 0 | |
143 | TH1D *fh020Rho2BCore; //! 0-20% dijet rho from tracks and cluster nearest to the center of the EMCal | |
144 | TH1D *fh020Rho3NoJets; //! 0-20% Charged background density in events with no signal jets. | |
145 | TH1D *fh020Rho3DiJets; //! 0-20% Charged background density in events with a dijet. | |
146 | TH1D *fh020Rho3Perp; //! 0-20% Charged background density in events with a dijet. | |
147 | ||
ac6a3f1e | 148 | TH2D *fhTrackEtaPhi; //! |
149 | TH2D *fhClusterEtaPhi; //! | |
150 | TH2D *fhJetPtArea; //! Jet Area distribution vs Pt | |
c54b626a | 151 | TH2D *fhRhoTotal; //! Energy density of the EMCal (No jet exclusion) |
152 | TH2D *fhRhoNoLeading; //! Energy density of EMCal - leading fiducial jet | |
ac6a3f1e | 153 | TH2D *fhRho1B; //! Background estimate vs Centrality |
154 | TH2D *fhRho1C; //! Background estimate vs Centrality | |
155 | TH2D *fhRho2B; //! Background estimate vs Centrality | |
156 | TH2D *fhRho3; //! Background estimate vs Centrality | |
157 | TH2D *fhJetConstituentPt; //! Pt distribution of jet constituents | |
c54b626a | 158 | TH2D *fhJetPtCenEMCal; //! |
159 | TH2D *fhJetPtCenEMCalAreaCut; //! | |
160 | TH2D *fhJetPtCenEMCalAreaCutSignal; //! | |
161 | TH2D *fhJetTPtCenRhoTotal; //! | |
162 | TH2D *fhJetTPtCenRhoTotalSignal; //! | |
163 | TH2D *fhJetTPtCenRhoNoLeading; //! | |
164 | TH2D *fhJetTPtCenRhoNoLeadingSignal; //! | |
165 | TH2D *fhJetTPtCen1B; //! | |
166 | TH2D *fhJetTPtCen1BSignal; //! | |
167 | TH2D *fhJetTPtCen1C; //! | |
168 | TH2D *fhJetTPtCen2B; //! | |
169 | TH2D *fhJetTPtCen3; //! | |
78246241 | 170 | TH2D *fhDiJetCenAsy; //! |
171 | TH2D *fhDiJetCenDeltaPhi; //! | |
172 | TH2D *fhEMCalCenJet2A; //! | |
173 | TH2D *fhRho2BCore; //! | |
174 | TH2D *fhRho3NoJets; //! | |
175 | TH2D *fhRho3DiJets; //! | |
176 | TH2D *fhRho3Perp; //! | |
c54b626a | 177 | |
ac6a3f1e | 178 | TH3D *fhJetTrigR1A; //! Clusters from events with high Pt trigger as a funtion of trigger Pt and delta_R |
179 | ||
180 | TProfile *fpEventMult; //! | |
181 | TProfile *fpRhoTotal; //! | |
182 | TProfile *fpRhoNoLeading; //! | |
183 | TProfile *fpRho1B; //! | |
c54b626a | 184 | TProfile *fpRho2B; //! |
ac6a3f1e | 185 | TProfile *fpRho3; //! |
186 | TProfile *fpRhoScale; //! Scale of rho_total/rho_charged event/event vs centrality | |
187 | TProfile *fpRhokT; //! Rho profile using rho from median kT jet | |
188 | TProfile *fpJetPtRhoTotal; //! | |
189 | TProfile *fpJetPtRhoNoLeading; //! | |
78246241 | 190 | TProfile *fpJetPtRhokT; //! |
191 | TProfile *fpRhoChargedkT; //! | |
192 | TProfile *fpRhoScalekT; //! | |
193 | TProfile *fpRho2BCore; //! | |
194 | TProfile *fpRho3NoJets; //! | |
195 | TProfile *fpRho3DiJets; //! | |
196 | TProfile *fpRho3Perp; //! | |
ac6a3f1e | 197 | |
198 | TProfile **fpJetEtaProfile; //! | |
199 | TProfile **fpJetAbsEtaProfile; //! | |
200 | TProfile **fpChargedJetRProfile; //! | |
201 | TProfile **fpJetRProfile; //! | |
202 | ||
203 | TProfile2D *fpTrackPtProfile; //! | |
204 | TProfile2D *fpClusterPtProfile; //! | |
205 | ||
206 | TProfile3D **fpChargedJetEDProfile; //! Profile of Charged Jet Energy Density as a function of Jet pT, jet Eta, and distance from jet center in bins of 10% centrality cuts. Jet profile must be fully contained within TPC | |
207 | TProfile3D **fpJetEDProfile; //! Profile of Jet Energy Density as a function of Jet pT, jet Eta, and distance from jet center in bins of 10% centrality cuts. Jet profile must be fully contained within EMCal | |
208 | ||
209 | Bool_t fIsInitialized; | |
210 | Int_t fRJET; // Used to set Anti_kt R. Called from AddTask Macro | |
211 | Long_t fnEvents; // Counter for the number of events that made the physics selection with TPC+EMCal | |
212 | Long_t fnEventsCharged; // Counter for the number of events that made the physics selection with TPC only | |
213 | Long_t fnDiJetEvents; // Counter for the number of dijet events | |
214 | ||
215 | // Protected Global Variables | |
216 | Double_t fEMCalPhiMin; | |
217 | Double_t fEMCalPhiMax; | |
218 | Double_t fEMCalPhiTotal; | |
219 | Double_t fEMCalEtaMin; | |
220 | Double_t fEMCalEtaMax; | |
221 | Double_t fEMCalEtaTotal; | |
222 | Double_t fEMCalArea; | |
223 | ||
224 | Double_t fTPCPhiMin; | |
225 | Double_t fTPCPhiMax; | |
226 | Double_t fTPCPhiTotal; | |
227 | Double_t fTPCEtaMin; | |
228 | Double_t fTPCEtaMax; | |
229 | Double_t fTPCEtaTotal; | |
230 | Double_t fTPCArea; | |
231 | ||
232 | Double_t fJetR; | |
233 | Double_t fJetAreaCutFrac; // Fudge factor for selecting on jets with threshold Pt or higher | |
234 | Double_t fJetAreaThreshold; | |
235 | Double_t fDeltaRho01; | |
236 | Int_t fnEMCalCells; // Total number of cells in the EMCal | |
237 | ||
238 | Int_t fCentralityBins; | |
239 | Double_t fCentralityLow; | |
240 | Double_t fCentralityUp; | |
241 | Double_t fEventCentrality; | |
242 | ||
78246241 | 243 | Double_t fRhoTotal; // From Method 1B |
244 | Double_t fRhoCharged; // From Method 3 | |
245 | Double_t fRhokTTotal; | |
246 | Double_t fRhokTCharged; | |
247 | Double_t fRhoAkTTotal; // From Total Background | |
ac6a3f1e | 248 | |
249 | // Jet profile variables | |
250 | Int_t fEtaProfileBins; | |
251 | Double_t fEtaProfileLow; | |
252 | Double_t fEtaProfileUp; | |
253 | ||
254 | Int_t fEDProfileRBins; | |
255 | Double_t fEDProfileRLow; | |
256 | Double_t fEDProfileRUp; | |
257 | ||
258 | Int_t fEDProfilePtBins; | |
259 | Double_t fEDProfilePtLow; | |
260 | Double_t fEDProfilePtUp; | |
261 | ||
262 | Int_t fEDProfileEtaBins; | |
263 | Double_t fEDProfileEtaLow; | |
264 | Double_t fEDProfileEtaUp; | |
265 | ||
266 | // General Global variables | |
267 | Int_t fnTracks; | |
268 | Int_t fnClusters; | |
269 | Int_t fnAKTFullJets; | |
270 | Int_t fnAKTChargedJets; | |
271 | Int_t fnKTFullJets; | |
78246241 | 272 | Int_t fnKTChargedJets; |
ac6a3f1e | 273 | Int_t fnBckgClusters; |
274 | ||
275 | Double_t fTPCJetThreshold; | |
276 | Double_t fEMCalJetThreshold; | |
277 | ||
278 | Double_t fvertex[3]; | |
279 | Double_t fVertexWindow; | |
280 | Double_t fVertexMaxR; | |
281 | ||
282 | Int_t fnJetsPtCut; | |
283 | Int_t fnJetsPtTPCCut; | |
284 | Int_t fnJetsPtTotalCut; | |
285 | Int_t fnJetsChargedPtCut; | |
286 | Int_t fnJetskTEMCalFull; | |
78246241 | 287 | Int_t fnJetskTTPCFull; |
ac6a3f1e | 288 | |
289 | Int_t fPtMaxID; | |
290 | Int_t fPtFullMaxID; | |
291 | Int_t fPtTPCMaxID; | |
292 | Int_t fPtFullTPCMaxID; | |
293 | Int_t fPtTotalMaxID; | |
294 | Int_t fPtChargedMaxID; | |
295 | ||
296 | Double_t fPtMax; | |
297 | Double_t fPtFullMax; | |
298 | Double_t fPtTPCMax; | |
299 | Double_t fPtFullTPCMax; | |
300 | Double_t fPtTotalMax; | |
301 | Double_t fPtChargedMax; | |
302 | ||
303 | Int_t fChargedBackJetID; | |
ac6a3f1e | 304 | |
305 | // Dynamic Array variables | |
306 | TClonesArray *fmyTracks; //! | |
307 | TClonesArray *fmyClusters; //! | |
308 | TClonesArray *fmyAKTFullJets; //! | |
309 | TClonesArray *fmyAKTChargedJets; //! | |
310 | TClonesArray *fmyKTFullJets; //! | |
78246241 | 311 | TClonesArray *fmyKTChargedJets; //! |
ac6a3f1e | 312 | |
313 | Int_t *fJetPtCutID; //! Stores the jets(ID) above a Threshold Pt for EMCal | |
314 | Int_t *fJetPtTPCCutID; //! Stores the jets above a Threshold Pt for TPC | |
315 | Int_t *fJetPtTotalCutID; //! Stores the jets(ID) above a Threshold Pt | |
316 | Int_t *fJetPtChargedCutID; //! Stores the jets(ID) above a Threshold Pt for TPC in events without the EMCal on | |
317 | Int_t *fJetkTEMCalFullID; //! | |
78246241 | 318 | Int_t *fJetkTTPCFullID; //! |
ac6a3f1e | 319 | |
320 | Bool_t *fInEMCal; //! | |
321 | Bool_t *fInEMCalFull; //! | |
322 | Bool_t *fInTPCFull; //! | |
323 | Bool_t *fInTPCChargedFull; //! | |
324 | ||
325 | Double_t *fRCBckgFluc; //! Stores the pT of RC Background clusters in EMCal | |
326 | ||
327 | AliAnalysisTaskFullpAJets(const AliAnalysisTaskFullpAJets&); // not implemented | |
328 | AliAnalysisTaskFullpAJets& operator=(const AliAnalysisTaskFullpAJets&); // not implemented | |
329 | ||
330 | ClassDef(AliAnalysisTaskFullpAJets, 1); // example of analysis | |
331 | }; | |
332 | #endif |