1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #ifndef ALIANALYSISTASKHFECAL_H
17 #define ALIANALYSISTASKHFECAL_H
28 class AliEMCALGeometry;
29 class AliEMCALRecoUtils;
30 class AliAnalysisFilter;
31 class AliESDtrackCuts;
33 class AliHFEcontainer;
36 class AliHFEpidQAmanager;
39 #include "AliAnalysisTaskSE.h"
42 class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
44 AliAnalysisTaskHFECal();
45 AliAnalysisTaskHFECal(const char *name);
46 virtual ~AliAnalysisTaskHFECal();
48 virtual void UserCreateOutputObjects();
49 virtual void UserExec(Option_t *option);
50 virtual void Terminate(Option_t *);
52 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
53 void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
54 void SetMimpTassCut (Double_t MimpTassCut) {fMimpTassCut = MimpTassCut;};
55 void SetMimNsigassCut (Double_t MimNsigassCut) {fMimNsigassCut = MimNsigassCut;};
56 void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
57 void SetMassConstraint (Bool_t MassConstraint) { fSetMassConstraint = MassConstraint; };
58 void SetMassWidthCut (Bool_t MassWidthCut) { fSetMassWidthCut = MassWidthCut; };
59 void SetMassNonlinear (Bool_t MassNonlinear) { fSetMassNonlinear = MassNonlinear; };
60 void SetMassCalMethod (Bool_t KFpart) { fSetKFpart = KFpart; };
61 void SetQAHist (int qahist) {fqahist = qahist;};
62 AliHFEpid *GetPID() const { return fPID; }
63 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
64 void SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonic, Bool_t &fFlagConvinat, Double_t nSig, Double_t shower, Double_t ep, Double_t mce, Double_t w, Int_t ibgevent, Bool_t tagpi0, Bool_t tageta, Int_t iCal);
65 void FindMother(TParticle* part, int &label, int &pid);
66 double GetMCweight(double mcPi0pT);
67 double GetMCweightEta(double mcEtapT);
68 void FindTriggerClusters();
69 double MCEopMeanCorrection(double pTmc, float central);
70 double NsigmaCorrection(double tmpeta, float central);
71 int TrMatch(AliESDtrack *tr);
74 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
76 AliESDEvent *fESD; //!ESD object
77 AliMCEvent *fMC; //!MC object
78 AliStack *stack; //!MC object
79 AliEMCALGeometry *fGeom; // emcal geometry
81 TList *fOutputList; //! output list
84 AliESDtrackCuts *fTrackCuts; //! ESD track cuts
85 AliHFEcuts *fCuts; //! Cut Collection
86 Bool_t fIdentifiedAsOutInz; //Out Of Range in z
87 Bool_t fPassTheEventCut; //Pass The Event Cut
88 Bool_t fRejectKinkMother; //Reject Kink Mother
90 Double_t fVz; //z position of the primary vertex
91 AliCFManager *fCFM; //! Correction Framework Manager
92 AliHFEpid *fPID; //! PID
93 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
94 Double_t fOpeningAngleCut; //openingAngle cut value
95 Double_t fMimpTassCut; //openingAngle cut value
96 Double_t fMimNsigassCut; //openingAngle cut value
97 Double_t fInvmassCut; //invariant mass cut value
98 Bool_t fSetMassConstraint; // Set mass constraint
99 Bool_t fSetMassWidthCut; // Set mass constraint
100 Bool_t fSetMassNonlinear; // Set mass constraint
101 Bool_t fSetKFpart; // Set mass constraint
103 int ftriggers[48][60];//!
104 int ftriggersCut[48][60];//!
105 int ftriggersTime[48][60];//!
108 TH1F *fNoEvents; //! no of events
109 THnSparseD *fEMCAccE; //! EMC acc
110 TH2F *hEMCAccE; //! EMC acc
111 TH1F *fTrkpt; //! track pt
112 TH2F *fTrkEovPBef; //! track E/p before HFE pid
113 TH2F *fTrkEovPAft; //! track E/p after HFE pid
114 TH2F *fdEdxBef; //! track dEdx vs p before HFE pid
115 TH2F *fdEdxAft; //! track dEdx vs p after HFE pid
116 TH2F *fIncpT; //! HFE pid electron vs centrality
117 TH2F *fIncpTM20; //! HFE pid electron vs centrality
118 THnSparseD *fInvmassLS; //! Inv mass of LS (e,e)
119 THnSparseD *fInvmassULS; //! Inv mass of ULS (e,e)
120 THnSparseD *fInvmassLSmc; //! Inv mass of LS (e,e)
121 THnSparseD *fInvmassULSmc; //! Inv mass of ULS (e,e)
122 TH2D *fInvmassLSreco; //! Inv mass of LS (e,e)
123 TH2D *fInvmassULSreco; //! Inv mass of ULS (e,e)
124 TH2D *fInvmassLSmc0; //! Inv mass of ULS (e,e)
125 TH2D *fInvmassLSmc1; //! Inv mass of ULS (e,e)
126 TH2D *fInvmassLSmc2; //! Inv mass of ULS (e,e)
127 TH2D *fInvmassLSmc3; //! Inv mass of ULS (e,e)
128 TH2D *fInvmassULSmc0; //! Inv mass of ULS (e,e)
129 TH2D *fInvmassULSmc1; //! Inv mass of ULS (e,e)
130 TH2D *fInvmassULSmc2; //! Inv mass of ULS (e,e)
131 TH2D *fInvmassULSmc3; //! Inv mass of ULS (e,e)
132 TH1F *fOpeningAngleLS; //! opening angle for LS pairs
133 TH1F *fOpeningAngleULS; //! opening angle for ULS pairs
134 TH1F *fPhotoElecPt; //! photonic elec pt
135 TH2F *fPhoElecPt; //! Pho inclusive ele pt
136 TH2F *fPhoElecPtM20; //! Pho inclusive ele pt
137 TH2F *fPhoElecPtM20Mass; //! Pho inclusive ele pt
138 TH2F *fSameElecPt; //! Same inclusive ele pt
139 TH2F *fSameElecPtM20; //! Same inclusive ele pt
140 TH2F *fSameElecPtM20Mass; //! Same inclusive ele pt
141 TH2F *fSemiElecPtM20; //! Same inclusive ele pt
143 TH1F *fTrackPtBefTrkCuts; //! Track pt before track cuts
144 TH1F *fTrackPtAftTrkCuts; //! Track pt after track cuts
145 TH2F *fTPCnsigma; //! TPC n sigma vs p
147 TH1F *fCent; //! centrality
148 THnSparseD *fEleInfo; //! EMC acc
149 THnSparseD *fElenSigma; //! EMC acc
152 TH1F *fClsEBftTrigCut; //Cluster E before trigger selection
153 TH1F *fClsEAftTrigCut; //Cluster E after trigger selection
154 TH1F *fClsEAftTrigCut1; //Cluster E after trigger selection
155 TH1F *fClsEAftTrigCut2; //Cluster E after trigger selection
156 TH1F *fClsEAftTrigCut3; //Cluster E after trigger selection
157 TH1F *fClsEAftTrigCut4; //Cluster E after trigger selection
158 TH2F *fClsETime; //ClsE vs time distribution
159 TH2F *fClsETime1; //ClsE vs time distribution
160 TH1F *fTrigTimes;// trigger time
161 TH2F *fCellCheck;// trigger time
166 TH2F *fIncpTMChfe; //! MC HFE pid electron vs centrality
167 TH2F *fIncpTMChfeAll; //! MC HFE pid electron vs centrality
168 TH2F *fIncpTMCM20hfe; //! MC HFE pid electron vs centrality
169 TH2F *fIncpTMCM20hfeAll; //! MC HFE pid electron vs centrality
170 TH2F *fIncpTMCM20hfeCheck; //! MC HFE pid electron vs centrality
171 THnSparseD *fInputHFEMC_weight; //! MC HFE pid electron vs centrality
172 THnSparseD *fIncpTMCM20hfeCheck_weight; //! MC HFE pid electron vs centrality
173 THnSparseD *fIncpTMCpho; //! MC HFE pid electron vs centrality
174 THnSparseD *fIncpTMCM20pho; //! MC HFE pid electron vs centrality
175 THnSparseD *fPhoElecPtMC; //! Pho inclusive ele pt
176 THnSparseD *fPhoElecPtMCM20; //! Pho inclusive ele pt
177 TH2D *fPhoElecPtMCM20Mass; //! Pho inclusive ele pt
178 THnSparseD *fSameElecPtMC; //! Same inclusive ele pt
179 THnSparseD *fSameElecPtMCM20; //! Same inclusive ele pt
180 TH2D *fSameElecPtMCM20Mass; //! Same inclusive ele pt
181 THnSparseD *fIncpTMCM20pho_pi0e; //! MC HFE pid electron vs centrality
182 THnSparseD *fPhoElecPtMCM20_pi0e; //! Pho inclusive ele pt
183 THnSparseD *fSameElecPtMCM20_pi0e; //! Same inclusive ele pt
184 THnSparseD *fIncpTMCM20pho_eta; //! MC HFE pid electron vs centrality
185 THnSparseD *fPhoElecPtMCM20_eta; //! Pho inclusive ele pt
186 THnSparseD *fSameElecPtMCM20_eta; //! Same inclusive ele pt
187 THnSparseD *fIncpTMCpho_pi0e_TPC; //! MC HFE pid electron vs centrality
188 THnSparseD *fPhoElecPtMC_pi0e_TPC; //! Pho inclusive ele pt
189 THnSparseD *fSameElecPtMC_pi0e_TPC; //! Same inclusive ele pt
190 THnSparseD *fIncpTMCpho_eta_TPC; //! MC HFE pid electron vs centrality
191 THnSparseD *fPhoElecPtMC_eta_TPC; //! Pho inclusive ele pt
192 THnSparseD *fSameElecPtMC_eta_TPC; //! Same inclusive ele pt
196 THnSparseD *Hpi0pTcheck;
197 THnSparseD *HETApTcheck;
215 TH2D *fPhoVertexReco_TPC;
216 TH2D *fPhoVertexReco_TPC_Invmass;
217 TH2D *fPhoVertexReco_EMCal;
218 TH2D *fPhoVertexReco_Invmass;
219 TH2D *fPhoVertexReco_step0;
220 TH2D *fPhoVertexReco_step1;
226 TH2D *fFakeRejection0;
227 TH2D *fFakeRejection1;
228 TH2D *fFakeRejection2;
237 TGraphErrors *fnSigEtaCorr[7];
240 AliAnalysisTaskHFECal(const AliAnalysisTaskHFECal&); // not implemented
241 AliAnalysisTaskHFECal& operator=(const AliAnalysisTaskHFECal&); // not implemented
243 ClassDef(AliAnalysisTaskHFECal, 1); //!example of analysis