]>
Commit | Line | Data |
---|---|---|
1caed034 | 1 | // ------------------------------------------------------ |
2 | // | |
3 | // Class to handle 2d-corrections. | |
4 | // | |
5 | // ------------------------------------------------------ | |
6 | // | |
7 | // TODO: | |
8 | // | |
9 | // - change the finish method (should not be called finish) | |
10 | // - add option in draw method | |
11 | // | |
12 | // | |
13 | ||
dc740de4 | 14 | /* $Id$ */ |
15 | ||
ddec1c19 | 16 | #ifndef CORRECTIONMATRIX2D_H |
17 | #define CORRECTIONMATRIX2D_H | |
18 | ||
ddec1c19 | 19 | |
b6d3306b | 20 | #ifndef ROOT_TNamed |
21 | #include "TNamed.h" | |
ddec1c19 | 22 | #endif |
23 | #ifndef ROOT_TFile | |
24 | #include "TFile.h" | |
25 | #endif | |
26 | #ifndef ROOT_TH2 | |
27 | #include "TH2.h" | |
28 | #endif | |
ddec1c19 | 29 | #ifndef ROOT_TError |
30 | #include "TError.h" | |
31 | #endif | |
b6d3306b | 32 | #ifndef ROOT_TCanvas |
33 | #include "TCanvas.h" | |
34 | #endif | |
ddec1c19 | 35 | |
b6d3306b | 36 | class CorrectionMatrix2D : public TNamed |
ddec1c19 | 37 | { |
ddec1c19 | 38 | public: |
1caed034 | 39 | CorrectionMatrix2D(const CorrectionMatrix2D& c); |
b6d3306b | 40 | CorrectionMatrix2D(Char_t* name="CorrectionMatrix", Char_t* title="", |
41 | Int_t nBinX=10, Float_t Xmin=0., Float_t Xmax=10., | |
42 | Int_t nBinY=10, Float_t Ymin=0., Float_t Ymax=10.); | |
43 | ||
44 | CorrectionMatrix2D(Char_t* name, Char_t* title, | |
45 | Int_t nBinX, Float_t *X, Int_t nBinY, Float_t *Y); | |
ddec1c19 | 46 | |
b6d3306b | 47 | virtual ~CorrectionMatrix2D(); |
ddec1c19 | 48 | |
1caed034 | 49 | CorrectionMatrix2D& operator=(const CorrectionMatrix2D& corrMatrix); |
50 | ||
51 | virtual void Copy(TObject& c) const; | |
52 | ||
b6d3306b | 53 | TH2F* GetGeneratedHistogram() { return fhGene; } |
54 | TH2F* GetMeasuredHistogram() { return fhMeas; } | |
ddec1c19 | 55 | |
b6d3306b | 56 | void SetGeneratedHistogram(TH2F* agene) { fhGene = agene; } |
1caed034 | 57 | void SetMeasuredHistogram(TH2F* ameas) { fhMeas = ameas; } |
ddec1c19 | 58 | |
b6d3306b | 59 | void FillMeas(Float_t ax, Float_t ay) {fhMeas->Fill(ax,ay);} |
60 | void FillGene(Float_t ax, Float_t ay) {fhGene->Fill(ax,ay);} | |
ddec1c19 | 61 | |
b6d3306b | 62 | void Finish(); |
63 | ||
64 | void SetAxisTitles(Char_t* titleX="", Char_t* titleY=""); | |
ddec1c19 | 65 | |
66 | void SaveHistograms(); | |
67 | void DrawHistograms(); | |
68 | ||
69 | Bool_t LoadHistograms(Char_t* fileName, Char_t* dir); | |
70 | Bool_t LoadCorrection(Char_t* fileName, Char_t* dir) {return LoadHistograms(fileName, dir);} | |
71 | ||
72 | void RemoveEdges(Float_t cut=2, Int_t nBinsVtx=0, Int_t nBinsEta=0); | |
73 | ||
b6d3306b | 74 | Float_t GetCorrection(Float_t ax, Float_t ay) {return fhCorr->GetBinContent(fhCorr->FindBin(ax,ay));} |
ddec1c19 | 75 | |
b6d3306b | 76 | protected: |
77 | ||
1caed034 | 78 | TH2F* fhMeas; // histogram of measured particles (or tracks) |
79 | TH2F* fhGene; // histogram of generated particles | |
b6d3306b | 80 | |
1caed034 | 81 | TH2F* fhRatio; // ratio measured/generated |
82 | TH2F* fhCorr; // ratio generated/measured | |
b6d3306b | 83 | |
84 | ||
ddec1c19 | 85 | ClassDef(CorrectionMatrix2D,0) |
86 | }; | |
87 | ||
88 | #endif | |
89 |