68 mVerbosity = ic.
options().
get<
int>(
"verbosity-level");
106 mHistoFileMetaData = std::make_unique<o2::dataformats::FileMetaData>();
112 if (mRunStartTime == 0) {
114 mRunStartTime = tinfo.creation;
115 mRunNumber = tinfo.runNumber;
117 std::vector<InputSpec> filterHisto = {{
"tdc_1dh",
ConcreteDataTypeMatcher{
"ZDC",
"TDC_1DH"}, Lifetime::Timeframe}};
119 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
121 mWorker.
add(dh->subSpecification, histoView);
132 LOGF(info,
"ZDC TDC calibration total timing: Cpu: %.3e Real: %.3e s in %d slots", mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
138 std::string fn =
"ZDC_TDCCalib";
147 opt.updateCcdbObjectInfo(info);
149 auto image = o2::ccdb::CcdbApi::createObjectImage<ZDCTDCParam>(&payload, &info);
150 LOG(info) <<
"Sending object " << info.getPath() <<
"/" << info.getFileName() <<
" of size " <<
image->size()
151 <<
" bytes, valid for " << info.getStartValidityTimestamp() <<
" : " << info.getEndValidityTimestamp();
160 if (opt.rootOutput ==
true) {
161 mOutputDir = opt.outputDir;
162 if (mOutputDir.compare(
"/dev/null")) {
163 mHistoFileName = fmt::format(
"{}{}{}_{}.root", mOutputDir, mOutputDir.back() ==
'/' ?
"" :
"/", fn, mRunNumber);
164 int rval = mWorker.
write(mHistoFileName);
166 LOG(error) <<
"Cannot create output file " << mHistoFileName;
169 std::string metaFileDir = opt.metaFileDir;
170 if (metaFileDir.compare(
"/dev/null")) {
171 mHistoFileMetaData->fillFileData(mHistoFileName);
172 mHistoFileMetaData->type =
"calib";
173 mHistoFileMetaData->priority =
"high";
174 std::string metaFileNameTmp = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.tmp", fn, mRunNumber);
175 std::string metaFileName = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.done", fn, mRunNumber);
177 std::ofstream metaFileOut(metaFileNameTmp);
178 metaFileOut << *mHistoFileMetaData.get();
180 std::filesystem::rename(metaFileNameTmp, metaFileName);
181 }
catch (std::exception
const& e) {
182 LOG(error) <<
"Failed to store ZDC meta data file " << metaFileName <<
", reason: " << e.what();
184 LOG(info) <<
"Stored metadata file " << metaFileName <<
".done";
186 LOG(info) <<
"Did not store metafile as meta-dir=" << metaFileDir;
189 LOG(warn) <<
"Do not create output file since output dir is " << mOutputDir;
199 std::vector<InputSpec> inputs;
202 inputs.emplace_back(
"tdccalibdata",
"ZDC",
"TDCCALIBDATA", 0, Lifetime::Sporadic);
205 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.
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.
Configuration of ZDC TDC calibration procedure.
TDC calibration intermediate data.
Parameters to correct TDCs (produced by QA)
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 run(o2::framework::ProcessingContext &pc) final
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void init(o2::framework::InitContext &ic) final
void updateTimeDependentParams(o2::framework::ProcessingContext &pc)
void add(int ih, o2::dataformats::FlatHisto1D< float > &h1)
CcdbObjectInfo & getCcdbObjectInfo()
void setTDCParam(const ZDCTDCParam *param)
void setTDCCalibConfig(const TDCCalibConfig *param)
const ZDCTDCParam & getTDCParamUpd() const
int write(const std::string fn="ZDCTDCCalib.root")
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)
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
struct o2::upgrades_utils::@463 zdc
structure to keep FT0 information
framework::DataProcessorSpec getTDCCalibSpec()
const std::string CCDBPathTDCCalibConfig
const std::string CCDBPathTDCCalib
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
static constexpr o2::header::DataOrigin gDataOriginCDBWrapper
static constexpr o2::header::DataOrigin gDataOriginCDBPayload
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"