bug fixed
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerChamberEfficiency.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5
6 /// \ingroup calib
7 /// \class AliMUONTriggerChamberEfficiency
8 /// \brief Calculate, apply and possibly draw trigger chamber efficiency.
9 ///
10 //  Author: Diego Stocco; Subatech, Nantes
11
12 #ifndef ALIMUONTRIGGERCHAMBEREFFICIENCY_H
13 #define ALIMUONTRIGGERCHAMBEREFFICIENCY_H
14
15 #include "TObject.h"
16 class TH1;
17 class TList;
18 class TObjArray;
19 class TGraphAsymmErrors;
20 class AliMUONTriggerEfficiencyCells;
21
22 class AliMUONTriggerChamberEfficiency : public TObject
23 {
24 public:
25   AliMUONTriggerChamberEfficiency(AliMUONTriggerEfficiencyCells* effMap);
26   AliMUONTriggerChamberEfficiency(const Char_t* filename,
27                                   const Char_t* listname="triggerChamberEff");
28
29   AliMUONTriggerChamberEfficiency(const AliMUONTriggerChamberEfficiency& other); // copy constructor
30   AliMUONTriggerChamberEfficiency& operator=(const AliMUONTriggerChamberEfficiency& other); // assignment operator
31
32   virtual ~AliMUONTriggerChamberEfficiency();
33
34   Float_t GetCellEfficiency(Int_t detElemId, Int_t localBoard, Int_t hType) const;
35     
36   void IsTriggered(Int_t detElemId, Int_t localBoard, Bool_t &trigBend, Bool_t &trigNonBend) const;
37
38   Bool_t LowStatisticsSettings(Bool_t useMeanValues=kTRUE);
39
40   // Methods for display
41   void DisplayEfficiency(Bool_t perSlat=kFALSE, Bool_t show2Dhisto = kTRUE);
42
43   enum{
44     kHboardEff,     ///< Efficiency per board index
45     kHslatEff       ///< Efficiency per slat index
46   };
47
48 private:
49     Int_t FindChamberIndex(Int_t detElemId) const;
50     void FillFromList(Bool_t useMeanValues = kFALSE);
51
52     Int_t GetIndex(Int_t histoType, Int_t countType, 
53                    Int_t chamber = -1) const;
54
55     TGraphAsymmErrors* GetEfficiencyGraph(TH1* histoNum, TH1* histoDen);
56
57     Bool_t fIsOwner; ///< Owner of efficiency map
58     AliMUONTriggerEfficiencyCells* fEfficiencyMap; ///< Efficiency map
59
60     TObjArray* fEfficiencyObjects; ///< Collect all efficiency 
61     TList* fDisplayList; //!< List of objects for display
62
63     ClassDef(AliMUONTriggerChamberEfficiency,0) // Trigger efficiency store
64 };
65 #endif