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
27 class AliEMCALGeometry;
28 class AliEMCALRecoUtils;
29 class AliAnalysisFilter;
30 class AliESDtrackCuts;
32 class AliHFEcontainer;
35 class AliHFEpidQAmanager;
38 #include "AliAnalysisTaskSE.h"
41 class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
43 AliAnalysisTaskHFECal();
44 AliAnalysisTaskHFECal(const char *name);
45 virtual ~AliAnalysisTaskHFECal();
47 virtual void UserCreateOutputObjects();
48 virtual void UserExec(Option_t *option);
49 virtual void Terminate(Option_t *);
51 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
52 void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
53 void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
54 void SetQAHist (int qahist) {fqahist = qahist;};
55 AliHFEpid *GetPID() const { return fPID; }
56 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
57 void SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce, Double_t w, Int_t ibgevent, Bool_t tagpi0, Bool_t tageta);
58 void FindMother(TParticle* part, int &label, int &pid);
59 double GetMCweight(double mcPi0pT);
60 double GetMCweightEta(double mcEtapT);
61 void FindTriggerClusters();
62 double MCEopMeanCorrection(double pTmc, float central);
65 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
67 AliESDEvent *fESD; //!ESD object
68 AliMCEvent *fMC; //!MC object
69 AliStack *stack; //!MC object
70 AliEMCALGeometry *fGeom; // emcal geometry
72 TList *fOutputList; //! output list
75 AliESDtrackCuts *fTrackCuts; //! ESD track cuts
76 AliHFEcuts *fCuts; //! Cut Collection
77 Bool_t fIdentifiedAsOutInz; //Out Of Range in z
78 Bool_t fPassTheEventCut; //Pass The Event Cut
79 Bool_t fRejectKinkMother; //Reject Kink Mother
81 Double_t fVz; //z position of the primary vertex
82 AliCFManager *fCFM; //! Correction Framework Manager
83 AliHFEpid *fPID; //! PID
84 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
85 Double_t fOpeningAngleCut; //openingAngle cut value
86 Double_t fInvmassCut; //invariant mass cut value
88 int ftriggers[48][60];//!
89 int ftriggersCut[48][60];//!
90 int ftriggersTime[48][60];//!
93 TH1F *fNoEvents; //! no of events
94 THnSparseD *fEMCAccE; //! EMC acc
95 TH2F *hEMCAccE; //! EMC acc
96 TH1F *fTrkpt; //! track pt
97 TH2F *fTrkEovPBef; //! track E/p before HFE pid
98 TH2F *fTrkEovPAft; //! track E/p after HFE pid
99 TH2F *fdEdxBef; //! track dEdx vs p before HFE pid
100 TH2F *fdEdxAft; //! track dEdx vs p after HFE pid
101 TH2F *fIncpT; //! HFE pid electron vs centrality
102 TH2F *fIncpTM20; //! HFE pid electron vs centrality
103 THnSparseD *fInvmassLS; //! Inv mass of LS (e,e)
104 THnSparseD *fInvmassULS; //! Inv mass of ULS (e,e)
105 THnSparseD *fInvmassLSmc; //! Inv mass of LS (e,e)
106 THnSparseD *fInvmassULSmc; //! Inv mass of ULS (e,e)
107 TH2D *fInvmassLSmc0; //! Inv mass of ULS (e,e)
108 TH2D *fInvmassLSmc1; //! Inv mass of ULS (e,e)
109 TH2D *fInvmassLSmc2; //! Inv mass of ULS (e,e)
110 TH2D *fInvmassLSmc3; //! Inv mass of ULS (e,e)
111 TH2D *fInvmassULSmc0; //! Inv mass of ULS (e,e)
112 TH2D *fInvmassULSmc1; //! Inv mass of ULS (e,e)
113 TH2D *fInvmassULSmc2; //! Inv mass of ULS (e,e)
114 TH2D *fInvmassULSmc3; //! Inv mass of ULS (e,e)
115 TH1F *fOpeningAngleLS; //! opening angle for LS pairs
116 TH1F *fOpeningAngleULS; //! opening angle for ULS pairs
117 TH1F *fPhotoElecPt; //! photonic elec pt
118 TH2F *fPhoElecPt; //! Pho inclusive ele pt
119 TH2F *fPhoElecPtM20; //! Pho inclusive ele pt
120 TH2F *fSameElecPt; //! Same inclusive ele pt
121 TH2F *fSameElecPtM20; //! Same inclusive ele pt
123 TH1F *fTrackPtBefTrkCuts; //! Track pt before track cuts
124 TH1F *fTrackPtAftTrkCuts; //! Track pt after track cuts
125 TH2F *fTPCnsigma; //! TPC n sigma vs p
127 TH1F *fCent; //! centrality
128 THnSparseD *fEleInfo; //! EMC acc
131 TH1F *fClsEBftTrigCut; //Cluster E before trigger selection
132 TH1F *fClsEAftTrigCut; //Cluster E after trigger selection
133 TH1F *fClsEAftTrigCut1; //Cluster E after trigger selection
134 TH1F *fClsEAftTrigCut2; //Cluster E after trigger selection
135 TH1F *fClsEAftTrigCut3; //Cluster E after trigger selection
136 TH1F *fClsEAftTrigCut4; //Cluster E after trigger selection
137 TH2F *fClsETime; //ClsE vs time distribution
138 TH2F *fClsETime1; //ClsE vs time distribution
139 TH1F *fTrigTimes;// trigger time
140 TH2F *fCellCheck;// trigger time
145 TH2F *fIncpTMChfe; //! MC HFE pid electron vs centrality
146 TH2F *fIncpTMChfeAll; //! MC HFE pid electron vs centrality
147 TH2F *fIncpTMCM20hfe; //! MC HFE pid electron vs centrality
148 TH2F *fIncpTMCM20hfeAll; //! MC HFE pid electron vs centrality
149 TH2F *fIncpTMCM20hfeCheck; //! MC HFE pid electron vs centrality
150 THnSparseD *fInputHFEMC_weight; //! MC HFE pid electron vs centrality
151 THnSparseD *fIncpTMCM20hfeCheck_weight; //! MC HFE pid electron vs centrality
152 THnSparseD *fIncpTMCpho; //! MC HFE pid electron vs centrality
153 THnSparseD *fIncpTMCM20pho; //! MC HFE pid electron vs centrality
154 THnSparseD *fPhoElecPtMC; //! Pho inclusive ele pt
155 THnSparseD *fPhoElecPtMCM20; //! Pho inclusive ele pt
156 THnSparseD *fSameElecPtMC; //! Same inclusive ele pt
157 THnSparseD *fSameElecPtMCM20; //! Same inclusive ele pt
158 THnSparseD *fIncpTMCM20pho_pi0e; //! MC HFE pid electron vs centrality
159 THnSparseD *fPhoElecPtMCM20_pi0e; //! Pho inclusive ele pt
160 THnSparseD *fSameElecPtMCM20_pi0e; //! Same inclusive ele pt
161 THnSparseD *fIncpTMCM20pho_eta; //! MC HFE pid electron vs centrality
162 THnSparseD *fPhoElecPtMCM20_eta; //! Pho inclusive ele pt
163 THnSparseD *fSameElecPtMCM20_eta; //! Same inclusive ele pt
164 THnSparseD *fIncpTMCpho_pi0e_TPC; //! MC HFE pid electron vs centrality
165 THnSparseD *fPhoElecPtMC_pi0e_TPC; //! Pho inclusive ele pt
166 THnSparseD *fSameElecPtMC_pi0e_TPC; //! Same inclusive ele pt
169 THnSparseD *Hpi0pTcheck;
170 THnSparseD *HETApTcheck;
180 AliAnalysisTaskHFECal(const AliAnalysisTaskHFECal&); // not implemented
181 AliAnalysisTaskHFECal& operator=(const AliAnalysisTaskHFECal&); // not implemented
183 ClassDef(AliAnalysisTaskHFECal, 1); //!example of analysis