don't lie in the log!
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliTreeDraw.h
1 #ifndef ALITREEDRAW_H
2 #define ALITREEDRAW_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7
8 //////////////////////////////////////////////////////////////////////////////
9 //                          Class AliTreeDraw                               //
10 //                                                                          //
11 //   marian.ivanov@cern.ch                                                  //
12 //////////////////////////////////////////////////////////////////////////////
13
14
15
16 #include <TObject.h>
17 #include <TObjArray.h>
18 #include "TLinearFitter.h"
19
20 class TH1;
21 class TH1F;
22 class TH2F;
23 class TTree;
24 class TString;
25
26 class AliTreeDraw: public TObject{
27 public:
28   AliTreeDraw();
29   ~AliTreeDraw(){;}
30   TTree * T() { return fTree;}
31   void SetTree(TTree *tree){fTree=tree;}
32   const TH1 * GetRes() const{ return (TH1*)fRes;}
33   const TH1 * GetMean() const{ return (TH1*)fMean;}
34   const TObjArray* GetPoints() const {return fPoints;}
35   void  ClearHisto();
36   void  ClearPoints(){if (fPoints) fPoints->Clear();}
37   TString* FitPlane(const char* drawCommand, const char* formula, const char* cuts, Double_t & chi2, TVectorD &fitParam, TMatrixD &covMatrix, Int_t start=0, Int_t stop=10000000);
38
39
40   //
41   TH1F * DrawXY(const char * chx, const char *chy, const char* selection, 
42                 const char * quality,Int_t nbins, Float_t minx, Float_t maxx, 
43                 Float_t miny, Float_t maxy, Int_t nBinsRes=30);
44   TH1F * DrawLogXY(const char * chx, const char *chy, const char* selection, 
45                    const char * quality, Int_t nbins,Float_t minx, Float_t maxx, 
46                    Float_t miny, Float_t maxy, Int_t nBinsRes=30); 
47   TH1F * Eff(const char *variable, const char* selection, const char * quality, 
48              Int_t nbins,Float_t min, Float_t max); 
49   TH1F * EffLog(const char *variable, const char* selection, const char * quality, 
50              Int_t nbins,Float_t min, Float_t max);
51   //
52   void   GetPoints3D(const char * label, const char * chpoints, const char* selection, TTree * tpoints, Int_t color=6, Float_t rmin=4.);
53  
54   static void   AliLabelAxes(TH1* histo, const char* xAxisTitle, const char* yAxisTitle);
55   static Double_t* CreateLogBins(Int_t nBins, Double_t xMin, Double_t xMax);
56   static TH1F*  CreateEffHisto(TH1F* hGen, TH1F* hRec);
57   static TH1F*  CreateResHisto(TH2F* hRes2, TH1F **phMean, 
58                                Bool_t drawBinFits = kTRUE,Bool_t overflowBinFits = kFALSE);
59
60   static TH1F*  CreateResHistoI(TH2F* hRes2, TH1F **phMean, Int_t integ=0, 
61                                Bool_t drawBinFits = kTRUE);
62   static TH1F*  CreateResHistoII(TH2F* hRes2, TH1F **phMean, Int_t integ=0, 
63                                Bool_t drawBinFits = kTRUE, Int_t cut=0);
64
65
66
67 private:
68   AliTreeDraw(const AliTreeDraw& /*t*/):TObject(),fTree(0),fRes(0),fMean(0),fPoints(0){;}
69     AliTreeDraw & operator=(const AliTreeDraw & /*t*/){return *this;}
70
71   TTree * fTree;    //the tree for visualization - NOT OWNER
72   TH1F  * fRes;     //temporary histogram        - OWNER  
73   TH1F  * fMean;    //temporary histogram        - OWNER
74   TObjArray *fPoints;//                          - OWNER
75   ClassDef(AliTreeDraw,0)
76 };
77
78 #endif