1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONCalibrationData
8 /// \brief Single entry point to access MUON calibration data.
10 // Author Laurent Aphecetche
12 #ifndef ALIMUONCALIBRATIONDATA_H
13 #define ALIMUONCALIBRATIONDATA_H
20 class AliMUONGlobalCrateConfig;
21 class AliMUONRegionalTriggerConfig;
22 class AliMUONRejectList;
23 class AliMUONTriggerEfficiencyCells;
24 class AliMUONTriggerLut;
25 class AliMUONVCalibParam;
30 class AliMUONCalibrationData : public TObject
34 * @param runNumber is used as a key to the CDB
35 * @param deferredInitialization if kFALSE, all the calibrations are fetched
36 * regardless of whether you'll use them or not.
38 AliMUONCalibrationData(Int_t runNumber=-1, Bool_t deferredInitialization=kTRUE);
39 virtual ~AliMUONCalibrationData();
41 AliMUONVStore* Capacitances() const;
43 /// Create a capa store (which must be deleted) from OCDB for the given run
44 static AliMUONVStore* CreateCapacitances(Int_t runNumber, Int_t* startOfValidity=0);
46 /// Create a gain store (which must be deleted) from OCDB for the given run
47 static AliMUONVStore* CreateGains(Int_t runNumber, Int_t* startOfValidity=0);
49 /// Create a global trigger mask (which must be deleted) from OCDB for the given run
50 static AliMUONGlobalCrateConfig* CreateGlobalTriggerCrateConfig(Int_t runNumber, Int_t* startOfValidity=0);
52 /// Create a hv map (which must be deleted) from OCDB for the given run
53 static TMap* CreateHV(Int_t runNumber, Int_t* startOfValidity=0, Bool_t patched=kTRUE, TList* messages=0x0);
55 /// Create a Trigger HV and current map (which must be deleted) from OCDB for the given run
56 static TMap* CreateTriggerDCS(Int_t runNumber, Int_t* startOfValidity=0);
58 /// Create a neighbours store (which must be deleted) from OCDB for the given run
59 static AliMUONVStore* CreateNeighbours(Int_t runNumber, Int_t* startOfValidity=0);
61 /// Create a local trigger mask store (which must be deleted) for a given run
62 static AliMUONVStore* CreateLocalTriggerBoardMasks(Int_t runNumber, Int_t* startOfValidity=0);
64 /// Create an occupancy map store (which must be deleted) from OCDB for the given run
65 static AliMUONVStore* CreateOccupancyMap(Int_t runNumber, Int_t* startOfValidity=0);
67 /// Create a rejectlist store (which must be deleted) from OCDB for the given run
68 static AliMUONRejectList* CreateRejectList(Int_t runNumber, Int_t* startOfValidity=0);
70 /// Create a pedestal store (which must be deleted) from OCDB for the given run
71 static AliMUONVStore* CreatePedestals(Int_t runNumber, Int_t* startOfValidity=0);
73 /// Create a configuration store (which must be deleted) from OCDB for the given run
74 static AliMUONVStore* CreateConfig(Int_t runNumber, Int_t* startOfValidity=0);
76 /// Create a regional trigger mask store (which must be deleted) for a given run
77 static AliMUONRegionalTriggerConfig* CreateRegionalTriggerConfig(Int_t runNumber, Int_t* startOfValidity=0);
79 /// Create a trigger Look Up Table (which must be deleted) for a given run
80 static AliMUONTriggerLut* CreateTriggerLut(Int_t runNumber, Int_t* startOfValidity=0);
81 /// Create a trigger efficiency map (which must be deleted) for a given run
82 static AliMUONTriggerEfficiencyCells* CreateTriggerEfficiency(Int_t runNumber, Int_t* startOfValidity=0);
85 AliMUONVStore* Gains() const;
87 /// Get the configuration for the global trigger board.
88 AliMUONGlobalCrateConfig* GlobalTriggerCrateConfig() const;
90 /// Get the Gain calibration object for channels within (detElemId,manuId).
91 AliMUONVCalibParam* Gains(Int_t detElemId, Int_t manuId) const;
93 /// Get the HV values. Use patched=kFALSE to get unprocessed (i.e. "raw") values as they are in the OCDB
94 TMap* HV(Bool_t patched=kTRUE) const;
96 /// Get the Trigger HV and current values
97 TMap* TriggerDCS() const;
99 /// Whether this object is valid or not (might be invalid if fetching from CDB failed).
100 Bool_t IsValid() const { return fIsValid; }
102 /// Get the mask for a given local trigger board.
103 AliMUONVCalibParam* LocalTriggerBoardMasks(Int_t localBoardNumber) const;
105 /// Get the neighbours store
106 AliMUONVStore* Neighbours() const;
108 /// Get the pedestal store
109 AliMUONVStore* Pedestals() const;
111 /// Get the config store
112 AliMUONVStore* Config() const;
114 /// Get the occupancy map store
115 AliMUONVStore* OccupancyMap() const;
117 /// Get the reject list store
118 AliMUONRejectList* RejectList() const;
120 /// Get the Pedestal calibration object for channels within (detElemId,manuId).
121 AliMUONVCalibParam* Pedestals(Int_t detElemId, Int_t manuId) const;
124 virtual void Print(Option_t* opt="") const;
126 /// Get the config for regional trigger.
127 AliMUONRegionalTriggerConfig* RegionalTriggerConfig() const;
130 /// The runnumber used by this object.
131 Int_t RunNumber() const { return fRunNumber; }
133 /// Get the trigger Look Up Table.
134 AliMUONTriggerLut* TriggerLut() const;
136 /// Get the trigger efficiency map
137 AliMUONTriggerEfficiencyCells* TriggerEfficiency() const;
141 static TObject* CreateObject(Int_t runNumber, const char* path, Int_t* startOfValidity=0x0);
143 static void Check(Int_t runNumber);
145 static void BypassStores(AliMUONVStore* ped, AliMUONVStore* gain);
149 AliMUONCalibrationData(const AliMUONCalibrationData& other);
151 AliMUONCalibrationData& operator=(const AliMUONCalibrationData& other);
153 static Bool_t PatchHVValues(TObjArray& values, TString* msg=0x0);
155 static Bool_t CheckHVGroup(TObjArray& values, Int_t first, Int_t last, Double_t& value,
156 Int_t& slope, TString* msg);
159 mutable Bool_t fIsValid; ///< Whether we were able to correctly initialize
160 Int_t fRunNumber; ///< The run number for which we hold calibrations
161 mutable AliMUONVStore* fGains; //!< Gains
162 mutable AliMUONVStore* fPedestals; //!< Pedestals
163 mutable TMap* fHV; //!< HV
164 mutable TMap* fTriggerDCS; //!< Trigger HV and Currents
165 mutable AliMUONVStore* fLocalTriggerBoardMasks; //!< Local trigger board maska
166 mutable AliMUONRegionalTriggerConfig* fRegionalTriggerConfig; //!< Regional trigger config
167 mutable AliMUONGlobalCrateConfig* fGlobalTriggerCrateConfig; //!< Global trigger crate config
169 mutable AliMUONTriggerLut* fTriggerLut; //!< TRigger LUTs
170 mutable AliMUONTriggerEfficiencyCells* fTriggerEfficiency; //!< Trigger efficiency cells
171 mutable AliMUONVStore* fCapacitances; //!< Manu capacitances
172 mutable AliMUONVStore* fNeighbours; //!< list of neighbours for all channels
174 mutable AliMUONVStore* fOccupancyMap; //!< occupancy map
176 mutable AliMUONRejectList* fRejectList; //!< reject list
178 static AliMUONVStore* fgBypassPedestals;
179 static AliMUONVStore* fgBypassGains;
181 mutable AliMUONVStore* fConfig; //!< configuration of the tracker
183 ClassDef(AliMUONCalibrationData,13) // Storage for all MUON calibration data.