Updates to Trains. create a job-script to help
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / IdentifiedHighPt / lib / AliHighPtDeDxCalib.h
CommitLineData
4ebdd20e 1#ifndef ALIHIGHPTDEDXCALIB_H
2#define ALIHIGHPTDEDXCALIB_H
3
4#include <TCanvas.h>
5#include <TH1.h>
6#include <TH2.h>
7#include <TProfile.h>
8
9#include "AliHighPtDeDxBase.h"
10
11class AliHighPtDeDxCalib : public AliHighPtDeDxBase {
12 public:
13 AliHighPtDeDxCalib(); // default constructor
14 AliHighPtDeDxCalib(const char* name, const char* title); // named constructor
15 virtual ~AliHighPtDeDxCalib(); // default destructor
16
17 virtual void Init(Int_t nPtBins, Double_t* ptBins);
18 virtual void Init(Int_t step, Int_t nPtBins, Double_t* ptBins);
19 virtual void FillTrackInfo(Float_t weight);
20 virtual void PerformEtaCal();
21 virtual void PerformNclCal();
22
23 TCanvas* DrawNclCal();
24 TCanvas* DrawEta(Bool_t forMIP);
25 TCanvas* DrawEtaCalibrated(Bool_t forMIP);
26 TCanvas* DrawSelectionHistograms(Int_t step=3);
27
28 virtual void SetStep(Int_t value) { fStep = value; }
29
30 virtual void SetPMIPMin(Double_t value) { fPMIPMin = value; }
31 virtual void SetPMIPMax(Double_t value) { fPMIPMax = value; }
32 virtual void SetDeDxMIPMin(Double_t value) { fDeDxMIPMin = value; }
33 virtual void SetDeDxMIPMax(Double_t value) { fDeDxMIPMax = value; }
34 virtual void SetDeltaBeta(Double_t value) { fDeltaBeta = value; }
35
36 TF1* GetDeDxVsEtaNeg() {return fDeDxVsEtaNeg;}
37 TF1* GetDeDxVsEtaPos() {return fDeDxVsEtaPos;}
38 TF1* GetDeDxVsNcl() {return fDeDxVsNcl;}
39 TProfile* GetHistMeanP() {return hMeanP;}
40 TH1D* GetHistDeDx(Bool_t forMIP, Int_t etaBin);
41 TH2D* GetHistDeDxVsNcl(Bool_t forMIP, Int_t etaBin);
42 TH2D* GetHistDeDxVsP(Int_t pid);
43
44 // virtual void Init(Int_t nPtBins, Double_t* ptBins);
45 // virtual void FillTrackInfo(Double_t weight=1);
46
47 private:
48
49 Bool_t IsMIP();
50 Bool_t IsElectron();
51
52 Int_t fStep; // Step 1 = Eta calibration, step 2 = dE/dx calibration
53 Int_t fInit; // Step 1 = Eta calibration, step 2 = dE/dx calibration
54
55 Double_t fPMIPMin; // Min P for MIP pion
56 Double_t fPMIPMax; // Max P for MIP pion
57 Double_t fDeDxMIPMin; // Min dE/dx for MIP pion
58 Double_t fDeDxMIPMax; // Max dE/dx for MIP pion
59 Double_t fDeltaBeta; // delta beta cut for electrons
60
61 TF1* fDeDxPi; // dE/dx vs p for pions
62 TF1* fSigmaDeDx; // sigma dE/dx vs ncl
63
64 // functions
65 TF1* fDeDxVsEtaNeg; // eta < 0 dE/dx calib
66 TF1* fDeDxVsEtaPos; // eta > 0 dE/dx calib
67 TF1* fDeDxVsNcl; // ncl dE/dx calib
68
69 // histograms - step 0
70 TH2D* hSelection1; // selected region in p and dE/dx for pion MIPs
71 TH2D* hSelection2; // selected region in p and dE/dx for pion MIPs
72 TH2D* hSelection3; // selected region in p and dE/dx for pion MIPs
73 TH2D* hSelectionElectrons2; // selected region in p and dE/dx for electrons
74 TH2D* hSelectionElectrons3; // selected region in p and dE/dx for electrons
75 TH2D* hDeDxVsEta; // dE/dx vs eta uncalibrated (pion MIPs)
76 TH2D* hDeDxVsEtaElectrons; // dE/dx vs eta uncalibrated (electrons)
77 TH2D* hNclVsEta; // Ncl vs eta (pion MIPs)
78 TH2D* hNclVsEtaElectrons; // Ncl vs eta (electrons)
79
80 // histograms - step 1
81 TH2D* hDeDxVsEtaCal; // dE/dx vs eta calibrated (pion MIPs)
82 TH2D* hDeDxVsEtaCalElectrons; // dE/dx vs eta calibrated (electrons)
83 TProfile* hMeanEta; // <eta> in the 4 eta interval (pion MIPs)
84 TProfile* hMeanEtaElectrons; // <eta> in the 4 eta interval (electrons)
85
86 TH1D* hDeDx; // dE/dx no eta cut (pion MIPs)
87 TH1D* hDeDx1; // dE/dx 0.0<|eta|<0.2 (pion MIPs)
88 TH1D* hDeDx2; // dE/dx 0.2<|eta|<0.4 (pion MIPs)
89 TH1D* hDeDx3; // dE/dx 0.4<|eta|<0.6 (pion MIPs)
90 TH1D* hDeDx4; // dE/dx 0.6<|eta|<0.8 (pion MIPs)
91 TH1D* hDeDxElectrons; // dE/dx no eta cut (electrons)
92 TH1D* hDeDxElectrons1; // dE/dx 0.0<|eta|<0.2 (electrons)
93 TH1D* hDeDxElectrons2; // dE/dx 0.2<|eta|<0.4 (electrons)
94 TH1D* hDeDxElectrons3; // dE/dx 0.4<|eta|<0.6 (electrons)
95 TH1D* hDeDxElectrons4; // dE/dx 0.6<|eta|<0.8 (electrons)
96
97 TH2D* hDeDxVsNclBefore; // dE/dx vs ncl for calib (step 2)
98
99 TH2D* hDeDxVsNcl; // dE/dx vs ncl no eta cut (pion MIPs)
100 TH2D* hDeDxVsNcl1; // dE/dx vs ncl 0.0<|eta|<0.2 (pion MIPs)
101 TH2D* hDeDxVsNcl2; // dE/dx vs ncl 0.2<|eta|<0.4 (pion MIPs)
102 TH2D* hDeDxVsNcl3; // dE/dx vs ncl 0.4<|eta|<0.6 (pion MIPs)
103 TH2D* hDeDxVsNcl4; // dE/dx vs ncl 0.6<|eta|<0.8 (pion MIPs)
104 TH2D* hDeDxVsNclElectrons; // dE/dx vs ncl no eta cut (electrons)
105 TH2D* hDeDxVsNclElectrons1; // dE/dx vs ncl 0.0<|eta|<0.2 (electrons)
106 TH2D* hDeDxVsNclElectrons2; // dE/dx vs ncl 0.2<|eta|<0.4 (electrons)
107 TH2D* hDeDxVsNclElectrons3; // dE/dx vs ncl 0.4<|eta|<0.6 (electrons)
108 TH2D* hDeDxVsNclElectrons4; // dE/dx vs ncl 0.6<|eta|<0.8 (electrons)
109
110 /* TH1D* GetHistDeDx(Int_t bin = 0) { */
111
112
113 /* } */
114
115 // histograms - step 1 dE/dx
116
117 TProfile* hMeanP; // <p> vs p
118
119 TH2D* hDeDxVsP; // dE/dx vs p
120 TH2D* hDeDxVsPPiMc; // dE/dx vs p for MC pions
121 TH2D* hDeDxVsPKMc; // dE/dx vs p for MC Kaons
122 TH2D* hDeDxVsPPMc; // dE/dx vs p for MC protons
123 TH2D* hDeDxVsPEMc; // dE/dx vs p for MC electrons
124 TH2D* hDeDxVsPMuMc; // dE/dx vs p for MC muons
125
126 // void Print(Option_t* option) const;
127
128 ClassDef(AliHighPtDeDxCalib, 1) // AliHighPtDeDxCalib information
129 };
130
131#endif
132