]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEtReconstructed.h
Adding framework for calculating nonlinearity and efficiency systematic errors
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtReconstructed.h
1 #ifndef ALIANALYSISETRECONSTRUCTED_H
2 #define ALIANALYSISETRECONSTRUCTED_H
3 //_________________________________________________________________________
4 //  Utility Class for transverse energy studies
5 //  Base class for ESD analysis
6 //  - reconstruction output
7 //
8 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
9 //_________________________________________________________________________
10
11 #include "AliAnalysisEt.h"
12 class TH2F;
13 class TH3F;
14 class TH2D;
15 class TH2I;
16 class AliVParticle;
17 class AliESDEvent;
18 class AliAnalysisHadEtCorrections;
19
20 class AliAnalysisEtReconstructed : public AliAnalysisEt
21 {
22
23 public:
24
25     AliAnalysisEtReconstructed();
26     virtual ~AliAnalysisEtReconstructed();
27
28     virtual Int_t AnalyseEvent(AliVEvent* event);
29
30     virtual void Init();
31
32     /** Fill the objects you want to output, classes which add new histograms should overload this. */
33     virtual void FillOutputList(TList *list);
34     void SetCorrections(AliAnalysisHadEtCorrections *corr) {
35         fCorrections = corr;
36     }
37
38     /** Create the histograms, must be overloaded if you want to add your own */
39     virtual void CreateHistograms();
40     
41     void SetEMinCorrection(const Double_t factor) { fEMinCorrection = factor; }
42
43 protected:
44
45     bool CheckGoodVertex(AliVParticle *track);
46     virtual bool TrackHitsCalorimeter(AliVParticle *track, Double_t magField);
47
48     virtual Double_t GetCorrectionModification(const AliESDCaloCluster& cluster,Int_t nonLinCorr, Int_t effCorr);//nonLinCorr 0 = nominal 1 = high -1 = low, effCorr  0 = nominal 1 = high -1 = low
49
50     AliAnalysisHadEtCorrections *fCorrections;//corrections needed for hadronic et
51
52     Double_t fPidCut; // cut on the pid probability
53
54     TH2F *fHistChargedPionEnergyDeposit; /** Energy deposited in calorimeter by charged pions */
55     TH2F *fHistProtonEnergyDeposit; /** Energy deposited in calorimeter by protons */
56     TH2F *fHistAntiProtonEnergyDeposit; /** Energy deposited in calorimeter by anti-protons */
57     TH2F *fHistChargedKaonEnergyDeposit; /** Energy deposited in calorimeter by charged kaons */
58     TH2F *fHistMuonEnergyDeposit; /** Energy deposited in calorimeter by muons */
59
60     TH1F *fHistRemovedEnergy; // removed energy
61     
62     Double_t fGeomCorrection; // geometry correction
63     Double_t fEMinCorrection; // Emin correction
64     
65     Double_t fRecEffCorrection; // Eff correction
66     
67     TH2D *fClusterPosition; // Position of clusters
68     TH1F *fClusterEnergy; // Distribution of cluster energies
69     TH1F *fClusterEt; // Distribution of cluster energies
70     
71     TH2D *fHistChargedEnergyRemoved; // Charged energy removed
72     TH2D *fHistNeutralEnergyRemoved; // Neutral energy removed
73     TH2D *fHistGammaEnergyAdded; // gamma energy added
74
75     TH3F *fHistMatchedTracksEvspTvsMult;   //For measuring hadron deposits
76     TH3F *fHistMatchedTracksEvspTvsMultEffCorr;   //For measuring hadron deposits
77     TH2D *fHistNominalRawEt;//Total ET from clusters with nominal reconstruction efficiency and nonlinearity correction vs centrality
78     TH2D *fHistNominalNonLinHighEt;//Total ET from clusters with nominal reconstruction efficiency and high bound of nonlinearity correction vs centrality
79     TH2D *fHistNominalNonLinLowEt;//Total ET from clusters with nominal reconstruction efficiency and low bound of nonlinearity correction vs centrality
80     TH2D *fHistNominalEffHighEt;//Total ET from clusters with high bound on reconstruction efficiency and nominal nonlinearity correction vs centrality
81     TH2D *fHistNominalEffLowEt;//Total ET from clusters with low bound on reconstruction efficiency and nominal nonlinearity correction vs centrality
82
83     Double_t ApplyModifiedCorrections(const AliESDCaloCluster& cluster,Int_t nonLinCorr, Int_t effCorr);//nonLinCorr 0 = nominal 1 = high -1 = low, effCorr  0 = nominal 1 = high -1 = low
84
85 private:
86
87     AliAnalysisEtReconstructed(const AliAnalysisEtReconstructed& g);
88     AliAnalysisEtReconstructed & operator=(const AliAnalysisEtReconstructed&);
89
90
91
92     ClassDef(AliAnalysisEtReconstructed, 1);
93 };
94
95 #endif // ALIANALYSISETRECONSTRUCTED_H