14#include <fmt/format.h>
22 os << fmt::format(
"DetID {:4d} PadId {:6d} ADC {:10d} TFtime {:10d} NofSamples {:5d} {}",
30 return std::fabs(
x -
y) <= eps * std::max(1.0, std::max(std::fabs(
x), std::fabs(
y)));
34 : mTFtime(
time), mNofSamples(nSamples), mIsSaturated(saturated), mDetID(detid), mPadID(pad), mADC(
adc)
51 constexpr uint64_t max10bits = (
static_cast<uint64_t
>(1) << 10);
52 if (
static_cast<uint64_t
>(
n) >= max10bits) {
53 throw std::invalid_argument(
"mch digit nofsamples must fit within 10 bits");
65 return mDetID ==
other.mDetID &&
66 mPadID ==
other.mPadID &&
68 mTFtime ==
other.mTFtime &&
69 mNofSamples ==
other.mNofSamples &&
70 mIsSaturated ==
other.mIsSaturated;
75 if (mDetID ==
other.mDetID) {
76 if (mPadID ==
other.mPadID) {
77 if (mTFtime ==
other.mTFtime) {
78 if (mADC ==
other.mADC) {
79 if (mNofSamples ==
other.mNofSamples) {
80 return mIsSaturated !=
other.mIsSaturated;
82 return mNofSamples <
other.mNofSamples;
85 return mADC <
other.mADC;
88 return mTFtime <
other.mTFtime;
91 return mPadID <
other.mPadID;
94 return mDetID <
other.mDetID;
MCH digit implementation.
bool operator<(const Digit &) const
bool operator==(const Digit &) const
void setSaturated(bool sat)
uint16_t getNofSamples() const
void setNofSamples(uint16_t n)
bool closeEnough(double x, double y, double eps=1E-6)
VectorOfTObjectPtrs other