-add aod debug level to avoid huge logfiles when testing lego trains
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFECal.h
CommitLineData
bfc7c23b 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
16#ifndef ALIANALYSISTASKHFECAL_H
17#define ALIANALYSISTASKHFECAL_H
18
19class THnSparse;
20class TH2F;
21class TLorentzVector;
22
23class AliEMCALTrack;
24class AliMagF;
25class AliESDEvent;
26class AliAODEvent;
27class AliEMCALGeometry;
28class AliEMCALRecoUtils;
29class AliAnalysisFilter;
30class AliESDtrackCuts;
31class AliESDtrack;
32class AliHFEcontainer;
33class AliHFEcuts;
34class AliHFEpid;
35class AliHFEpidQAmanager;
36class AliCFManager;
37
38#include "AliAnalysisTaskSE.h"
39
40class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
41 public:
42 AliAnalysisTaskHFECal();
43 AliAnalysisTaskHFECal(const char *name);
44 virtual ~AliAnalysisTaskHFECal();
45
46 virtual void UserCreateOutputObjects();
47 virtual void UserExec(Option_t *option);
48 virtual void Terminate(Option_t *);
49
50 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
51 void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
52 void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
53 AliHFEpid *GetPID() const { return fPID; }
54 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
f09766dd 55 void SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec);
fb87d707 56 void FindTriggerClusters();
bfc7c23b 57 private:
58
59 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
60
61 AliESDEvent *fESD; //!ESD object
e7d87aef 62 AliMCEvent *fMC; //!MC object
fb87d707 63 AliEMCALGeometry *fGeom; // emcal geometry
bfc7c23b 64
65 TList *fOutputList; //! output list
66
67 AliESDtrackCuts *fTrackCuts; //! ESD track cuts
68 AliHFEcuts *fCuts; //! Cut Collection
69 Bool_t fIdentifiedAsOutInz; //Out Of Range in z
70 Bool_t fPassTheEventCut; //Pass The Event Cut
71 Bool_t fRejectKinkMother; //Reject Kink Mother
e7d87aef 72 Bool_t fmcData;
bfc7c23b 73 Double_t fVz; //z position of the primary vertex
74 AliCFManager *fCFM; //! Correction Framework Manager
75 AliHFEpid *fPID; //! PID
76 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
77 Double_t fOpeningAngleCut; //openingAngle cut value
78 Double_t fInvmassCut; //invariant mass cut value
fb87d707 79
80 int ftriggers[48][60];//!
81 int ftriggersCut[48][60];//!
82 int ftriggersTime[48][60];//!
83
e7d87aef 84
bfc7c23b 85 TH1F *fNoEvents; //! no of events
86 THnSparseD *fEMCAccE; //! EMC acc
87 TH1F *fTrkpt; //! track pt
88 TH2F *fTrkEovPBef; //! track E/p before HFE pid
89 TH2F *fTrkEovPAft; //! track E/p after HFE pid
90 TH2F *fdEdxBef; //! track dEdx vs p before HFE pid
91 TH2F *fdEdxAft; //! track dEdx vs p after HFE pid
92 TH2F *fIncpT; //! HFE pid electron vs centrality
fb87d707 93 TH2F *fIncpTM20; //! HFE pid electron vs centrality
f09766dd 94 THnSparseD *fInvmassLS; //! Inv mass of LS (e,e)
95 THnSparseD *fInvmassULS; //! Inv mass of ULS (e,e)
bfc7c23b 96 TH1F *fOpeningAngleLS; //! opening angle for LS pairs
97 TH1F *fOpeningAngleULS; //! opening angle for ULS pairs
98 TH1F *fPhotoElecPt; //! photonic elec pt
f09766dd 99 TH2F *fPhoElecPt; //! Pho inclusive ele pt
fb87d707 100 TH2F *fPhoElecPtM20; //! Pho inclusive ele pt
f09766dd 101 TH2F *fSameElecPt; //! Same inclusive ele pt
fb87d707 102 TH2F *fSameElecPtM20; //! Same inclusive ele pt
bfc7c23b 103
104 TH1F *fTrackPtBefTrkCuts; //! Track pt before track cuts
105 TH1F *fTrackPtAftTrkCuts; //! Track pt after track cuts
106 TH2F *fTPCnsigma; //! TPC n sigma vs p
107
108 TH1F *fCent; //! centrality
109 THnSparseD *fEleInfo; //! EMC acc
110
fb87d707 111 //<---- trigger info
112 TH1F *fClsEBftTrigCut; //Cluster E before trigger selection
113 TH1F *fClsEAftTrigCut; //Cluster E after trigger selection
114 TH1F *fClsEAftTrigCut1; //Cluster E after trigger selection
115 TH1F *fClsEAftTrigCut2; //Cluster E after trigger selection
116 TH1F *fClsEAftTrigCut3; //Cluster E after trigger selection
117 TH1F *fClsEAftTrigCut4; //Cluster E after trigger selection
118 TH2F *fClsETime; //ClsE vs time distribution
119 TH2F *fClsETime1; //ClsE vs time distribution
120 TH1F *fTrigTimes;// trigger time
42c75692 121 TH2F *fCellCheck;// trigger time
fb87d707 122
e7d87aef 123 //<------ MC
124 TH2F *fInputHFEMC;
125 TH2F *fIncpTMChfe; //! MC HFE pid electron vs centrality
126 TH2F *fIncpTMCM20hfe; //! MC HFE pid electron vs centrality
127 TH2F *fIncpTMCpho; //! MC HFE pid electron vs centrality
128 TH2F *fIncpTMCM20pho; //! MC HFE pid electron vs centrality
129 TH2F *fPhoElecPtMC; //! Pho inclusive ele pt
130 TH2F *fPhoElecPtMCM20; //! Pho inclusive ele pt
131 TH2F *fSameElecPtMC; //! Same inclusive ele pt
132 TH2F *fSameElecPtMCM20; //! Same inclusive ele pt
fb87d707 133
bfc7c23b 134 AliAnalysisTaskHFECal(const AliAnalysisTaskHFECal&); // not implemented
135 AliAnalysisTaskHFECal& operator=(const AliAnalysisTaskHFECal&); // not implemented
136
137 ClassDef(AliAnalysisTaskHFECal, 1); //!example of analysis
138};
139
140#endif
141
142