several updates for HFEv2 by TPC-EMCal EP
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowTPCEMCalEP.h
CommitLineData
1d08b6e8 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
914042c2 16#ifndef ALIANALYSISTASKFlowTPCEMCalEP_H
0f3a6a57 17#define ALIANALYSISTASKFlowTPCEMCalEP_HAliPIDResponse.h
1d08b6e8 18
19class THnSparse;
20class TH2F;
21class TLorentzVector;
22
23class AliEMCALTrack;
24class AliMagF;
25class AliESDEvent;
26class AliAODEvent;
0f3a6a57 27class AliVEvent;
1d08b6e8 28class AliEMCALGeometry;
29class AliEMCALRecoUtils;
30class AliAnalysisFilter;
31class AliESDtrackCuts;
32class AliESDtrack;
33class AliHFEcontainer;
34class AliHFEcuts;
35class AliHFEpid;
36class AliHFEpidQAmanager;
37class AliCFManager;
0f3a6a57 38class AliSelectNonHFE;
39class AliPIDResponse;
40
1d08b6e8 41
42#include "AliAnalysisTaskSE.h"
43
914042c2 44class AliAnalysisTaskFlowTPCEMCalEP : public AliAnalysisTaskSE {
1d08b6e8 45 public:
914042c2 46 AliAnalysisTaskFlowTPCEMCalEP();
47 AliAnalysisTaskFlowTPCEMCalEP(const char *name);
48 virtual ~AliAnalysisTaskFlowTPCEMCalEP();
1d08b6e8 49
50 virtual void UserCreateOutputObjects();
51 virtual void UserExec(Option_t *option);
0f3a6a57 52 virtual void Terminate(Option_t *);
53
1d08b6e8 54 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
0f3a6a57 55 void SetOpeningAngleCut(Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
56 void SetInvariantMassCut(Double_t invMass) {fInvmassCut = invMass;};
57 void SetNonHFEalgorithm(TString nonHFEalgorithm) {fnonHFEalgorithm = nonHFEalgorithm;};
58
1d08b6e8 59 AliHFEpid *GetPID() const { return fPID; }
60 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
0f3a6a57 61 void InitParameters();
06d74a7b 62
1d08b6e8 63 Double_t GetCos2DeltaPhi(Double_t phiA,Double_t phiB) const;
64 Double_t GetDeltaPhi(Double_t phiA,Double_t phiB) const;
0f3a6a57 65 Double_t GetPi0weight(Double_t mcPi0pT,Float_t cent) const;
66 Double_t GetEtaweight(Double_t mcEtapT,Float_t cent) const;
67 Double_t GetDweight(Int_t whichD, Double_t mcDpT, Float_t cent) const;
68
69
1d08b6e8 70 private:
71
72 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
73
0f3a6a57 74
75 AliESDEvent *fESD; //! ESD object
76 AliAODEvent *fAOD; //! AOD object
77 AliVEvent *fVevent; //! VEvent
78 AliPIDResponse *fpidResponse; //! PID response
79
80 AliMCEvent *fMC; //! MC object
1d08b6e8 81
0f3a6a57 82 TList *fOutputList; //! output list
1d08b6e8 83
0f3a6a57 84 AliESDtrackCuts *fTrackCuts; //! ESD track cuts
85 AliHFEcuts *fCuts; //! Cut Collection
86 AliSelectNonHFE *fNonHFE; //! Select non heavy flavour electrons
87
88 Bool_t fIdentifiedAsOutInz; //! Out Of Range in z
89 Bool_t fPassTheEventCut; //! Pass The Event Cut
90 Bool_t fRejectKinkMother; //! Reject Kink Mother
91 Bool_t fIsMC; //! flag for MC analysis
92 Bool_t fIsAOD; //! flag for AOD analysis
93
94 Double_t fVz; //! z position of the primary vertex
95 AliCFManager *fCFM; //! Correction Framework Manager
96 AliHFEpid *fPID; //! PID
97 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
98 Double_t fOpeningAngleCut; //! openingAngle cut for non-HFE selection
99 Double_t fInvmassCut; //! invariant mass cut for non-HFE selection
100 Double_t fChi2Cut; //! Chi2 cut for non-HFE selection
101 Double_t fDCAcut; //! DCA cut for non-HFE selection
102 Float_t fminCent; //! min centrality
103 Float_t fmaxCent; //! max centrality
104 TString fnonHFEalgorithm; //! algorithm to select non-HFE pairs (KF or DCA)
105
106 TH1F *fNoEvents; //! no of events
107 TH1F *fTrkpt; //! track pt
108 TH2F *fTrkEovPBef; //! track E/p before HFE pid
109 TH2F *fTrkEovPAft; //! track E/p after HFE pid
110 TH2F *fdEdxBef; //! track dEdx vs p before HFE pid
111 TH2F *fdEdxAft; //! track dEdx vs p after HFE pid
112 TH1F *fPhotoElecPt; //! photonic elec pt
113 TH1F *fSemiInclElecPt; //! Semi inclusive ele pt
114 THnSparse *fMCphotoElecPt; //! pt distribution (MC)
1d08b6e8 115
0f3a6a57 116 TH1F *fTrackPtBefTrkCuts; //! Track pt before track cuts
117 TH1F *fTrackPtAftTrkCuts; //! Track pt after track cuts
118 TH2F *fTPCnsigma; //! TPC n sigma vs p
1d08b6e8 119
0f3a6a57 120 TH1F *fCent; //! centrality
121 TH1F *fevPlaneV0A; //! V0A event plane distribution
122 TH1F *fevPlaneV0C; //! V0C event plane distribution
123 TH1F *fevPlaneV0; //! V0 event plane distribution
124 TH1F *fevPlaneTPC; //! TPC event plane distribution
125 TH1F *fTPCsubEPres; //! TPC event plane resolution
126 THnSparse *fEPres; //! event plane resolution
127 THnSparse *fCorr; //! correlations
128 THnSparse *feTPCV2; //! inclusive eletron v2 (only TPC PID)
129 THnSparse *feV2; //! inclusive eletron v2 (TPC + EMCAL PID)
130 THnSparse *fphoteV2; //! photonic electron v2 (TPC + EMCAL PID)
131 THnSparse *fChargPartV2; //! charged particle v2
5945f829 132
0f3a6a57 133 TH2F *fGammaWeight; //! gamma weight
134 TH2F *fPi0Weight; //! pi0 weight
135 TH2F *fEtaWeight; //! eta weight
136 TH2F *fD0Weight; //! D0 weight
137 TH2F *fDplusWeight; //! D+ weight
138 TH2F *fDminusWeight; //! D- weight
def484dc 139
0f3a6a57 140 TH1F *fDe[6];
141 TH1F *fD0e[6];
142 TH1F *fDpluse[6];
143 TH1F *fDminuse[6];
937b2ff2 144
0f3a6a57 145 TH2F *fD0_e;
1c424962 146
0f3a6a57 147 TH1F *fTot_pi0e; //! inclusive electron
148 TH1F *fPhot_pi0e; //! ULS pair
149 TH1F *fPhotBCG_pi0e; //! LS pair
150 TH1F *fTot_etae; //! inclusive electron
151 TH1F *fPhot_etae; //! ULS pair
152 TH1F *fPhotBCG_etae; //! LS pair
153
154 TH1F *fInvMass; //! Invariant mass of ULS pairs
155 TH1F *fInvMassBack; //! Invariant mass if LS pairs
156 TH1F *fDCA; //! DCA of ULS pairs
157 TH1F *fDCABack; //! DCA of LS pairs
158 TH1F *fOpAngle; //! Opening angle of ULS pairs
159 TH1F *fOpAngleBack; //! Opening angle of LS pairs
535b11a0 160
535b11a0 161
914042c2 162 AliAnalysisTaskFlowTPCEMCalEP(const AliAnalysisTaskFlowTPCEMCalEP&); // not implemented
163 AliAnalysisTaskFlowTPCEMCalEP& operator=(const AliAnalysisTaskFlowTPCEMCalEP&); // not implemented
1d08b6e8 164
914042c2 165 ClassDef(AliAnalysisTaskFlowTPCEMCalEP, 1); //!example of analysis
1d08b6e8 166};
167
168#endif