]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONCalibrationData.h
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONCalibrationData.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 base
7 /// \class AliMUONCalibrationData
8 /// \brief Single entry point to access MUON calibration data.
9 /// 
10 //  Author Laurent Aphecetche
11
12 #ifndef ALIMUONCALIBRATIONDATA_H
13 #define ALIMUONCALIBRATIONDATA_H
14
15 #ifndef ROOT_TObject
16 #include "TObject.h"
17 #endif
18
19 class AliCDBEntry;
20 class AliMUONTriggerEfficiencyCells;
21 class AliMUONTriggerLut;
22 class AliMUONV1DStore;
23 class AliMUONV2DStore;
24 class AliMUONVCalibParam;
25 class TMap;
26
27 class AliMUONCalibrationData : public TObject
28 {
29 public:
30   /** Constructor.
31     * @param runNumber is used as a key to the CDB
32     * @param deferredInitialization if kFALSE, all the calibrations are fetched
33     * regardless of whether you'll use them or not.
34     */
35   AliMUONCalibrationData(Int_t runNumber=-1, Bool_t deferredInitialization=kTRUE);
36   virtual ~AliMUONCalibrationData();
37
38   AliMUONV2DStore* Neighbours() const;
39   
40   AliMUONV1DStore* Capacitances() const;
41   
42   AliMUONV2DStore* Gains() const;
43   
44   /// Get the Gain calibration object for channels within (detElemId,manuId).
45   AliMUONVCalibParam* Gains(Int_t detElemId, Int_t manuId) const;
46
47   /// Get the mask for the global trigger board.
48   AliMUONVCalibParam* GlobalTriggerBoardMasks() const;
49
50   /// Get the mask for a given local trigger board.
51   AliMUONVCalibParam* LocalTriggerBoardMasks(Int_t localBoardNumber) const;
52
53   /// Get the HV values
54   TMap* HV() const;
55   
56   /// Whether this object is valid or not (might be invalid if fetching from CDB failed).
57   Bool_t IsValid() const { return fIsValid; }
58   
59   AliMUONV2DStore* Pedestals() const;
60   
61   /// Get the Pedestal calibration object for channels within (detElemId,manuId).
62   AliMUONVCalibParam* Pedestals(Int_t detElemId, Int_t manuId) const;
63   
64   /// Dump to screen.
65   virtual void Print(Option_t* opt="") const;
66
67   /// Get the mask for a given regional trigger board.
68   AliMUONVCalibParam* RegionalTriggerBoardMasks(Int_t index) const;
69
70   /// The runnumber used by this object.
71   Int_t RunNumber() const { return fRunNumber; }
72   
73   /// Get the trigger Look Up Table.
74   AliMUONTriggerLut* TriggerLut() const;
75   
76   /// Get the trigger efficiency map
77   AliMUONTriggerEfficiencyCells* TriggerEfficiency() const;
78   
79   void Reset();
80   
81 protected:
82   /// Not implemented
83   AliMUONCalibrationData(const AliMUONCalibrationData& other);
84   /// Not implemented
85   AliMUONCalibrationData& operator=(const AliMUONCalibrationData& other);
86   
87 private:
88   AliCDBEntry* GetEntry(const char* path) const;
89   AliMUONV2DStore* OnDemandNeighbours() const;
90   AliMUONV1DStore* OnDemandCapacitances() const;
91   AliMUONV2DStore* OnDemandGains() const;
92   AliMUONV2DStore* OnDemandPedestals() const;
93   TMap* OnDemandHV() const;
94   AliMUONVCalibParam* OnDemandGlobalTriggerBoardMasks() const;
95   AliMUONV1DStore* OnDemandRegionalTriggerBoardMasks() const;
96   AliMUONV1DStore* OnDemandLocalTriggerBoardMasks() const;
97   AliMUONTriggerLut* OnDemandTriggerLut() const;
98   AliMUONTriggerEfficiencyCells* OnDemandTriggerEfficiency() const;
99   
100 private:  
101   mutable Bool_t fIsValid; ///<  Whether we were able to correctly initialize
102   Int_t fRunNumber; ///<  The run number for which we hold calibrations
103   mutable AliMUONV2DStore* fGains; //!< Gains
104   mutable AliMUONV2DStore* fPedestals; //!< Pedestals
105   mutable TMap* fHV; //!< HV
106   mutable AliMUONV1DStore* fLocalTriggerBoardMasks; //!< Local trigger board maska
107   mutable AliMUONV1DStore* fRegionalTriggerBoardMasks; //!< Regional trigger board maska
108   mutable AliMUONVCalibParam* fGlobalTriggerBoardMasks; //!< Global trigger board maska
109   mutable AliMUONTriggerLut* fTriggerLut; //!< TRigger LUTs
110   mutable AliMUONTriggerEfficiencyCells* fTriggerEfficiency; //!< Trigger efficiency cells
111   mutable AliMUONV1DStore* fCapacitances; //!< Manu capacitances
112   mutable AliMUONV2DStore* fNeighbours; //!< list of neighbours for all channels
113   
114   ClassDef(AliMUONCalibrationData,6) // Storage for all MUON calibration data.
115 };
116
117 #endif