Flexible pt range for the efficiency histogramming
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerDisplay.h
1 #ifndef ALIMUONTRIGGERDISPLAY_H
2 #define ALIMUONTRIGGERDISPLAY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id$
7
8 /// \ingroup calib
9 /// \class AliMUONTriggerDisplay
10 /// \brief Converts histograms as a function of strip/board/slat number in human readable histograms
11 ///
12 //  Author Diego Stocco
13
14 // --- ROOT system ---
15
16 #include "TH2.h"
17
18 class TArrayD;
19 class TString;
20 class TGraph;
21
22 class AliMUONTriggerDisplay: public TObject {
23
24 public:
25   AliMUONTriggerDisplay();
26   virtual ~AliMUONTriggerDisplay();
27   
28   /// Display element inidices (strip,board,slat)
29   enum EDisplayType {
30     kDisplayStrips,    ///< Draw strips
31     kDisplayBoards,    ///< Draw boards
32     kDisplaySlats      ///< Draw slats
33   };
34
35   /// Display options inidices
36   enum EDisplayOption {
37     kDefaultDisplay,   ///< Default display
38     kNumbered,         ///< Histogram filled with board numbers
39     kShowZeroes,       ///< Displays strip/board/slat content even if it is 0
40     kNormalizeToArea   ///< Draw input histo divided by element area
41   };
42
43   TH2* GetEmptyDisplayHisto(TString displayHistoName, EDisplayType displayType,
44                             Int_t cathode, Int_t chamber=11,
45                             TString displayHistoTitle="");
46
47   TH2* GetBoardNumberHisto(TString displayHistoName,
48                            Int_t chamber=11,TString displayHistoTitle="");
49   
50   TH2* GetDisplayHistogram(TH1* inputHisto, TString displayHistoName,
51                            EDisplayType displayType, Int_t cathode,
52                            Int_t chamber=11, TString displayHistoTitle="",
53                            EDisplayOption displayOpt=kDefaultDisplay);
54
55   TH2* GetDisplayHistogram(TGraph* inputGraph, TString displayHistoName,
56                            EDisplayType displayType, Int_t cathode,
57                            Int_t chamber=11, TString displayHistoTitle="",
58                            EDisplayOption displayOpt=kDefaultDisplay);
59   
60   Bool_t FillDisplayHistogram(TH1* inputHisto, TH2* displayHisto,
61                               EDisplayType displayType, Int_t cathode,
62                               Int_t chamber=11,EDisplayOption displayOpt=kDefaultDisplay);
63   
64   Bool_t FillDisplayHistogram(TGraph* inputGraph, TH2* displayHisto,
65                               EDisplayType displayType, Int_t cathode,
66                               Int_t chamber=11,EDisplayOption displayOpt=kDefaultDisplay);
67   
68 private:
69   Bool_t AddSortedPoint(Float_t currVal, TArrayD& position, const Float_t kResetValue);
70   /// Return index
71   Int_t GetIndex(Int_t chamber, Int_t cathode) const { return 2*chamber + cathode;}
72
73   Bool_t InitOrDisplayTriggerInfo(TObject* inputHisto, TH2* displayHisto,
74                                   EDisplayType displayType,
75                                   Int_t cathode, Int_t chamber,
76                                   TString displayHistoName, TString displayHistoTitle,
77                                   EDisplayOption displayOpt=kDefaultDisplay);
78
79   void FillBins(TObject* inputHisto, TH2* displayHisto,
80                 Int_t iElement1, Int_t iElement2,
81                 Float_t x1, Float_t x2, Float_t y1, Float_t y2,
82                 const Float_t kShiftX, const Float_t kShiftY,
83                 EDisplayOption displayOpt);
84
85   ClassDef(AliMUONTriggerDisplay,0)  // Class for converting trigger histograms
86
87 };
88 #endif