39 const int intInterval = ic.options().get<
int>(
"fit-interval");
41 const bool enableDebugTree = ic.options().get<
bool>(
"enable-root-output");
42 if (enableDebugTree) {
43 mStreamer = std::make_unique<o2::utils::TreeStreamRedirector>(
"pt.root",
"recreate");
64 const float pressure = mPTHelper.
getPressure(timestamp);
67 <<
"pressure=" << pressure
68 <<
"temperatureA=" << temp.first
69 <<
"temperatureC=" << temp.second
70 <<
"time=" << timestamp
83 std::shared_ptr<o2::base::GRPGeomRequest> mCCDBRequest;
84 std::unique_ptr<o2::utils::TreeStreamRedirector> mStreamer;
89 std::vector<InputSpec> inputs;
90 std::vector<OutputSpec> outputs;
96 auto ccdbRequest = std::make_shared<o2::base::GRPGeomRequest>(
true,
104 "tpc-pressure-temperature",
107 AlgorithmSpec{adaptFromTask<PressureTemperatureDevice>(ccdbRequest)},
109 {
"enable-root-output", VariantType::Bool,
false, {
"Enable root-files output writers"}},
110 {
"fit-interval", VariantType::Int, 300, {
"interval in seconds for which to e.g. perform fits of the temperature sensors"}}}
Helper for geometry and GRP related CCDB requests.
Helper class to extract pressure and temperature.
auto getOrbitResetTimeMS() const
void checkUpdates(o2::framework::ProcessingContext &pc)
bool finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj)
static GRPGeomHelper & instance()
void setRequest(std::shared_ptr< GRPGeomRequest > req)
PressureTemperatureDevice(std::shared_ptr< o2::base::GRPGeomRequest > req)
void endOfStream(EndOfStreamContext &eos) final
This is invoked whenever we have an EndOfStream event.
void init(o2::framework::InitContext &ic) final
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void run(o2::framework::ProcessingContext &pc) final
dataformats::Pair< float, float > getTemperature(const uint64_t timestamp) const
get temperature for given time stamp in ms
static void requestCCDBInputs(std::vector< o2::framework::InputSpec > &inputs)
void extractCCDBInputs(o2::framework::ProcessingContext &pc) const
trigger checking for CCDB objects
void sendPTForTS(o2::framework::ProcessingContext &pc, const uint64_t timestamp) const
send temperature and pressure for given time stamp
void setFitIntervalTemp(const int fitIntervalMS)
set fit interval range for temperature in ms
float getPressure(const uint64_t timestamp) const
get pressure for given time stamp in ms
bool accountCCDBInputs(const o2::framework::ConcreteDataMatcher &matcher, void *obj)
check for new CCDB objects
static void setOutputs(std::vector< o2::framework::OutputSpec > &outputs)
define outputs in case pressure and temperature will be send
constexpr double LHCOrbitMUS
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > Options
o2::framework::DataProcessorSpec getTPCPressureTemperatureSpec()
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...