]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h
new class for mu-hadron analysis libraries - new files (Tim Schuster <Tim.Schuster...
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskEMCalHFEpA.h
CommitLineData
c852fdae 1#ifndef AliAnalysisTaskEMCalHFEpA_cxx
2#define AliAnalysisTaskEMCalHFEpA_cxx
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
9a1f999b 7 ////////////////////////////////////////////////////////////////////////
8 // //
9 // Task for Heavy-flavour electron analysis in pPb collisions //
10 // (+ Electron-Hadron Jetlike Azimuthal Correlation) //
11 // //
12 // version: September 12th, 2013. //
13 // //
14 // Authors //
15 // Elienos Pereira de Oliveira Filho (epereira@cern.ch) //
16 // Cristiane Jahnke (cristiane.jahnke@cern.ch) //
17 // //
18 ////////////////////////////////////////////////////////////////////////
c852fdae 19
20class TH1F;
21class TH2F;
22class AliESDEvent;
23class AliESDtrackCuts;
24class AliESDtrack;
25class AliHFEcontainer;
26class AliHFEcuts;
27class AliHFEpid;
28class AliHFEpidQAmanager;
29class AliCFManager;
30class AliPIDResponse;
31class AliCentrality;
32class AliAODEvent;
33class AliVEvent;
34class AliAODMCHeader;
35class AliSelectNonHFE;
36class AliEventPoolManager;
37class AliEventPool;
38class TObjArray;
39
9a1f999b 40 //______________________________________________________________________
41 //Library
c852fdae 42#include "AliAnalysisTaskSE.h"
43#include "AliHFEpid.h"
44#include "AliLog.h"
9a1f999b 45 //______________________________________________________________________
c852fdae 46
9a1f999b 47 //______________________________________________________________________
c852fdae 48class AliAnalysisTaskEMCalHFEpA : public AliAnalysisTaskSE
49{
9a1f999b 50 //______________________________________________________________________
51public:
c852fdae 52 AliAnalysisTaskEMCalHFEpA();
53 AliAnalysisTaskEMCalHFEpA(const char *name);
54 virtual ~AliAnalysisTaskEMCalHFEpA();
9a1f999b 55
c852fdae 56 virtual void UserCreateOutputObjects();
57 virtual void UserExec(Option_t *option);
58 virtual void Terminate(Option_t *);
9a1f999b 59
60 //Setters
c852fdae 61 void SetHFECuts(AliHFEcuts * const cuts) {fCuts = cuts;};
62 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) {fRejectKinkMother = rejectKinkMother;};
a89620c8 63 void SetCorrelationAnalysis(Bool_t CorrelationFlag=kTRUE) {fCorrelationFlag = CorrelationFlag;};
c852fdae 64 void SetMCanalysis() {fIsMC = kTRUE;};
65 void SetCentrality(Double_t CentralityMin, Double_t CentralityMax) { fCentralityMin = CentralityMin; fCentralityMax = CentralityMax; fHasCentralitySelection = kTRUE; };
66 void SetAODanalysis(Bool_t IsAOD) {fIsAOD = IsAOD;};
67 void SetEventMixing(Bool_t EventMixingFlag) { fEventMixingFlag = EventMixingFlag;};
68 void SetNonHFEmassCut(Double_t MassCut) { fMassCut = MassCut; fMassCutFlag = kTRUE;};
69 void SetEtaCut(Double_t EtaCutMin,Double_t EtaCutMax ) { fEtaCutMin = EtaCutMin; fEtaCutMax = EtaCutMax; };
a6f21076 70
71 void SetdPhidEtaCut(Double_t dPhiCut, Double_t dEtaCut ) { fdPhiCut = dPhiCut;fdEtaCut = dEtaCut ;};
72
c852fdae 73 void SetEoverPCut(Double_t EoverPCutMin,Double_t EoverPCutMax ) { fEoverPCutMin = EoverPCutMin; fEoverPCutMax = EoverPCutMax; };
a6f21076 74
75 void SetM02Cut(Double_t M02CutMin,Double_t M02CutMax ) { fM02CutMin = M02CutMin; fM02CutMax = M02CutMax; };
76 void SetM20Cut(Double_t M20CutMin,Double_t M20CutMax ) { fM20CutMin = M20CutMin; fM20CutMax = M20CutMax; };
77
78
c852fdae 79 void SetNonHFEangleCut(Double_t AngleCut) { fAngleCut = AngleCut; fAngleCutFlag = kTRUE;};
80 void SetNonHFEchi2Cut(Double_t Chi2Cut) { fChi2Cut = Chi2Cut; fChi2CutFlag = kTRUE;};
81 void SetNonHFEdcaCut(Double_t DCAcut) { fDCAcut = DCAcut; fDCAcutFlag = kTRUE;};
82 void SetUseEMCal() { fUseEMCal=kTRUE;};
a89620c8 83 void SetUseShowerShapeCut(Bool_t UseShowerShapeCut=kFALSE) { fUseShowerShapeCut=UseShowerShapeCut;};
84 void SetBackground(Bool_t FillBackground=kFALSE) { fFillBackground=FillBackground;};
c852fdae 85 void SetEMCalTriggerEG1() { fEMCEG1=kTRUE; };
86 void SetEMCalTriggerEG2() { fEMCEG2=kTRUE; };
87 void SetCentralityEstimator(Int_t Estimator) { fEstimator=Estimator; }; //0 = V0A, 1 = Other
9a1f999b 88 void SetAdditionalCuts(Double_t PtMinAsso, Int_t TpcNclsAsso) {fPtMinAsso = PtMinAsso; fTpcNclsAsso = TpcNclsAsso;};
c852fdae 89
9a1f999b 90 //Getters
c852fdae 91 AliHFEpid *GetPID() const {return fPID;};
9a1f999b 92 //______________________________________________________________________
c852fdae 93
9a1f999b 94 //______________________________________________________________________
95private:
96
97 //Function to process track cuts
c852fdae 98 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
9a1f999b 99 //Function to process eh analysis
c852fdae 100 void ElectronHadronCorrelation(AliVTrack *track, Int_t trackIndex, AliVParticle *vtrack);
9a1f999b 101 //Function to find non-HFE and fill histos
9a4682da 102 void Background(AliVTrack *track, Int_t trackIndex, AliVParticle *vtrack, Bool_t IsTPConly);
9a1f999b 103 //Selected Hadrons, for mixed event analysis
c852fdae 104 TObjArray* SelectedHadrons();
9a1f999b 105 //DiHadron Correlation Background
c852fdae 106 void DiHadronCorrelation(AliVTrack *track, Int_t trackIndex);
9a1f999b 107 //Find Mothers (Finde HFE and NonHFE from MC information)
c852fdae 108 Bool_t FindMother(Int_t mcIndex);
9a1f999b 109
110 //Flags for specifics analysis
c852fdae 111 Bool_t fCorrelationFlag;
112 Bool_t fIsMC;
113 Bool_t fUseEMCal;
a89620c8 114 Bool_t fUseShowerShapeCut;
115 Bool_t fFillBackground;
9a4682da 116
9a1f999b 117
c852fdae 118 Bool_t fEMCEG1;
119 Bool_t fEMCEG2;
9a1f999b 120
121 //Used in the function FindMother
c852fdae 122 Bool_t fIsHFE1;
123 Bool_t fIsHFE2;
124 Bool_t fIsNonHFE;
125 Bool_t fIsFromD;
126 Bool_t fIsFromB;
127 Bool_t fIsFromPi0;
128 Bool_t fIsFromEta;
129 Bool_t fIsFromGamma;
130
9a1f999b 131 //General variables
c852fdae 132 AliESDEvent *fESD;
133 AliAODEvent *fAOD; /// new
134 AliVEvent *fVevent; /// new
135 AliESDtrackCuts *fPartnerCuts;
136 TList *fOutputList;
137 AliPIDResponse *fPidResponse;
138 AliSelectNonHFE *fNonHFE;
139
9a1f999b 140 //For the case of AOD analysis
c852fdae 141 Bool_t fIsAOD; //flag for AOD analysis
142
9a1f999b 143 //For Centrality Selection
c852fdae 144 AliCentrality *fCentrality;
145 Double_t fCentralityMin;
146 Double_t fCentralityMax;
147 Bool_t fHasCentralitySelection;
148 TH1F *fCentralityHist;
149 TH1F *fCentralityHistPass;
150 Float_t fZvtx;
151 Int_t fEstimator;
152
9a1f999b 153 //EMCal
a89620c8 154
c852fdae 155 AliVCluster *fClus;
9a1f999b 156 //AliESDCaloCluster *fClusESD;
c852fdae 157
9a1f999b 158 //Histograms
c852fdae 159 TH1F *fNevent;
160 TH1F *fPtElec_Inc;
9a1f999b 161
a6f21076 162
163 TH1F *fCharge_n;
164 TH1F *fCharge_p;
165
a89620c8 166 TH2D *fTime;
167 TH2D *fTime2;
168 TH2D *ftimingEle;
169 TH2D *ftimingEle2;
170
c852fdae 171 TH1F *fPtElec_ULS;
172 TH1F *fPtElec_LS;
9a4682da 173 TH1F *fPtElec_ULS2;
174 TH1F *fPtElec_LS2;
c852fdae 175
9a1f999b 176 //PID Histograms
c852fdae 177 TH1F *fpid;
178
179 TH2F **fEoverP_pt;
180 TH2F **fEoverP_tpc;
181
182 TH1F **fTPC_pt;
183 TH2F **fTPC_p;
184
185 TH1F **fTPCnsigma_pt;
186 TH2F **fTPCnsigma_p;
187 TH2F *fTPCnsigma_pt_2D;
a89620c8 188 TH2F *fShowerShapeCut;
9a4682da 189 TH2F *fShowerShapeM02_EoverP;
190 TH2F *fShowerShapeM20_EoverP;
191 TH2F *fShowerShape_ha;
192 TH2F *fShowerShape_ele;
c852fdae 193
194 TH2F *fTPCnsigma_eta;
195 TH2F *fTPCnsigma_phi;
196
9a1f999b 197
c852fdae 198 TH1F **fECluster;
199 TH2F **fEtaPhi;
200 TH1F **fVtxZ;
201 TH1F **fNTracks;
202 TH1F **fNClusters;
203 TH2F **fTPCNcls_EoverP;
204
205 TH1F **fEta;
206 TH1F **fPhi;
207 TH1F **fR;
208 TH2F **fR_EoverP;
209 TH1F **fNcells;
210 TH2F **fNcells_EoverP;
211 TH1F **fNcells_electrons;
212 TH1F **fNcells_hadrons;
213 TH1F **fECluster_ptbins;
214 TH1F **fEoverP_ptbins;
215 TH1F **fEoverP_wSSCut;
216 TH2F **fM02_EoverP;
217 TH2F **fM20_EoverP;
218 TH2F **fTPCnsigma_eta_electrons;
219 TH2F **fTPCnsigma_eta_hadrons;
220
221 TH2F *fEoverP_pt_pions;
222
223 TH2F *ftpc_p_EoverPcut;
224 TH2F *fnsigma_p_EoverPcut;
225
226 TH2F *fEoverP_pt_pions2;
227 TH2F *fNcells_pt;
228 TH2F *fEoverP_pt_hadrons;
229
9a1f999b 230 //Electron-Hadron Correlation Histograms
c852fdae 231 TH2F **fCEtaPhi_Inc;
232
233 TH2F **fCEtaPhi_ULS;
234 TH2F **fCEtaPhi_LS;
235 TH2F **fCEtaPhi_ULS_NoP;
236 TH2F **fCEtaPhi_LS_NoP;
237
238 TH2F **fCEtaPhi_ULS_Weight;
239 TH2F **fCEtaPhi_LS_Weight;
240 TH2F **fCEtaPhi_ULS_NoP_Weight;
241 TH2F **fCEtaPhi_LS_NoP_Weight;
242
243 TH1F *fInvMass;
244 TH1F *fInvMassBack;
245 TH1F *fDCA;
246 TH1F *fDCABack;
247 TH1F *fOpAngle;
248 TH1F *fOpAngleBack;
249
9a4682da 250 TH1F *fInvMass2;
251 TH1F *fInvMassBack2;
252 TH1F *fDCA2;
253 TH1F *fDCABack2;
254 TH1F *fOpAngle2;
255 TH1F *fOpAngleBack2;
256
c852fdae 257 Double_t fMassCut;
258 Double_t fEtaCutMin;
259 Double_t fEtaCutMax;
a6f21076 260
261 Double_t fdPhiCut;
262 Double_t fdEtaCut;
263
c852fdae 264 Double_t fEoverPCutMin;
265 Double_t fEoverPCutMax;
a6f21076 266 Double_t fM20CutMin;
267 Double_t fM20CutMax;
268 Double_t fM02CutMin;
269 Double_t fM02CutMax;
270
c852fdae 271 Double_t fAngleCut;
272 Double_t fChi2Cut;
273 Double_t fDCAcut;
274 Bool_t fMassCutFlag;
275 Bool_t fAngleCutFlag;
276 Bool_t fChi2CutFlag;
277 Bool_t fDCAcutFlag;
278
9a1f999b 279 //Non-HFE reconstruction efficiency
c852fdae 280 TH1F *fPtBackgroundBeforeReco;
9a4682da 281 TH1F *fPtBackgroundBeforeReco2;
282 TH1F *fPtBackgroundAfterReco;
283
9a1f999b 284 Double_t fPtMinAsso;
285 Int_t fTpcNclsAsso;
9a4682da 286
9a1f999b 287 //Tracking Efficiency
c852fdae 288 TH1F *fPtMCparticleAll;
9a1f999b 289 TH1F *fPtMCparticleAll_nonPrimary;
290 TH1F *fPtMCparticleAlle_nonPrimary;
291
c852fdae 292 TH1F *fPtMCparticleReco;
9a1f999b 293 TH1F *fPtMCparticleReco_nonPrimary;
c852fdae 294 TH1F *fPtMCparticleAllHfe1;
295 TH1F *fPtMCparticleRecoHfe1;
296 TH1F *fPtMCparticleAllHfe2;
297 TH1F *fPtMCparticleRecoHfe2;
298 TH1F *fPtMCelectronAfterAll;
9a1f999b 299 TH1F *fPtMCelectronAfterAll_nonPrimary;
c852fdae 300
301 TH1F *fPtMCpi0;
9a1f999b 302 TH1F *fPtMCeta;
c852fdae 303
304 TH1F *fPtMC_EMCal_All;
305 TH1F *fPtMC_EMCal_Selected;
306 TH1F *fPtMC_TPC_All;
307 TH1F *fPtMC_TPC_Selected;
308
309 TH1F *fPtMCWithLabel;
310 TH1F *fPtMCWithoutLabel;
311 TH1F *fPtIsPhysicaPrimary;
312
9a1f999b 313 //For the HFE package
c852fdae 314 AliHFEcuts *fCuts; // Cut Collection for HFE
315 AliCFManager *fCFM; // Correction Framework Manager
316 AliHFEpid *fPID; // PID
317 AliHFEpidQAmanager *fPIDqa; // PID QA manager
318
9a1f999b 319 //Others
c852fdae 320 AliStack *fMCstack; //
321 Bool_t fRejectKinkMother; //
322 TParticle *fMCtrack;
323 TParticle *fMCtrackMother;
324 TParticle *fMCtrackGMother;
325 TParticle *fMCtrackGGMother;
326 TParticle *fMCtrackGGGMother;
327 TClonesArray *fMCarray;
328 AliAODMCHeader *fMCheader;
329 AliAODMCParticle *fMCparticle;
330 AliAODMCParticle *fMCparticleMother;
331 AliAODMCParticle *fMCparticleGMother;
332 AliAODMCParticle *fMCparticleGGMother;
333 AliAODMCParticle *fMCparticleGGGMother;
334 AliMCEventHandler *fEventHandler;
335 AliMCEvent *fMCevent;
9a1f999b 336
337 //______________________________________________________________________
338 //Mixed event analysis
c852fdae 339 AliEventPoolManager *fPoolMgr;
340 AliEventPool *fPool;
341 TObjArray *fTracksClone;
342 TObjArray *fTracks;
343
344 TH2F **fCEtaPhi_Inc_EM;
345
346 TH2F **fCEtaPhi_ULS_EM;
347 TH2F **fCEtaPhi_LS_EM;
348
349 TH2F **fCEtaPhi_ULS_Weight_EM;
350 TH2F **fCEtaPhi_LS_Weight_EM;
351
352 TH1F *fPoolNevents;
353
354 Bool_t fEventMixingFlag;
9a1f999b 355 //______________________________________________________________________
356
357 //______________________________________________________________________
358 //Di-hadron correlation
c852fdae 359 TH2F **fCEtaPhi_Inc_DiHadron;
360 TH1F *fPtTrigger_Inc;
9a1f999b 361 //______________________________________________________________________
362
c852fdae 363 AliAnalysisTaskEMCalHFEpA(const AliAnalysisTaskEMCalHFEpA&); // not implemented
364 AliAnalysisTaskEMCalHFEpA& operator=(const AliAnalysisTaskEMCalHFEpA&); // not implemented
9a1f999b 365
c852fdae 366 ClassDef(AliAnalysisTaskEMCalHFEpA, 1); // example of analysis
9a1f999b 367 //______________________________________________________________________
c852fdae 368};
369
9a1f999b 370 ///_________________________________________________________________________________________________
371 ///Class copied from : $ALICE_ROOT/PWGCF/Correlations/DPhi/AliAnalysisTaskLongRangeCorrelations.h
372 ///Author: Christoph Mayer
c852fdae 373class AliEHCParticle : public TObject {
374public:
9a1f999b 375 AliEHCParticle(Double_t eta=0, Double_t phi=0, Double_t pt=0)
c852fdae 376 : fEta(eta), fPhi(phi), fPt(pt) {}
9a1f999b 377 virtual ~AliEHCParticle() {}
378
379 Double_t Eta() const { return fEta; }
380 Double_t Phi() const { return fPhi; }
381 Double_t Pt() const { return fPt; }
382
c852fdae 383protected:
384private:
9a1f999b 385 AliEHCParticle(const AliEHCParticle&);
386 AliEHCParticle& operator=(const AliEHCParticle&);
387
388 Double_t fEta;
389 Double_t fPhi;
390 Double_t fPt;
391
392 ClassDef(AliEHCParticle, 1);
c852fdae 393} ;
9a1f999b 394 ///_________________________________________________________________________________________________
c852fdae 395
396#endif