36 LOGP(info,
"Updating pressure");
38 mPressure.second = pressure->robustPressure.time;
39 mPressure.first = pressure->robustPressure.robustPressure;
44 LOGP(info,
"Updating temperature");
54 for (
const auto& dp : temp.statsA.data) {
59 for (
const auto& dp : temp.statsC.data) {
76 if (std::find(inputs.begin(), inputs.end(), isp) == inputs.end()) {
77 inputs.emplace_back(isp);
89 if (std::find(outputs.begin(), outputs.end(), osp) == outputs.end()) {
90 outputs.emplace_back(osp);
97 auto [idxLeft, idxRight] = *idxClosest;
98 if (idxRight > idxLeft) {
99 const uint64_t
x0 = timestamps[idxLeft];
100 const uint64_t
x1 = timestamps[idxRight];
103 const float y = (
y0 * (
x1 - timestamp) +
y1 * (timestamp -
x0)) / (
x1 -
x0);
116 LOGP(info,
"Sending pressure {}, temperature A {} and temperature C {} for timestamp {}", pressure, temp.first, temp.second, timestamp);
Simple interface to the CDB manager.
DCS data point data formats.
Helper class to extract pressure and temperature.
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
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)
float interpolate(const std::vector< uint64_t > ×tamps, const std::vector< float > &values, uint64_t timestamp) const
interpolate input values for given timestamp
void extractCCDBInputs(o2::framework::ProcessingContext &pc) const
trigger checking for CCDB objects
static constexpr o2::header::DataDescription getDataDescriptionTemperature()
std::pair< std::vector< float >, std::vector< uint64_t > > mTemperatureC
temperature values C-side
static void addOutput(std::vector< o2::framework::OutputSpec > &outputs, o2::framework::OutputSpec &&osp)
int mFitIntervalMS
fit interval for the temperature
std::pair< std::vector< float >, std::vector< uint64_t > > mTemperatureA
temperature values A-side
void sendPTForTS(o2::framework::ProcessingContext &pc, const uint64_t timestamp) const
send temperature and pressure for given time stamp
std::pair< std::vector< float >, std::vector< uint64_t > > mPressure
pressure values for both measurements
float getPressure(const uint64_t timestamp) const
get pressure for given time stamp in ms
static constexpr o2::header::DataDescription getDataDescriptionPressure()
static void addInput(std::vector< o2::framework::InputSpec > &inputs, o2::framework::InputSpec &&isp)
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
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLuint GLfloat GLfloat GLfloat x1
GLenum GLsizei GLsizei GLint * values
GLuint GLfloat GLfloat y0
constexpr o2::header::DataOrigin gDataOriginTPC
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
std::optional< std::pair< size_t, size_t > > findClosestIndices(const std::vector< DataTimeType > ×tamps, DataTime timestamp)
Global TPC definitions and constants.
const std::unordered_map< CDBType, const std::string > CDBTypeMap
Storage name in CCDB for each calibration and parameter type.
@ CalPressure
DCS pressure measurements.
@ CalTemperature
DCS temperature measurements.