new way of calculation Nsigma correction
[u/mrichter/AliRoot.git] / PWG0 / CorrectionMatrix2D.h
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 /* $Id$ */
14
15 #ifndef CORRECTIONMATRIX2D_H
16 #define CORRECTIONMATRIX2D_H
17
18
19 #include <TNamed.h>
20 #include <TH2.h>
21
22 class TFile;
23 class TCanvas;
24 class AliLog;
25
26 class CorrectionMatrix2D : public TNamed 
27 {
28 public:
29   CorrectionMatrix2D(const CorrectionMatrix2D& c);
30   CorrectionMatrix2D(Char_t* name, Char_t* title,
31                      Int_t nBinX=10, Float_t Xmin=0., Float_t Xmax=10.,
32                      Int_t nBinY=10, Float_t Ymin=0., Float_t Ymax=10.);
33   
34   CorrectionMatrix2D(Char_t* name, Char_t* title,
35                      Int_t nBinX, Float_t *X, Int_t nBinY, Float_t *Y);
36
37   virtual ~CorrectionMatrix2D(); 
38
39   CorrectionMatrix2D& operator=(const CorrectionMatrix2D& corrMatrix);
40
41   virtual void Copy(TObject& c) const;
42
43   TH2F* GetGeneratedHistogram() { return fhGene; }
44   TH2F* GetMeasuredHistogram()  { return fhMeas; }
45
46   TH1F* Get1DCorrection(Char_t* opt="x");
47
48   void SetGeneratedHistogram(TH2F* agene) { fhGene = agene; }
49   void SetMeasuredHistogram(TH2F* ameas)  { fhMeas = ameas; }
50
51   void FillMeas(Float_t ax, Float_t ay) {fhMeas->Fill(ax,ay);}
52   void FillGene(Float_t ax, Float_t ay) {fhGene->Fill(ax,ay);}
53   
54   void Divide();  
55   
56   virtual Long64_t Merge(TCollection* list);
57                 
58   void SetAxisTitles(Char_t* titleX="", Char_t* titleY="");
59   
60   void SaveHistograms();
61   void DrawHistograms();  
62
63   Bool_t  LoadHistograms(Char_t* fileName, Char_t* dir = ".");
64   
65   void    RemoveEdges(Float_t cut=2, Int_t nBinsX=0, Int_t nBinsY=0);
66   
67   Float_t GetCorrection(Float_t ax, Float_t ay) {return fhCorr->GetBinContent(fhCorr->FindBin(ax,ay));}
68   
69 protected:
70   
71   TH2F*    fhMeas;  // histogram of measured particles (or tracks)
72   TH2F*    fhGene;  // histogram of generated particles
73
74   TH2F*    fhCorr;  // correction histogram (ratio generated/measured)
75
76   ClassDef(CorrectionMatrix2D,1)
77 };
78
79 #endif
80