]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisHadEtMonteCarlo.h
Exploring task to collect some informations on nuclei in pp
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisHadEtMonteCarlo.h
1 //_________________________________________________________________________
2 //  Utility Class for transverse energy studies, charged hadrons
3 //  Base class for MC analysis
4 //  - MC output
5 // 
6 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
7 //University of Tennessee at Knoxville
8 //_________________________________________________________________________
9 #ifndef ALIANALYSISHADETMONTECARLO_H
10 #define ALIANALYSISHADETMONTECARLO_H
11
12 #include "AliAnalysisHadEt.h"
13 class AliVEvent;
14 class TRandom;
15 class AliAnalysisHadEtReconstructed;
16 class AliMCEvent;
17 class AliGenEventHeader;
18 class AliStack;
19
20 class AliAnalysisHadEtMonteCarlo : public AliAnalysisHadEt
21 {
22
23 public:
24    
25   AliAnalysisHadEtMonteCarlo();
26   virtual ~AliAnalysisHadEtMonteCarlo();
27    
28     virtual Int_t AnalyseEvent(AliVEvent* event);
29     virtual Int_t AnalyseEvent(AliVEvent* event,AliVEvent* event2);
30
31     //void FillHistograms();
32     void CreateHistograms();
33     virtual void Init();
34
35     Float_t GetSimulatedHadronicEt() const {return fSimHadEt;}
36     Float_t GetSimulatedTotalEt() const {return fSimTotEt;}
37
38     void FillSimTotEtVsRecoTotEtFullAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtFullAcceptanceTPC",fSimTotEt,et,1.0);}
39     void FillSimTotEtVsRecoTotEtFullAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtFullAcceptanceITS",fSimTotEt,et,1.0);}
40     void FillSimTotEtVsRecoTotEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtEMCALAcceptanceTPC",fSimTotEt,et,1.0);}
41     void FillSimTotEtVsRecoTotEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtEMCALAcceptanceITS",fSimTotEt,et,1.0);}
42     void FillSimTotEtVsRecoTotEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtPHOSAcceptanceTPC",fSimTotEt,et,1.0);}
43     void FillSimTotEtVsRecoTotEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtPHOSAcceptanceITS",fSimTotEt,et,1.0);}
44     void FillSimTotEtVsRecoTotEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtFullAcceptanceTPCNoPID",fSimTotEt,et,1.0);}
45     void FillSimTotEtVsRecoTotEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtFullAcceptanceITSNoPID",fSimTotEt,et,1.0);}
46     void FillSimTotEtVsRecoTotEtEMCALAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtEMCALAcceptanceTPCNoPID",fSimTotEt,et,1.0);}
47     void FillSimTotEtVsRecoTotEtEMCALAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtEMCALAcceptanceITSNoPID",fSimTotEt,et,1.0);}
48     void FillSimTotEtVsRecoTotEtPHOSAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtPHOSAcceptanceTPCNoPID",fSimTotEt,et,1.0);}
49     void FillSimTotEtVsRecoTotEtPHOSAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimTotEtVsRecoTotEtPHOSAcceptanceITSNoPID",fSimTotEt,et,1.0);}
50     void FillSimHadEtVsRecoHadEtFullAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtFullAcceptanceTPC",fSimHadEt,et,1.0);}
51     void FillSimHadEtVsRecoHadEtFullAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtFullAcceptanceITS",fSimHadEt,et,1.0);}
52     void FillSimHadEtVsRecoHadEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtEMCALAcceptanceTPC",fSimHadEt,et,1.0);}
53     void FillSimHadEtVsRecoHadEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtEMCALAcceptanceITS",fSimHadEt,et,1.0);}
54     void FillSimHadEtVsRecoHadEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtPHOSAcceptanceTPC",fSimHadEt,et,1.0);}
55     void FillSimHadEtVsRecoHadEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtPHOSAcceptanceITS",fSimHadEt,et,1.0);}
56     void FillSimHadEtVsRecoHadEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtFullAcceptanceTPCNoPID",fSimHadEt,et,1.0);}
57     void FillSimHadEtVsRecoHadEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtFullAcceptanceITSNoPID",fSimHadEt,et,1.0);}
58     void FillSimHadEtVsRecoHadEtEMCALAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtEMCALAcceptanceTPCNoPID",fSimHadEt,et,1.0);}
59     void FillSimHadEtVsRecoHadEtEMCALAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtEMCALAcceptanceITSNoPID",fSimHadEt,et,1.0);}
60     void FillSimHadEtVsRecoHadEtPHOSAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtPHOSAcceptanceTPCNoPID",fSimHadEt,et,1.0);}
61     void FillSimHadEtVsRecoHadEtPHOSAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimHadEtVsRecoHadEtPHOSAcceptanceITSNoPID",fSimHadEt,et,1.0);}
62     //PiKP histograms
63     void FillSimPiKPEtVsRecoPiKPEtFullAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimPiKPEtVsRecoPiKPEtFullAcceptanceTPC",fSimPiKPEt,et,1.0);}
64     void FillSimPiKPEtVsRecoPiKPEtFullAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimPiKPEtVsRecoPiKPEtFullAcceptanceITS",fSimPiKPEt,et,1.0);}
65     void FillSimPiKPEtVsRecoPiKPEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimPiKPEtVsRecoPiKPEtFullAcceptanceTPCNoPID",fSimPiKPEt,et,1.0);}
66     void FillSimPiKPEtVsRecoPiKPEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimPiKPEtVsRecoPiKPEtFullAcceptanceITSNoPID",fSimPiKPEt,et,1.0);}
67     //Raw histograms
68     void FillSimRawEtVsRecoRawEtFullAcceptanceTPC(Float_t et){if(fGoodEvent)FillHisto2D("SimRawEtVsRecoRawEtFullAcceptanceTPC",fSimRawEtTPC,et,1.0);}
69     void FillSimRawEtVsRecoRawEtFullAcceptanceITS(Float_t et){if(fGoodEvent)FillHisto2D("SimRawEtVsRecoRawEtFullAcceptanceITS",fSimRawEtITS,et,1.0);}
70     void FillSimRawEtVsRecoRawEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimRawEtVsRecoRawEtFullAcceptanceTPCNoPID",fSimRawEtTPC,et,1.0);}
71     void FillSimRawEtVsRecoRawEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent)FillHisto2D("SimRawEtVsRecoRawEtFullAcceptanceITSNoPID",fSimRawEtITS,et,1.0);}
72
73     void FillSimTotEtMinusRecoTotEtFullAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtFullAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
74     void FillSimTotEtMinusRecoTotEtFullAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtFullAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
75     void FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtEMCALAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
76     void FillSimTotEtMinusRecoTotEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtEMCALAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
77     void FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtPHOSAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
78     void FillSimTotEtMinusRecoTotEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtPHOSAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
79     void FillSimTotEtMinusRecoTotEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtFullAcceptanceTPCNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
80     void FillSimTotEtMinusRecoTotEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtFullAcceptanceITSNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
81     void FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtEMCALAcceptanceTPCNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
82     void FillSimTotEtMinusRecoTotEtEMCALAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtEMCALAcceptanceITSNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
83     void FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtPHOSAcceptanceTPCNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
84     void FillSimTotEtMinusRecoTotEtPHOSAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRecoTotEtPHOSAcceptanceITSNoPID",et,(fSimTotEt-et)/fSimTotEt,1.0);}
85     void FillSimHadEtMinusRecoHadEtFullAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtFullAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
86     void FillSimHadEtMinusRecoHadEtFullAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtFullAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
87     void FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtEMCALAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
88     void FillSimHadEtMinusRecoHadEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtEMCALAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
89     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
90     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
91     void FillSimHadEtMinusRecoHadEtFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtFullAcceptanceTPCNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
92     void FillSimHadEtMinusRecoHadEtFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtFullAcceptanceITSNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
93     void FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtEMCALAcceptanceTPCNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
94     void FillSimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
95     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
96     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
97
98
99     void FillSimTotEtMinusRawEtFullAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtFullAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
100     void FillSimTotEtMinusRawEtFullAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtFullAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
101     void FillSimTotEtMinusRawEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtEMCALAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
102     void FillSimTotEtMinusRawEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtEMCALAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
103     void FillSimTotEtMinusRawEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtPHOSAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
104     void FillSimTotEtMinusRawEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent && fSimTotEt>0.0&&et>0.0)FillHisto2D("SimTotEtMinusRawEtPHOSAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
105     void FillSimHadEtMinusRawEtFullAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtFullAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
106     void FillSimHadEtMinusRawEtFullAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtFullAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
107     void FillSimHadEtMinusRawEtEMCALAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtEMCALAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
108     void FillSimHadEtMinusRawEtEMCALAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtEMCALAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
109     void FillSimHadEtMinusRawEtPHOSAcceptanceTPC(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtPHOSAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
110     void FillSimHadEtMinusRawEtPHOSAcceptanceITS(Float_t et){if(fGoodEvent && fSimHadEt>0.0&&et>0.0)FillHisto2D("SimHadEtMinusRawEtPHOSAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
111
112     void FillSimPiKPMinusRecoPiKPFullAcceptanceTPC(Float_t et){if(fGoodEvent && fSimPiKPEt>0.0)FillHisto2D("SimPiKPMinusRecoPiKPFullAcceptanceTPC",et,(fSimPiKPEt-et)/fSimPiKPEt,1.0);}
113     void FillSimPiKPMinusRecoPiKPFullAcceptanceITS(Float_t et){if(fGoodEvent && fSimPiKPEt>0.0)FillHisto2D("SimPiKPMinusRecoPiKPFullAcceptanceITS",et,(fSimPiKPEt-et)/fSimPiKPEt,1.0);}
114     void FillSimPiKPMinusRecoPiKPFullAcceptanceTPCNoPID(Float_t et){if(fGoodEvent && fSimPiKPEt>0.0)FillHisto2D("SimPiKPMinusRecoPiKPFullAcceptanceTPCNoPID",et,(fSimPiKPEt-et)/fSimPiKPEt,1.0);}
115     void FillSimPiKPMinusRecoPiKPFullAcceptanceITSNoPID(Float_t et){if(fGoodEvent && fSimPiKPEt>0.0)FillHisto2D("SimPiKPMinusRecoPiKPFullAcceptanceITSNoPID",et,(fSimPiKPEt-et)/fSimPiKPEt,1.0);}
116
117     void InvestigateSmearing(Bool_t val){fInvestigateSmearing=val;}
118     void RunLightweight(Bool_t val){fRunLightweight=val;}//Switches off O(100) histograms that aren't regularly used.
119     void InvestigateFull(Bool_t val){fInvestigateFull=val;}
120     void InvestigateEMCAL(Bool_t val){fInvestigateEMCal=val;}
121     void InvestigatePHOS(Bool_t val){fInvestigatePHOS=val;}
122     void InvestigatePiKP(Bool_t val){fInvestigatePiKP=val;}
123     void RequireITSHits(Bool_t val){fRequireITSHits=val;}
124     void EnhanceBaryons(Bool_t val){fBaryonEnhancement=val;}
125     void UseReconstructedPt(Bool_t val){fUseRecoPt=val;}
126     Bool_t Full() const {return fInvestigateFull;}
127     Bool_t EMCAL() const {return fInvestigateEMCal;}
128     Bool_t PHOS()const {return fInvestigatePHOS;}
129     Bool_t PiKP() const {return fInvestigatePiKP;}
130     Bool_t BaryonEnhancement() const {return fBaryonEnhancement;}
131     Bool_t ReconstructedPt() const {return fUseRecoPt;}
132     void SetHadEtReconstructed(AliAnalysisHadEtReconstructed *reco){fHadEtReco = reco;}
133     void DoTriggerChecks(){kDoTriggerChecks=kTRUE;}
134     void DoTriggerChecksOnly(){kDoTriggerChecksOnly=kTRUE;}
135     void SetIsOfflineV0AND(Bool_t val){kIsOfflineV0AND = val;}
136     void SetIsOfflineMB(Bool_t val){kIsOfflineMB = val;}
137
138
139     void SetGeneratorMinMaxParticles(AliMCEvent *eventMC);
140     AliGenEventHeader* GetGenEventHeader(AliMCEvent *eventMC) const;
141     Bool_t IsHIJINGLabel(Int_t label,AliMCEvent *eventMC,AliStack *stack);
142     void CheckForHIJINGLabel(){checkLabelForHIJING = kTRUE;}
143
144  protected:
145     Bool_t checkLabelForHIJING;//Boolean - do we need to check this data set for HIJING labels?  We don't need to do this unless there were signals embedded
146     Int_t            fNMCProducedMin;             // In case of cocktail, select particles in the list with label from this value
147     Int_t            fNMCProducedMax;             // In case of cocktail, select particles in the list with label up to this value
148
149  private:
150     //Declare it private to avoid compilation warning
151     AliAnalysisHadEtMonteCarlo & operator = (const AliAnalysisHadEtMonteCarlo & g) ;//cpy assignment
152     AliAnalysisHadEtMonteCarlo(const AliAnalysisHadEtMonteCarlo & g) ; // cpy ctor
153
154     Float_t fSimPiKPEt;//simulated Et for pi,k,p event by event
155     Float_t fSimRawEtTPC;//simulated Et for pi,k,p event by event
156     Float_t fSimRawEtITS;//simulated Et for pi,k,p event by event
157     Float_t fSimHadEt;//simulated Et event by event
158     Float_t fSimTotEt;//total et event by event
159     Float_t fSimPiKPEtShouldBeReco;//simulated Et for pi,k,p event by event
160     Float_t fSimPiKPEtShouldBeRecoPi;//simulated Et for pi event by event
161     Float_t fSimPiKPEtShouldBeRecoK;//simulated Et for k event by event
162     Float_t fSimPiKPEtShouldBeRecoP;//simulated Et for p event by event
163
164     Bool_t fRunLightweight;//Turns off O(100) histograms that are not regularly used to reduce the size & complexity of the output
165     Bool_t fInvestigateSmearing;//Turns on and off functions and histos for investigating momentum, efficiency, pid smearing
166     Bool_t fInvestigateFull;//Turns on and off functions and histos for investigating event-by-event et for the full acceptance
167     Bool_t fInvestigateEMCal;//Turns on and off functions and histos for investigating event-by-event et for the full acceptance
168     Bool_t fInvestigatePHOS;//Turns on and off functions and histos for investigating event-by-event et for the full acceptance
169     Bool_t fInvestigatePiKP;//Turns on and off functions and histos for looking pi/k/p Et event-by-event
170     Bool_t fRequireITSHits;//Also investigates Et for track cuts with ITS+TPC hits
171     Bool_t fBaryonEnhancement;//Turns on and off baryon enhancement
172     Bool_t fUseRecoPt;//Switch to decide whether to use reconstructed or simulated pT for reconstructed tracks
173     Bool_t kIsOfflineV0AND;//Boolean to keep track of whether or not this matches the offline trigger
174     Bool_t kIsOfflineMB;//Boolean to keep track of whether or not this matches the offline trigger
175     Bool_t kDoTriggerChecks;//Boolean to keep track of whether or not I want to let the physics selection do the work
176     Bool_t kDoTriggerChecksOnly;//Boolean to keep track of whether or not I want to let the physics selection do the work
177
178     void ResetEventValues();
179
180     //Float_t fSimPiKPEtSmeared[4];//simulated Et for pi,k,p smeared for each event by different momentum resolutions
181     static Float_t fgSmearWidths[4];//array with widths for smearing with different momentum resultions
182     static Int_t fgNumSmearWidths;//number of entries in the array above
183     TRandom *fPtSmearer;//a TRandom used for investigating momentum smearing
184     AliAnalysisHadEtReconstructed *fHadEtReco;//corresponding class for data reconstruction.  Used to access corrections directly used here.
185
186     ClassDef(AliAnalysisHadEtMonteCarlo, 1);
187 };
188
189 #endif // ALIANALYSISHADETMONTECARLO_H