Skip to content

Commit 1099820

Browse files
mfasDashahor02
authored andcommitted
[EMCAL-565, EMCAL-566] Fix CCDB access for calibrators
- Trigger loading scalefactors for bad channel calib in run function - Display calib params in finalizeCCDB - Move configuration of the calibrators based on calibParams from init to dedicated configure function
1 parent 5d083e4 commit 1099820

1 file changed

Lines changed: 44 additions & 17 deletions

File tree

Detectors/EMCAL/calibration/testWorkflow/EMCALChannelCalibratorSpec.h

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,13 @@ class EMCALChannelCalibDevice : public o2::framework::Task
6363
mTimeCalibrator = std::make_unique<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALTimeCalibData, o2::emcal::TimeCalibrationParams>>();
6464
}
6565
mTimeCalibrator->SetCalibExtractor(mCalibExtractor);
66-
mTimeCalibrator->setSlotLength(EMCALCalibParams::Instance().slotLength_tc);
67-
if (EMCALCalibParams::Instance().UpdateAtEndOfRunOnly_tc) {
68-
mBadChannelCalibrator->setUpdateAtTheEndOfRunOnly();
69-
}
7066

7167
} else { // bad cell calibration
7268
isBadChannelCalib = true;
7369
if (!mBadChannelCalibrator) {
7470
mBadChannelCalibrator = std::make_unique<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALChannelData, o2::emcal::BadChannelMap>>();
7571
}
7672
mBadChannelCalibrator->SetCalibExtractor(mCalibExtractor);
77-
mBadChannelCalibrator->setSlotLength(EMCALCalibParams::Instance().slotLength_bc);
78-
if (EMCALCalibParams::Instance().UpdateAtEndOfRunOnly_bc) {
79-
mBadChannelCalibrator->setUpdateAtTheEndOfRunOnly();
80-
}
81-
mBadChannelCalibrator->setIsTest(EMCALCalibParams::Instance().enableTestMode_bc);
8273
}
8374
}
8475

@@ -89,11 +80,14 @@ class EMCALChannelCalibDevice : public o2::framework::Task
8980
// check if calib params need to be updated
9081
if (matcher == ConcreteDataMatcher("EMC", "EMCALCALIBPARAM", 0)) {
9182
LOG(info) << "EMCal CalibParams updated";
83+
EMCALCalibParams::Instance().printKeyValues(true, true);
9284
return;
9385
}
9486
if (matcher == ConcreteDataMatcher("EMC", "SCALEFACTORS", 0)) {
9587
if (mBadChannelCalibrator && EMCALCalibParams::Instance().useScaledHisto_bc) {
88+
LOG(info) << "Configuring scale factors for bad channel map";
9689
mBadChannelCalibrator->getCalibExtractor()->setBCMScaleFactors(reinterpret_cast<o2::emcal::EMCALChannelScaleFactors*>(obj));
90+
mScaleFactorsInitialized = true;
9791
}
9892
}
9993
}
@@ -113,10 +107,21 @@ class EMCALChannelCalibDevice : public o2::framework::Task
113107
}
114108

115109
if (mLoadCalibParamsFromCCDB) {
116-
// for reading the calib objects from the ccdb
110+
// for reading the calib objects from the CCDB
117111
pc.inputs().get<o2::emcal::EMCALCalibParams*>("EMC_CalibParam");
118112
}
119113

114+
if (mBadChannelCalibrator && EMCALCalibParams::Instance().useScaledHisto_bc && !mScaleFactorsInitialized) {
115+
// Trigger reading the scale factors from the CCDB (Bad channel calib only)
116+
pc.inputs().get<o2::emcal::EMCALChannelScaleFactors*>("EMC_Scalefactors");
117+
}
118+
119+
if (!mIsConfigured) {
120+
// configure calibrators (after calib params are loaded from the CCDB)
121+
configureCalibrators();
122+
mIsConfigured = true;
123+
}
124+
120125
auto tfcounter = o2::header::get<o2::framework::DataProcessingHeader*>(pc.inputs().get(getCellBinding()).header)->startTime;
121126

122127
auto data = pc.inputs().get<gsl::span<o2::emcal::Cell>>(getCellBinding());
@@ -171,13 +176,15 @@ class EMCALChannelCalibDevice : public o2::framework::Task
171176
static const char* getCellTriggerRecordBinding() { return "EMCCellsTrgR"; }
172177

173178
private:
174-
std::unique_ptr<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALChannelData, o2::emcal::BadChannelMap>> mBadChannelCalibrator;
175-
std::unique_ptr<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALTimeCalibData, o2::emcal::TimeCalibrationParams>> mTimeCalibrator;
176-
std::shared_ptr<o2::emcal::EMCALCalibExtractor> mCalibExtractor;
177-
std::shared_ptr<o2::base::GRPGeomRequest> mCCDBRequest;
178-
std::string mCalibType;
179-
bool isBadChannelCalib = true;
180-
bool mLoadCalibParamsFromCCDB = true;
179+
std::unique_ptr<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALChannelData, o2::emcal::BadChannelMap>> mBadChannelCalibrator; ///< Bad channel calibrator
180+
std::unique_ptr<o2::emcal::EMCALChannelCalibrator<o2::emcal::EMCALTimeCalibData, o2::emcal::TimeCalibrationParams>> mTimeCalibrator; ///< Time calibrator
181+
std::shared_ptr<o2::emcal::EMCALCalibExtractor> mCalibExtractor; ///< Calibration postprocessing
182+
std::shared_ptr<o2::base::GRPGeomRequest> mCCDBRequest; ///< CCDB request for geometry
183+
std::string mCalibType; ///< Name of the calibration type
184+
bool mIsConfigured = false; ///< Configure status of calibrators
185+
bool mScaleFactorsInitialized = false; ///< Scale factor init status
186+
bool isBadChannelCalib = true; ///< Calibration mode bad channel calib (false := time calib)
187+
bool mLoadCalibParamsFromCCDB = true; ///< Switch for loading calib params from the CCDB
181188
std::array<double, 2> timeMeas;
182189

183190
//________________________________________________________________
@@ -223,6 +230,26 @@ class EMCALChannelCalibDevice : public o2::framework::Task
223230
}
224231
}
225232
}
233+
234+
/// \brief Configure calibrators from the calib params
235+
void configureCalibrators()
236+
{
237+
if (mTimeCalibrator) {
238+
LOG(info) << "Configuring time calibrator";
239+
mTimeCalibrator->setSlotLength(EMCALCalibParams::Instance().slotLength_tc);
240+
if (EMCALCalibParams::Instance().UpdateAtEndOfRunOnly_tc) {
241+
mBadChannelCalibrator->setUpdateAtTheEndOfRunOnly();
242+
}
243+
}
244+
if (mBadChannelCalibrator) {
245+
LOG(info) << "Configuring bad channel calibrator";
246+
mBadChannelCalibrator->setSlotLength(EMCALCalibParams::Instance().slotLength_bc);
247+
if (EMCALCalibParams::Instance().UpdateAtEndOfRunOnly_bc) {
248+
mBadChannelCalibrator->setUpdateAtTheEndOfRunOnly();
249+
}
250+
mBadChannelCalibrator->setIsTest(EMCALCalibParams::Instance().enableTestMode_bc);
251+
}
252+
}
226253
};
227254

228255
} // namespace calibration

0 commit comments

Comments
 (0)