Project
Loading...
Searching...
No Matches
CalibDB.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
19#include "EMCALCalib/FeeDCS.h"
20#include "EMCALCalib/CalibDB.h"
21#include "EMCALCalib/ElmbData.h"
22#include "EMCALCalib/Pedestal.h"
23
24using namespace o2::emcal;
25
26CalibDB::CalibDB(const std::string_view server) : CalibDB()
27{
28 mCCDBServer = server;
29}
30
31void CalibDB::init()
32{
33 mCCDBManager.init(mCCDBServer);
34 auto& mgr = CcdbManager::instance();
35 mgr.setURL(mCCDBServer);
36 mInit = true;
37}
38
39void CalibDB::storeBadChannelMap(BadChannelMap* bcm, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
40{
41 if (!mInit) {
42 init();
43 }
44 mCCDBManager.storeAsTFileAny(bcm, getCDBPathBadChannelMap(), metadata, rangestart, rangeend);
45}
46
47void CalibDB::storeTimeCalibParam(TimeCalibrationParams* tcp, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
48{
49 if (!mInit) {
50 init();
51 }
52 mCCDBManager.storeAsTFileAny(tcp, getCDBPathTimeCalibrationParams(), metadata, rangestart, rangeend);
53}
54
55void CalibDB::storeTimeCalibParamL1Phase(TimeCalibParamL1Phase* tcp, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
56{
57 if (!mInit) {
58 init();
59 }
60 mCCDBManager.storeAsTFileAny(tcp, getCDBPathL1Phase(), metadata, rangestart, rangeend);
61}
62
63void CalibDB::storeTempCalibParam(TempCalibrationParams* tcp, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
64{
65 if (!mInit) {
66 init();
67 }
68 mCCDBManager.storeAsTFileAny(tcp, getCDBPathTemperatureCalibrationParams(), metadata, rangestart, rangeend);
69}
70
71void CalibDB::storeTempCalibParamSM(TempCalibParamSM* tcp, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
72{
73 if (!mInit) {
74 init();
75 }
76 mCCDBManager.storeAsTFileAny(tcp, getCDBPathTemperatureCalibrationParamsSM(), metadata, rangestart, rangeend);
77}
78
79void CalibDB::storeGainCalibFactors(GainCalibrationFactors* gcf, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
80{
81 if (!mInit) {
82 init();
83 }
84 mCCDBManager.storeAsTFileAny(gcf, getCDBPathGainCalibrationParams(), metadata, rangestart, rangeend);
85}
86
87void CalibDB::storeFeeDCSData(FeeDCS* dcs, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
88{
89 if (!mInit) {
90 init();
91 }
92 mCCDBManager.storeAsTFileAny(dcs, getCDBPathFeeDCS(), metadata, rangestart, rangeend);
93}
94
95void CalibDB::storeTemperatureSensorData(ElmbData* dcs, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
96{
97 if (!mInit) {
98 init();
99 }
100 mCCDBManager.storeAsTFileAny(dcs, getCDBPathTemperatureSensor(), metadata, rangestart, rangeend);
101}
102
103void CalibDB::storePedestalData(Pedestal* pedestals, const std::map<std::string, std::string>& metadata, ULong_t rangestart, ULong_t rangeend)
104{
105 if (!mInit) {
106 init();
107 }
108 mCCDBManager.storeAsTFileAny(pedestals, getCDBPathTemperatureSensor(), metadata, rangestart, rangeend);
109}
110
111BadChannelMap* CalibDB::readBadChannelMap(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
112{
113 if (!mInit) {
114 init();
115 }
116 auto& mgr = CcdbManager::instance();
117 BadChannelMap* result = mgr.getForTimeStamp<o2::emcal::BadChannelMap>(getCDBPathBadChannelMap(), timestamp);
118 if (!result) {
119 throw ObjectNotFoundException(mCCDBServer, getCDBPathBadChannelMap(), metadata, timestamp);
120 }
121 return result;
122}
123
124TimeCalibrationParams* CalibDB::readTimeCalibParam(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
125{
126 if (!mInit) {
127 init();
128 }
129 auto& mgr = CcdbManager::instance();
131 if (!result) {
132 throw ObjectNotFoundException(mCCDBServer, getCDBPathTimeCalibrationParams(), metadata, timestamp);
133 }
134 return result;
135}
136
137TimeCalibParamL1Phase* CalibDB::readTimeCalibParamL1Phase(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
138{
139 if (!mInit) {
140 init();
141 }
142 auto& mgr = CcdbManager::instance();
144 if (!result) {
145 throw ObjectNotFoundException(mCCDBServer, getCDBPathL1Phase(), metadata, timestamp);
146 }
147 return result;
148}
149
150TempCalibrationParams* CalibDB::readTempCalibParam(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
151{
152 if (!mInit) {
153 init();
154 }
155 auto& mgr = CcdbManager::instance();
157 if (!result) {
158 throw ObjectNotFoundException(mCCDBServer, getCDBPathTemperatureCalibrationParams(), metadata, timestamp);
159 }
160 return result;
161}
162
163TempCalibParamSM* CalibDB::readTempCalibParamSM(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
164{
165 if (!mInit) {
166 init();
167 }
168 auto& mgr = CcdbManager::instance();
170 if (!result) {
171 throw ObjectNotFoundException(mCCDBServer, getCDBPathTemperatureCalibrationParamsSM(), metadata, timestamp);
172 }
173 return result;
174}
175
176GainCalibrationFactors* CalibDB::readGainCalibFactors(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
177{
178 if (!mInit) {
179 init();
180 }
181 auto& mgr = CcdbManager::instance();
183 if (!result) {
184 throw ObjectNotFoundException(mCCDBServer, getCDBPathGainCalibrationParams(), metadata, timestamp);
185 }
186 return result;
187}
188
189EMCALChannelScaleFactors* CalibDB::readChannelScaleFactors(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
190{
191 if (!mInit) {
192 init();
193 }
194 auto& mgr = CcdbManager::instance();
196 if (!result) {
197 throw ObjectNotFoundException(mCCDBServer, getCDBPathChannelScaleFactors(), metadata, timestamp);
198 }
199 return result;
200}
201
202FeeDCS* CalibDB::readFeeDCSData(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
203{
204 if (!mInit) {
205 init();
206 }
207 auto& mgr = CcdbManager::instance();
208 FeeDCS* result = mgr.getForTimeStamp<o2::emcal::FeeDCS>(getCDBPathFeeDCS(), timestamp);
209 if (!result) {
210 throw ObjectNotFoundException(mCCDBServer, getCDBPathFeeDCS(), metadata, timestamp);
211 }
212 return result;
213}
214
215ElmbData* CalibDB::readTemperatureSensorData(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
216{
217 if (!mInit) {
218 init();
219 }
220 auto& mgr = CcdbManager::instance();
221 ElmbData* result = mgr.getForTimeStamp<o2::emcal::ElmbData>(getCDBPathTemperatureSensor(), timestamp);
222 if (!result) {
223 throw ObjectNotFoundException(mCCDBServer, getCDBPathTemperatureSensor(), metadata, timestamp);
224 }
225 return result;
226}
227
228Pedestal* CalibDB::readPedestalData(ULong_t timestamp, const std::map<std::string, std::string>& metadata)
229{
230 if (!mInit) {
231 init();
232 }
233 auto& mgr = CcdbManager::instance();
234 Pedestal* result = mgr.getForTimeStamp<o2::emcal::Pedestal>(getCDBPathChannelPedestals(), timestamp);
235 if (!result) {
236 throw ObjectNotFoundException(mCCDBServer, getCDBPathChannelPedestals(), metadata, timestamp);
237 }
238 return result;
239}
static BasicCCDBManager & instance()
int storeAsTFileAny(const T *obj, std::string const &path, std::map< std::string, std::string > const &metadata, long startValidityTimestamp=-1, long endValidityTimestamp=-1, std::vector< char >::size_type maxSize=0) const
Definition CcdbApi.h:157
void init(std::string const &hosts)
Definition CcdbApi.cxx:165
CCDB container for masked cells in EMCAL.
Handling errors due to objects not found in the CCDB.
Definition CalibDB.h:82
Interface to calibration data from CCDB for EMCAL.
Definition CalibDB.h:68
TimeCalibParamL1Phase * readTimeCalibParamL1Phase(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find L1 phase shifts in the CCDB for given timestamp.
Definition CalibDB.cxx:137
ElmbData * readTemperatureSensorData(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find Temperature Sensor data in the CCDB for given timestamp.
Definition CalibDB.cxx:215
static const char * getCDBPathTemperatureSensor()
Get CDB path for the Temperature Sensor data.
Definition CalibDB.h:362
EMCALChannelScaleFactors * readChannelScaleFactors(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find scale factors used for bad channel calibration in the CCDB for given timestamp.
Definition CalibDB.cxx:189
void storeBadChannelMap(BadChannelMap *bcm, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store bad channel map in the CCDB.
Definition CalibDB.cxx:39
static const char * getCDBPathTemperatureCalibrationParamsSM()
Get CDB path for the SM-dependent temperature calibration.
Definition CalibDB.h:350
void storeTempCalibParam(TempCalibrationParams *tcp, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store temperature calibration coefficiencts in the CCDB.
Definition CalibDB.cxx:63
static const char * getCDBPathChannelPedestals()
Get CCDB path for the pedestal data.
Definition CalibDB.h:370
void storeTempCalibParamSM(TempCalibParamSM *tcp, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store temperature calibration coefficiencts per SM in the CCDB.
Definition CalibDB.cxx:71
Pedestal * readPedestalData(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find pedestal data in the CCDB for given timestamp.
Definition CalibDB.cxx:228
FeeDCS * readFeeDCSData(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find FEE DCS data in the CCDB for given timestamp.
Definition CalibDB.cxx:202
TempCalibParamSM * readTempCalibParamSM(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find temperature calibration coefficiencts per SM in the CCDB for given timestamp.
Definition CalibDB.cxx:163
void storeTemperatureSensorData(ElmbData *dcs, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store Temperature Sensor data in the CCDB.
Definition CalibDB.cxx:95
static const char * getCDBPathTimeCalibrationParams()
Get CDB path for the time calibration.
Definition CalibDB.h:338
GainCalibrationFactors * readGainCalibFactors(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find gain calibration factors in the CCDB for given timestamp.
Definition CalibDB.cxx:176
void storeTimeCalibParam(TimeCalibrationParams *tcp, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store time calibration coefficiencts in the CCDB.
Definition CalibDB.cxx:47
static const char * getCDBPathBadChannelMap()
Get CDB path for the bad channel map.
Definition CalibDB.h:334
static const char * getCDBPathFeeDCS()
Get CDB path for the FEE DCS settings.
Definition CalibDB.h:358
void storeTimeCalibParamL1Phase(TimeCalibParamL1Phase *tcp, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store L1 phase shifts in the CCDB.
Definition CalibDB.cxx:55
static const char * getCDBPathChannelScaleFactors()
Get CCDB path for the scale factors used in the bad channel calibration.
Definition CalibDB.h:366
void storeFeeDCSData(FeeDCS *dcs, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store FEE DCS data in the CCDB.
Definition CalibDB.cxx:87
CalibDB()=default
Default constructor.
TempCalibrationParams * readTempCalibParam(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find temperature calibration coefficiencts in the CCDB for given timestamp.
Definition CalibDB.cxx:150
static const char * getCDBPathGainCalibrationParams()
Get CDB path for the gain calibration.
Definition CalibDB.h:354
static const char * getCDBPathTemperatureCalibrationParams()
Get CDB path for the temperature calibration.
Definition CalibDB.h:346
void storeGainCalibFactors(GainCalibrationFactors *gcf, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store gain calibration factors in the CCDB.
Definition CalibDB.cxx:79
void storePedestalData(Pedestal *pedestals, const std::map< std::string, std::string > &metadata, ULong_t timestart, ULong_t timeend)
Store pedestal data in the CCDB.
Definition CalibDB.cxx:103
static const char * getCDBPathL1Phase()
Get CDB path for the L1 Phase.
Definition CalibDB.h:342
TimeCalibrationParams * readTimeCalibParam(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find time calibration coefficiencts in the CCDB for given timestamp.
Definition CalibDB.cxx:124
BadChannelMap * readBadChannelMap(ULong_t timestamp, const std::map< std::string, std::string > &metadata)
Find bad channel map in the CCDB for given timestamp.
Definition CalibDB.cxx:111
CCDB container for the gain calibration factors.
CCDB container for pedestal values.
Definition Pedestal.h:48
GLuint64EXT * result
Definition glcorearb.h:5662