12#ifndef O2_TOF_DIAGNOSTIC_CALIBRATOR_H
13#define O2_TOF_DIAGNOSTIC_CALIBRATOR_H
40 TOFDiagnosticCalibDevice(std::shared_ptr<o2::base::GRPGeomRequest> req,
int runnumber = -1) : mCCDBRequest(req), mRunNumber(runnumber) {}
44 auto slotL = ic.options().get<uint32_t>(
"tf-per-slot");
45 auto delay = ic.options().get<uint32_t>(
"max-delay");
46 mCalibrator = std::make_unique<o2::tof::TOFDiagnosticCalibrator>();
47 mCalibrator->setSlotLength(slotL);
48 mCalibrator->setMaxSlotsDelay(delay);
49 mCalibrator->setRunNumber(mRunNumber);
62 LOG(
debug) <<
"Processing TF " << mCalibrator->getCurrentTFInfo().tfCounter;
64 sendOutput(pc.outputs());
69 LOG(info) <<
"Finalizing calibration";
71 sendOutput(ec.outputs());
75 std::unique_ptr<o2::tof::TOFDiagnosticCalibrator> mCalibrator;
76 std::shared_ptr<o2::base::GRPGeomRequest> mCCDBRequest;
85 const auto& payloadVec = mCalibrator->getDiagnosticVector();
86 auto& infoVec = mCalibrator->getDiagnosticInfoVector();
87 assert(payloadVec.size() == infoVec.size());
88 for (uint32_t
i = 0;
i < payloadVec.size();
i++) {
91 LOG(info) <<
"Sending object " <<
w.getPath() <<
"/" <<
w.getFileName() <<
" of size " <<
image->size()
92 <<
" bytes, valid for " <<
w.getStartValidityTimestamp() <<
" : " <<
w.getEndValidityTimestamp();
96 if (payloadVec.size()) {
97 mCalibrator->initOutput();
112 std::vector<OutputSpec> outputs;
115 std::vector<InputSpec> inputs{{
"input",
"TOF",
"DIAFREQ"}};
117 auto ccdbRequest = std::make_shared<o2::base::GRPGeomRequest>(
true,
125 "tof-diagnostic-calibration",
128 AlgorithmSpec{adaptFromTask<device>(ccdbRequest, runnumber)},
Utils and constants for calibration and related workflows.
Helper for geometry and GRP related CCDB requests.
void checkUpdates(o2::framework::ProcessingContext &pc)
bool finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj)
static GRPGeomHelper & instance()
void setRequest(std::shared_ptr< GRPGeomRequest > req)
TOFDiagnosticCalibDevice(std::shared_ptr< o2::base::GRPGeomRequest > req, int runnumber=-1)
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void init(o2::framework::InitContext &ic) final
void run(o2::framework::ProcessingContext &pc) final
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
static std::unique_ptr< std::vector< char > > createObjectImage(const T *obj, CcdbObjectInfo *info=nullptr)
Diagnostic class for TOF.
GLubyte GLubyte GLubyte GLubyte w
constexpr TFType INFINITE_TF
Defining PrimaryVertex explicitly as messageable.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
static void fillTFIDInfo(o2::framework::ProcessingContext &pc, o2::dataformats::TFIDInfo &ti)
static constexpr o2::header::DataOrigin gDataOriginCDBWrapper
static constexpr o2::header::DataOrigin gDataOriginCDBPayload
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"