62 mVerbosity = ic.
options().
get<
int>(
"verbosity-level");
90 mHistoFileMetaData = std::make_unique<o2::dataformats::FileMetaData>();
96 if (mRunStartTime == 0) {
98 mRunStartTime = tinfo.creation;
99 mRunNumber = tinfo.runNumber;
102 std::vector<InputSpec> filterHisto = {{
"noise_1dh",
ConcreteDataTypeMatcher{
"ZDC",
"NOISE_1DH"}, Lifetime::Sporadic}};
104 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
106 mWorker.
add(dh->subSpecification, 0, histoView);
110 std::vector<InputSpec> filterHisto = {{
"noise_1dh_s",
ConcreteDataTypeMatcher{
"ZDC",
"NOISE_1DH_S"}, Lifetime::Sporadic}};
112 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
114 mWorker.
add(dh->subSpecification, 1, histoView);
118 std::vector<InputSpec> filterHisto = {{
"noise_1dh_d",
ConcreteDataTypeMatcher{
"ZDC",
"NOISE_1DH_D"}, Lifetime::Sporadic}};
120 auto const* dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
122 mWorker.
add(dh->subSpecification, 2, histoView);
134 LOGF(info,
"ZDC Noise calibration total timing: Cpu: %.3e Real: %.3e s in %d slots", mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
140 std::string fn =
"ZDC_NoiseCalib";
146 const auto& payload = mWorker.
getParam();
149 opt.updateCcdbObjectInfo(info);
151 auto image = o2::ccdb::CcdbApi::createObjectImage<NoiseParam>(&payload, &info);
152 LOG(info) <<
"Sending object " << info.getPath() <<
"/" << info.getFileName() <<
" of size " <<
image->size()
153 <<
" bytes, valid for " << info.getStartValidityTimestamp() <<
" : " << info.getEndValidityTimestamp();
162 if (opt.rootOutput ==
true) {
163 mOutputDir = opt.outputDir;
164 if (mOutputDir.compare(
"/dev/null")) {
165 mHistoFileName = fmt::format(
"{}{}{}_{}.root", mOutputDir, mOutputDir.back() ==
'/' ?
"" :
"/", fn, mRunNumber);
168 LOG(error) <<
"Cannot create output file " << mHistoFileName;
171 std::string metaFileDir = opt.metaFileDir;
172 if (metaFileDir.compare(
"/dev/null")) {
173 mHistoFileMetaData->fillFileData(mHistoFileName);
174 mHistoFileMetaData->type =
"calib";
175 mHistoFileMetaData->priority =
"high";
176 std::string metaFileNameTmp = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.tmp", fn, mRunNumber);
177 std::string metaFileName = metaFileDir + (metaFileDir.back() ==
'/' ?
"" :
"/") + fmt::format(
"{}_{}.done", fn, mRunNumber);
179 std::ofstream metaFileOut(metaFileNameTmp);
180 metaFileOut << *mHistoFileMetaData.get();
182 std::filesystem::rename(metaFileNameTmp, metaFileName);
183 }
catch (std::exception
const& e) {
184 LOG(error) <<
"Failed to store ZDC meta data file " << metaFileName <<
", reason: " << e.what();
186 LOG(info) <<
"Stored metadata file " << metaFileName <<
".done";
188 LOG(info) <<
"Did not store metafile as meta-dir=" << metaFileDir;
191 LOG(warn) <<
"Do not create output file since output dir is " << mOutputDir;
201 std::vector<InputSpec> inputs;
202 inputs.emplace_back(
"noisecalibdata",
"ZDC",
"NOISECALIBDATA", 0, Lifetime::Sporadic);
208 std::vector<OutputSpec> outputs;
ZDC calibration common parameters.
Definition of the Names Generator class.
Format of noise calibration intermediate data.
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 finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void init(o2::framework::InitContext &ic) final
void updateTimeDependentParams(o2::framework::ProcessingContext &pc)
void sendOutput(o2::framework::EndOfStreamContext &ec)
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, int iarr, o2::dataformats::FlatHisto1D< double > &h1)
int process(const o2::zdc::NoiseCalibSummaryData *data)
CcdbObjectInfo & getCcdbObjectInfo()
int saveDebugHistos(const std::string fn="ZDCNoiseCalib.root")
void setModuleConfig(const ModuleConfig *moduleConfig)
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 getNoiseCalibSpec()
const std::string CCDBPathConfigModule
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"