adding class AliCorrection that comprises a correction on the event-level and on...
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / dNdEtaAnalysis.h
CommitLineData
dc740de4 1/* $Id$ */
2
539b6cb4 3#ifndef DNDETANALYSIS_H
4#define DNDETANALYSIS_H
5
75ec0f41 6// ------------------------------------------------------
7//
8// Class for dn/deta analysis
9//
10// ------------------------------------------------------
11//
12// TODO:
13// - more documentation
14// - add debug statements
15// - add more histograms
16// - add functionality to set the bin sizes
17// - figure out correct way to treat the errors
18// - add functionality to make dn/deta for different mult classes?
19
7029240a 20#include <TNamed.h>
75ec0f41 21
45e97e28 22class TH3F;
ceb5d1b5 23class TH1D;
7029240a 24class TCollection;
45e97e28 25class AlidNdEtaCorrection;
75ec0f41 26
7029240a 27class dNdEtaAnalysis : public TNamed
ceb5d1b5 28{
75ec0f41 29public:
1afae8ff 30 enum { kVertexBinning = 1+3 }; // the first is for the whole vertex range, the others divide the vertex range
7029240a 31
1afae8ff 32 dNdEtaAnalysis();
7029240a 33 dNdEtaAnalysis(Char_t* name, Char_t* title);
16e24ca3 34 virtual ~dNdEtaAnalysis();
35
36 dNdEtaAnalysis(const dNdEtaAnalysis &c);
37 dNdEtaAnalysis &operator=(const dNdEtaAnalysis &c);
38 virtual void Copy(TObject &c) const;
75ec0f41 39
45e97e28 40 void FillTrack(Float_t vtx, Float_t eta, Float_t pt, Float_t weight);
41 void FillEvent(Float_t vtx, Float_t weight);
ceb5d1b5 42
847489f7 43 void Finish(AlidNdEtaCorrection* correction, Float_t ptCut);
ceb5d1b5 44
45 void DrawHistograms();
5fbd0b17 46 void LoadHistograms();
75ec0f41 47 void SaveHistograms();
ceb5d1b5 48
7029240a 49 virtual Long64_t Merge(TCollection* list);
50
45e97e28 51 TH3F* GetHistogram() { return fData; }
52 TH3F* GetUncorrectedHistogram() { return fDataUncorrected; }
6bf0714d 53 TH1D* GetVtxHistogram() { return fVtx; }
0ab29cfa 54 TH1D* GetPtHistogram() { return fPtDist; }
6bf0714d 55 TH1D* GetdNdEtaHistogram(Int_t i = 0) { return fdNdEta[i]; }
0ab29cfa 56 TH1D* GetdNdEtaPtCutOffCorrectedHistogram(Int_t i = 0) { return fdNdEtaPtCutOffCorrected[i]; }
ceb5d1b5 57
58protected:
45e97e28 59 TH3F* fData; // histogram Eta vs vtx (track count)
60 TH3F* fDataUncorrected; // uncorrected histograms Eta vs vtx (track count)
61
6bf0714d 62 TH1D* fVtx; // vtx histogram (event count)
1afae8ff 63
64 TH1D* fPtDist; // pt distribution
65
66 TH1D* fdNdEta[kVertexBinning]; // dndeta results for different vertex bins (0 = full range)
67 TH1D* fdNdEtaPtCutOffCorrected[kVertexBinning]; // dndeta results for different vertex bins (0 = full range), pt cut off corrected
ceb5d1b5 68
406eb63e 69 ClassDef(dNdEtaAnalysis, 1)
75ec0f41 70};
71
539b6cb4 72#endif