12#ifndef O2_TRD_NOISECALIBSPEC_H
13#define O2_TRD_NOISECALIBSPEC_H
44 auto digits = pc.inputs().get<gsl::span<Digit>>(
"trddigits");
45 auto trigRecs = pc.inputs().get<gsl::span<TriggerRecord>>(
"trdtriggerrec");
52 if (mStartTime == 0) {
64 if (!mHaveSentOutput) {
65 LOGP(important,
"Enough data received after {} TFs seen, finalizing noise calibration", mNTFsProcessed);
68 mHaveSentOutput =
true;
70 if ((mNTFsProcessed % 200) == 0) {
71 LOGP(important,
"Not processing anymore. Seen {} TFs in total. Run can be stopped", mNTFsProcessed);
86 std::map<std::string, std::string> metadata;
87 long startValidity = mStartTime;
100 if (mHaveSentOutput) {
101 LOGP(important,
"Received EoS after sending calibration object. All OK");
104 LOGP(alarm,
"Received EoS before sending calibration object. Not enough digits received");
111 size_t mNTFsProcessed{0};
112 bool mHaveSentOutput{
false};
113 bool mIsDummy{
false};
114 uint64_t mStartTime{0};
119 std::vector<InputSpec> inputs;
123 std::vector<OutputSpec> outputs;
static std::string generateFileName(const std::string &inp)
static std::unique_ptr< std::vector< char > > createObjectImage(const T *obj, CcdbObjectInfo *info=nullptr)
long getEndValidityTimestamp() const
static constexpr long MONTH
const std::string & getPath() const
long getStartValidityTimestamp() const
const std::string & getFileName() const
void collectChannelInfo()
bool hasEnoughData() const
void process(const gsl::span< const Digit > &digits)
const ChannelInfoContainer & getCcdbObject() const
void run(o2::framework::ProcessingContext &pc) final
void sendOutput(DataAllocator &output)
void init(o2::framework::InitContext &ic) final
TRDNoiseCalibSpec(bool dummy)
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
constexpr o2::header::DataOrigin gDataOriginTRD
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > Options
o2::framework::DataProcessorSpec getTRDNoiseCalibSpec(bool dummy)
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
static std::string getClassName(const T &obj)
get the class name of the object
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"
std::vector< Digit > digits