12#ifndef CPV_PEDESTAL_CALIBRATIOR_H_
13#define CPV_PEDESTAL_CALIBRATIOR_H_
32 PedestalSpectrum(uint16_t toleratedGapWidth = 5,
float nSigmasZS = 3.,
float suspiciousPedestalRMS = 20.);
35 void fill(uint16_t amplitude);
45 uint32_t mNEntries = 0;
47 bool mIsAnalyzed =
false;
48 uint16_t mToleratedGapWidth;
50 float mSuspiciousPedestalRMS;
53 std::vector<float> mMeanOfPeaks, mRMSOfPeaks;
54 std::vector<uint32_t> mPeakCounts;
55 std::map<uint16_t, uint32_t> mSpectrumContainer;
63 PedestalCalibData(uint16_t toleratedGapWidth = 5,
float nSigmasZS = 3.,
float suspiciousPedestalRMS = 20.);
66 void fill(
const gsl::span<const o2::cpv::Digit>
data);
92 LOG(info) <<
"hasEnoughData() is being called";
93 return slot.getContainer()->mNEvents >= mMinEvents;
101 uint32_t mMinEvents = 100;
102 float mZSnSigmas = 3.;
103 uint16_t mToleratedGapWidth = 5;
104 float mSuspiciousPedestalRMS = 20.;
108 std::vector<
std::vector<
int>> mThresholdsFEEVec;
110 std::vector<
std::vector<
int>> mDeadChannelsVec;
112 std::vector<
std::vector<
int>> mHighPedChannelsVec;
114 std::vector<
std::vector<
float>> mPedEfficienciesVec;
const std::vector< o2::cpv::Pedestals > & getPedestalsVector() const
PedestalTimeSlot & emplaceNewSlot(bool front, TFType tstart, TFType tend) final
bool hasEnoughData(const PedestalTimeSlot &slot) const final
~PedestalCalibrator() final=default
void finalizeSlot(PedestalTimeSlot &slot) final
std::vector< o2::ccdb::CcdbObjectInfo > & getCcdbInfoEfficienciesVector()
const std::vector< std::vector< int > > & getThresholdsFEEVector() const
std::vector< o2::ccdb::CcdbObjectInfo > & getCcdbInfoThresholdsFEEVector()
std::vector< o2::ccdb::CcdbObjectInfo > & getCcdbInfoPedestalsVector()
const std::vector< std::vector< int > > & getHighPedChannelsVector() const
const std::vector< std::vector< int > > & getDeadChannelsVector() const
const std::vector< std::vector< float > > & getEfficienciesVector() const
std::vector< o2::ccdb::CcdbObjectInfo > & getCcdbInfoHighPedChannelsVector()
std::vector< o2::ccdb::CcdbObjectInfo > & getCcdbInfoDeadChannelsVector()
void fill(uint16_t amplitude)
PedestalSpectrum & operator+=(const PedestalSpectrum &rhs)
float getPeakMean(uint16_t iPeak)
float getPeakRMS(uint16_t iPeak)
~PedestalSpectrum()=default
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
void fill(const gsl::span< const o2::cpv::Digit > data)
std::vector< PedestalSpectrum > mPedestalSpectra
~PedestalCalibData()=default
void merge(const PedestalCalibData *prev)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"