16#ifndef AliceO2_TPC_CDBInterface_H_
17#define AliceO2_TPC_CDBInterface_H_
20#include <unordered_map>
37class ParameterDetector;
38class ParameterElectronics;
172 template <
typename T>
173 T&
getSpecificObjectFromCDB(
const std::string_view
path,
long timestamp = -1,
const std::map<std::string, std::string>& metaData = std::map<std::string, std::string>());
176 template <
typename T>
220 cdb.setTimestamp(
time);
227 cdb.setURL(url.data());
228 mDeadChannelMapCreator.
init(url);
235 mDefaultZSsigma = zs;
243 mZeroSuppression.reset();
251 std::unique_ptr<CalPad> mPedestals;
252 std::unique_ptr<CalPad> mPedestalsCRU;
253 std::unique_ptr<CalPad> mNoise;
254 std::unique_ptr<CalPad> mZeroSuppression;
255 std::unique_ptr<CalPad> mGainMap;
256 std::unique_ptr<CalPad> mITFraction;
257 std::unique_ptr<CalPad> mITExpLambda;
258 std::unique_ptr<CalPad> mCMkValues;
259 std::unique_ptr<CalPadFlagType> mPadFlags;
261 std::unique_ptr<FEEConfig> mFEEConfig;
264 bool mUseDefaults =
false;
265 float mDefaultZSsigma = 3.f;
267 std::string mPedestalNoiseFileName;
268 std::string mGainMapFileName;
269 std::string mFEEParamFileName;
275 void loadNoiseAndPedestalFromFile();
276 void loadGainMapFromFile();
277 void loadFEEParamsFromFile();
279 void createDefaultPedestals();
280 void createDefaultNoise();
281 void createDefaultZeroSuppression();
282 void createDefaultGainMap();
283 void createDefaultIonTailParams();
284 void createDefaultCMParams();
285 void createDefaultPadFlags();
287 void createFEEConfig();
299 auto*
object = cdb.get<T>(
path.data());
301 LOGP(fatal,
"Could not get {} from cdb",
path);
317 auto*
object = cdb.getSpecific<T>(
path.data(), timestamp, metaData);
337 mCCDB.init(url.data());
347 mMetaData[
"Responsible"] = responsible;
352 mMetaData[
"Reason"] = reason;
362 mMetaData[
"JIRA"] = jira;
367 mMetaData[
"Comment"] = comment;
377 std::string getMetaDataString()
const;
383 template <
typename T>
386 if (checkMetaData(metadata)) {
392 LOGP(error,
"Meta data not set properly, object will not be stored");
396 template <
typename T>
409 bool checkMetaData(MetaData_t metaData)
const;
410 bool checkMetaData()
const {
return checkMetaData(mMetaData); }
411 void printObjectSummary(std::string_view
name,
CDBType const type, MetaData_t
const& metadata,
long start,
long end)
const;
414 MetaData_t mMetaData;
415 bool mSimulate =
false;
CDB Type definitions for TPC.
Frontend electronics configuration values.
calibration data from laser track calibration
Definition of the Names Generator class.
static constexpr std::string_view CCDBRunTag
static BasicCCDBManager & instance()
static constexpr long INFINITE_TIMESTAMP
const CalDet< bool > & getDeadChannelMap()
Dead channel map.
const CalPad & getCMkValues()
std::unordered_map< std::string, CalPad > CalPadMapType
const CalPad & getITFraction()
static CDBInterface & instance()
const ParameterDetector & getParameterDetector()
const CalPad & getPedestals()
const CalPad & getZeroSuppressionThreshold()
Return the zero suppression threshold map.
void setGainMapFromFile(const std::string_view fileName)
void setURL(const std::string_view url)
set CCDB URL
const CalPad & getNoise()
const CalPad & getITExpLambda()
const ParameterElectronics & getParameterElectronics()
const ParameterGas & getParameterGas()
void resetLocalCalibration()
Reset the local calibration.
const ParameterGEM & getParameterGEM()
DeadChannelMapCreator & getDeadChannelMapCreator()
Dead channel map creator.
void setThresholdMapFromFile(const std::string_view fileName)
const CalPadFlagType & getPadFlags()
Pad status flags from IDCs.
void setDefaultZSsigma(float zs)
void setUseDefaults(bool defaults=true)
const CalPad & getCalPad(const std::string_view path)
const CalPad & getGainMap()
void setFEEParamsFromFile(const std::string_view fileName)
bool getUseDefaults() const
return defaults usage
const CalPad & getPedestalsCRU()
void setPedestalsAndNoiseFromFile(const std::string_view fileName)
const FEEConfig & getFEEConfig()
Return FEEConfig.
CDBInterface(const CDBInterface &)=delete
T & getObjectFromCDB(std::string_view path)
read an object from CCDB
CalDet< PadFlags > CalPadFlagType
T & getSpecificObjectFromCDB(const std::string_view path, long timestamp=-1, const std::map< std::string, std::string > &metaData=std::map< std::string, std::string >())
void setTimeStamp(long time)
set CDB time stamp for object retrieval
void storeObject(T *obj, CDBType const type, long start, long end)
void setReason(std::string_view reason)
void setJIRA(std::string_view jira)
void setSimulate(bool sim=true)
void setRunNumber(int run)
void setIntervention(CDBIntervention const intervention)
void setURL(std::string_view url)
void setComment(std::string_view comment)
void setResponsible(std::string_view responsible)
const auto & getMetaData() const
void storeObject(T *obj, CDBType const type, MetaData_t const &metadata, long start, long end)
std::map< std::string, std::string > MetaData_t
void init(std::string_view url="")
GLuint const GLchar * name
GLint GLint GLsizei GLint GLenum GLenum type
GLsizei const GLchar *const * path
Global TPC definitions and constants.
const std::unordered_map< CDBType, const std::string > CDBTypeMap
Storage name in CCDB for each calibration and parameter type.
const std::unordered_map< CDBIntervention, std::string > CDBInterventionMap
Poor enum reflection ...
CDBIntervention
Upload intervention type.
@ Automatic
Automatic upload.
@ Manual
Upload from manual intervention.
CDBType
Calibration and parameter types for CCDB.
std::string to_string(gsl::span< T, Size > span)