]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerChamberEfficiency.h
Updating limits to cope both with p-A and A-p ZDC timing
[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   Float_t GetCellEfficiencyError(Int_t detElemId, Int_t localBoard, Int_t hType, Int_t errType) const;
36   TObject* GetEffObject(Int_t histoType, Int_t countType, Int_t chamber);
37     
38   void IsTriggered(Int_t detElemId, Int_t localBoard, Bool_t &trigBend, Bool_t &trigNonBend) const;
39
40   Bool_t LowStatisticsSettings(Bool_t useMeanValues=kTRUE);
41
42   // Methods for display
43   void DisplayEfficiency(Bool_t perSlat=kFALSE, Bool_t show2Dhisto = kTRUE);
44
45   enum{
46     kHboardEff,     ///< Efficiency per board index
47     kHslatEff       ///< Efficiency per slat index
48   };
49
50 private:
51     Int_t FindChamberIndex(Int_t detElemId) const;
52     void FillFromList(Bool_t useMeanValues = kFALSE);
53
54     Int_t GetIndex(Int_t histoType, Int_t countType, 
55                    Int_t chamber = -1) const;
56
57     TGraphAsymmErrors* GetEfficiencyGraph(TH1* histoNum, TH1* histoDen);
58
59     Bool_t fIsOwner; ///< Owner of efficiency map
60     AliMUONTriggerEfficiencyCells* fEfficiencyMap; ///< Efficiency map
61
62     TObjArray* fEfficiencyObjects; ///< Collect all efficiency 
63     TList* fDisplayList; //!< List of objects for display
64
65     ClassDef(AliMUONTriggerChamberEfficiency,0) // Trigger efficiency store
66 };
67 #endif