63 mVerbosity = ic.
options().
get<
int>(
"verbosity-level");
110 mHistoFileMetaData = std::make_unique<o2::dataformats::FileMetaData>();
116 if (mRunStartTime == 0) {
118 mRunStartTime = tinfo.creation;
119 mRunNumber = tinfo.runNumber;
122 std::vector<InputSpec> filterHisto = {{
"inter_1dh",
ConcreteDataTypeMatcher{
"ZDC",
"INTER_1DH"}, Lifetime::Timeframe}};
124 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
126 mWorker.
add(dh->subSpecification, histoView);
130 std::vector<InputSpec> filterHisto = {{
"inter_2dh",
ConcreteDataTypeMatcher{
"ZDC",
"INTER_2DH"}, Lifetime::Timeframe}};
132 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
134 mWorker.
add(dh->subSpecification, histoView);
146 LOGF(info,
"ZDC Intercalibration total timing: Cpu: %.3e Real: %.3e s in %d slots", mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
152 std::string fn =
"ZDC_interCalib";
161 opt.updateCcdbObjectInfo(info);
163 auto image = o2::ccdb::CcdbApi::createObjectImage<ZDCTowerParam>(&payload, &info);
164 LOG(info) <<
"Sending object " << info.getPath() <<
"/" << info.getFileName() <<
" of size " <<
image->size()
165 <<
" bytes, valid for " << info.getStartValidityTimestamp() <<
" : " << info.getEndValidityTimestamp();
174 if (opt.rootOutput ==
true) {
175 mOutputDir = opt.outputDir;
176 if (mOutputDir.compare(
"/dev/null")) {
177 mHistoFileName = fmt::format(
"{}{}{}_{}.root", mOutputDir, mOutputDir.back() ==
'/' ?
"" :
"/", fn, mRunNumber);
180 LOG(error) <<
"Cannot create output file " << mHistoFileName;
183 std::string metaFileDir = opt.metaFileDir;
184 if (metaFileDir.compare(
"/dev/null")) {
185 mHistoFileMetaData->fillFileData(mHistoFileName);
186 mHistoFileMetaData->type =
"calib";
187 mHistoFileMetaData->priority =
"high";
188 std::string metaFileNameTmp = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.tmp", fn, mRunNumber);
189 std::string metaFileName = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.done", fn, mRunNumber);
191 std::ofstream metaFileOut(metaFileNameTmp);
192 metaFileOut << *mHistoFileMetaData.get();
194 std::filesystem::rename(metaFileNameTmp, metaFileName);
195 }
catch (std::exception
const& e) {
196 LOG(error) <<
"Failed to store ZDC meta data file " << metaFileName <<
", reason: " << e.what();
198 LOG(info) <<
"Stored metadata file " << metaFileName <<
".done";
200 LOG(info) <<
"Did not store metafile as meta-dir=" << metaFileDir;
203 LOG(warn) <<
"Do not create output file since output dir is " << mOutputDir;
213 std::vector<InputSpec> inputs;
217 inputs.emplace_back(
"intercalibdata",
"ZDC",
"INTERCALIBDATA", 0, Lifetime::Timeframe);
221 std::vector<OutputSpec> outputs;
Class to describe fired triggered and/or stored channels for the BC and to refer to channel data.
ZDC calibration common parameters.
ZDC baseline calibration.
Definition of the Names Generator class.
Class to describe pedestal data accumulated over the orbit.
Class to describe reconstructed ZDC event (single BC with signal in one of detectors)
ZDC reconstruction parameters.
static const CalibParamZDC & Instance()
T get(const char *key) const
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
ConfigParamRegistry const & options()
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
ServiceRegistryRef services()
The services registry associated with this processing context.
void sendOutput(o2::framework::EndOfStreamContext &ec)
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void init(o2::framework::InitContext &ic) final
void updateTimeDependentParams(o2::framework::ProcessingContext &pc)
void run(o2::framework::ProcessingContext &pc) final
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void add(int ih, o2::dataformats::FlatHisto1D< float > &h1)
CcdbObjectInfo & getCcdbObjectInfo()
int saveDebugHistos(const std::string fn="ZDCInterCalib.root")
void setInterCalibConfig(const InterCalibConfig *param)
void setTowerParam(const ZDCTowerParam *param)
int process(const gsl::span< const o2::zdc::BCRecData > &bcrec, const gsl::span< const o2::zdc::ZDCEnergy > &energy, const gsl::span< const o2::zdc::ZDCTDCData > &tdc, const gsl::span< const uint16_t > &info)
void setEnergyParam(const ZDCEnergyParam *param)
const ZDCTowerParam & getTowerParamUpd() const
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
std::vector< ConfigParamSpec > Options
framework::DataProcessorSpec getInterCalibSpec()
const std::string CCDBPathEnergyCalib
const std::string CCDBPathTowerCalib
const std::string CCDBPathInterCalibConfig
static constexpr o2::header::DataOrigin gDataOriginCDBWrapper
static constexpr o2::header::DataOrigin gDataOriginCDBPayload
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"