Added support for the kCINT5 and kMUS5 classes
[u/mrichter/AliRoot.git] / OADB / AliOADBPWG2Spectra.h
1 #ifndef AliOADBPWG2Spectra_H
2 #define AliOADBPWG2Spectra_H
3
4 //-------------------------------------------------------------------------
5 //     OADB interface for the PWG2 spectra
6 //     Author: Michele Floris, CERN
7 //    
8 // -------------------------------------------------------------------------
9 #include "TNamed.h"
10 #include "TList.h"
11
12 class TList;
13 class TH1D;
14 class TH1;
15 class AliOADBPWG2Spectra : public TNamed {
16
17  public :
18
19   enum EPWG2SpectraDetector { kITSsa=0, kITSTPC, kTPC, kTOF, kTOFTPC, kNDetectors, kDetDummy };
20   enum EPWG2SpectraPIDType  { kGaussFit=0, kNSigma, kBayes, kKinks, kNPIDTypes };
21   enum EPWG2SpectraCharge   { kPos=0, kNeg, kNCharge };
22   enum EPWG2SpectraParticle { kPion = 0, kKaon, kProton, kNParticle };
23   AliOADBPWG2Spectra();
24   AliOADBPWG2Spectra(char* name);
25   virtual ~AliOADBPWG2Spectra();
26
27   void Init();
28
29   static const char * GetOADBPWG2SpectraFileName();
30   const char * GetHistoName(EPWG2SpectraDetector det, EPWG2SpectraPIDType pidType, EPWG2SpectraParticle part, 
31                                    EPWG2SpectraCharge charge, const char * centrTag = 0, Int_t centrBin = -1) ;
32   void AddHisto(TH1D * h, EPWG2SpectraDetector det, EPWG2SpectraPIDType pidType, EPWG2SpectraParticle part, 
33                   EPWG2SpectraCharge charge, const char * centrTag = 0, Int_t centrBin = -1) ;
34   TH1D * GetHisto(EPWG2SpectraDetector det, EPWG2SpectraPIDType pidType, EPWG2SpectraParticle part, 
35                   EPWG2SpectraCharge charge, const char * centrTag = 0, Int_t centrBin = -1);
36   TH1D * BookHisto(EPWG2SpectraDetector det, EPWG2SpectraPIDType pidType, EPWG2SpectraParticle part, 
37                    EPWG2SpectraCharge charge, const char * centrTag = 0, Int_t centrBin = -1) ;
38     
39   TH1D * GetHistoStandardBinning(const TH1D* h, EPWG2SpectraDetector det, EPWG2SpectraPIDType pidType, EPWG2SpectraParticle part, 
40                                  EPWG2SpectraCharge charge, const char * centrTag, Int_t centrBin) ;
41
42   Bool_t CompareBinning(TH1 * h1, TH1 * h2) ;
43
44   virtual void Print (const Option_t * opt = "") const  { fHistos->Print(opt); }
45
46 // Browsable
47   virtual Bool_t        IsFolder() const { return kTRUE; }
48   void Browse(TBrowser *b);
49
50   
51
52  private:
53   AliOADBPWG2Spectra(const AliOADBPWG2Spectra& cont); 
54   AliOADBPWG2Spectra& operator=(const AliOADBPWG2Spectra& cont);
55
56  private :
57   
58   TList * fHistos; // List containtig all the histograms
59   static const char * fDetectorNames[] ; // Detector tags
60   static const char * fPidTypeNames[]  ; // Name of the PID technique
61   static const char * fChargeTags[]    ; // tags for charges
62   static const char * fParticleNames[] ; // Particle tags
63
64   ClassDef(AliOADBPWG2Spectra, 1);
65 };
66
67 #endif