]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONCalibrationData.h
03a2c85e6a66f6fddce496029711e7a730de6cf7
[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 AliMUONVStore;
23 class AliMUONVStore;
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   AliMUONVStore* Capacitances() const;
39
40   /// Create a capa store (which must be deleted) from OCDB for the given run
41   static AliMUONVStore* CreateCapacitances(Int_t runNumber);
42
43   /// Create a gain store (which must be deleted) from OCDB for the given run
44   static AliMUONVStore* CreateGains(Int_t runNumber);
45
46   /// Create a global trigger mask (which must be deleted) from OCDB for the given run
47   static AliMUONVCalibParam* CreateGlobalTriggerBoardMasks(Int_t runNumber);
48   
49   /// Create a hv map (which must be deleted) from OCDB for the given run
50   static TMap* CreateHV(Int_t runNumber);
51
52   /// Create a neighbours store (which must be deleted) from OCDB for the given run
53   static AliMUONVStore* CreateNeighbours(Int_t runNumber);
54   
55   /// Create a local trigger mask store (which must be deleted) for a given run
56   static AliMUONVStore* CreateLocalTriggerBoardMasks(Int_t runNumber);
57
58   /// Create a pedestal store (which must be deleted) from OCDB for the given run
59   static AliMUONVStore* CreatePedestals(Int_t runNumber);
60
61   /// Create a regional trigger mask store (which must be deleted) for a given run
62   static AliMUONVStore* CreateRegionalTriggerBoardMasks(Int_t runNumber);
63
64   /// Create a trigger Look Up Table (which must be deleted) for a given run
65   static AliMUONTriggerLut* CreateTriggerLut(Int_t runNumber);
66   
67   /// Create a trigger efficiency map (which must be deleted) for a given run
68   static AliMUONTriggerEfficiencyCells* CreateTriggerEfficiency(Int_t runNumber);
69   
70   /// Get all the gains
71   AliMUONVStore* Gains() const;
72
73   /// Get the mask for the global trigger board.
74   AliMUONVCalibParam* GlobalTriggerBoardMasks() const;
75     
76   /// Get the Gain calibration object for channels within (detElemId,manuId).
77   AliMUONVCalibParam* Gains(Int_t detElemId, Int_t manuId) const;
78     
79   /// Get the HV values
80   TMap* HV() const;
81     
82   /// Whether this object is valid or not (might be invalid if fetching from CDB failed).
83   Bool_t IsValid() const { return fIsValid; }
84     
85   /// Get the mask for a given local trigger board.
86   AliMUONVCalibParam* LocalTriggerBoardMasks(Int_t localBoardNumber) const;
87     
88   /// Get the neighbours store
89   AliMUONVStore* Neighbours() const;
90   
91   /// Get the pedestal store
92   AliMUONVStore* Pedestals() const;
93   
94   /// Get the Pedestal calibration object for channels within (detElemId,manuId).
95   AliMUONVCalibParam* Pedestals(Int_t detElemId, Int_t manuId) const;
96   
97   /// Dump to screen.
98   virtual void Print(Option_t* opt="") const;
99
100   /// Get the mask for a given regional trigger board.
101   AliMUONVCalibParam* RegionalTriggerBoardMasks(Int_t index) const;
102
103   /// The runnumber used by this object.
104   Int_t RunNumber() const { return fRunNumber; }
105   
106   /// Get the trigger Look Up Table.
107   AliMUONTriggerLut* TriggerLut() const;
108   
109   /// Get the trigger efficiency map
110   AliMUONTriggerEfficiencyCells* TriggerEfficiency() const;
111   
112   void Reset();
113   
114 protected:
115   /// Not implemented
116   AliMUONCalibrationData(const AliMUONCalibrationData& other);
117   /// Not implemented
118   AliMUONCalibrationData& operator=(const AliMUONCalibrationData& other);
119   
120 private:  
121     
122   static TObject* CreateObject(Int_t runNumber, const char* path);
123   
124 private:
125   mutable Bool_t fIsValid; ///<  Whether we were able to correctly initialize
126   Int_t fRunNumber; ///<  The run number for which we hold calibrations
127   mutable AliMUONVStore* fGains; //!< Gains
128   mutable AliMUONVStore* fPedestals; //!< Pedestals
129   mutable TMap* fHV; //!< HV
130   mutable AliMUONVStore* fLocalTriggerBoardMasks; //!< Local trigger board maska
131   mutable AliMUONVStore* fRegionalTriggerBoardMasks; //!< Regional trigger board maska
132   mutable AliMUONVCalibParam* fGlobalTriggerBoardMasks; //!< Global trigger board maska
133   mutable AliMUONTriggerLut* fTriggerLut; //!< TRigger LUTs
134   mutable AliMUONTriggerEfficiencyCells* fTriggerEfficiency; //!< Trigger efficiency cells
135   mutable AliMUONVStore* fCapacitances; //!< Manu capacitances
136   mutable AliMUONVStore* fNeighbours; //!< list of neighbours for all channels
137   
138   ClassDef(AliMUONCalibrationData,7) // Storage for all MUON calibration data.
139 };
140
141 #endif