12#ifndef O2_CALIBRATION_PHOSRUNBYRUN_CALIBRATOR_H
13#define O2_CALIBRATION_PHOSRUNBYRUN_CALIBRATOR_H
23#include <boost/histogram.hpp>
39 using boostHisto = boost::histogram::histogram<std::tuple<boost::histogram::axis::regular<double, boost::use_default, boost::use_default, boost::use_default>>, boost::histogram::unlimited_storage<std::allocator<char>>>;
47 void fill(
const gsl::span<const Cluster>&
clusters,
const gsl::span<const TriggerRecord>& trs);
48 void fill(
const gsl::span<const Cluster>& ){};
60 bool mUseCCDB =
false;
61 long mRunStartTime = 0;
63 std::string mCCDBPath{
"http://alice-ccdb.cern.ch"};
64 std::array<boostHisto, 8> mReMi;
65 std::unique_ptr<RingBuffer> mBuffer;
66 std::unique_ptr<BadChannelsMap> mBadMap;
68 ClassDefNV(PHOSRunbyrunSlot, 1);
84 bool process(
TFType tf,
const gsl::span<const Cluster>&
clu,
const gsl::span<const TriggerRecord>& trs);
90 double CBRatio(
double*
x,
double* p);
92 double bg(
double*
x,
double* p);
99 bool mUseCCDB =
false;
100 long mRunStartTime = 0;
101 std::string mCCDBPath{
"http://alice-ccdb.cern.ch"};
102 std::array<float, 8> mRunByRun;
103 std::array<TH1F*, 8> mReMi;
Device to collect energy and time PHOS energy and time calibration.
o2::calibration::TFType TFType
Contains PHOS cluster parameters.
double CBSignal(double *x, double *p)
~PHOSRunbyrunCalibrator() final
std::array< float, 8 > getCalibration()
bool hasEnoughData(const Slot &slot) const final
double CBRatio(double *x, double *p)
double bg(double *x, double *p)
void finalizeSlot(Slot &slot) final
Slot & emplaceNewSlot(bool front, TFType tstart, TFType tend) final
void fill(const gsl::span< const Cluster > &clusters, const gsl::span< const TriggerRecord > &trs)
void setRunStartTime(long tf)
void merge(const PHOSRunbyrunSlot *prev)
boost::histogram::histogram< std::tuple< boost::histogram::axis::regular< double, boost::use_default, boost::use_default, boost::use_default > >, boost::histogram::unlimited_storage< std::allocator< char > > > boostHisto
void fill(const gsl::span< const Cluster > &)
~PHOSRunbyrunSlot()=default
boostHisto & getCollectedHistos(int m)
GLsizei const GLchar *const * path
Defining PrimaryVertex explicitly as messageable.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::unique_ptr< GPUReconstructionTimeframe > tf
VectorOfTObjectPtrs other
std::vector< Cluster > clusters