17#ifndef O2_MCH_CLUSTERORIGINAL_H_
18#define O2_MCH_CLUSTERORIGINAL_H_
45 void addPad(
double x,
double y,
double dx,
double dy,
double charge,
bool isSaturated,
int plane,
int digitIdx,
int status);
60 auto begin() {
return mPads.begin(); }
61 auto begin()
const {
return mPads.begin(); }
62 auto end() {
return mPads.end(); }
63 auto end()
const {
return mPads.end(); }
66 float charge()
const {
return mCharge[0] + mCharge[1]; }
73 bool isSaturated()
const {
return mIsSaturated[0] && mIsSaturated[1]; }
75 std::pair<double, double>
minPadDimensions(
int statusMask,
bool matchMask)
const;
76 std::pair<double, double>
minPadDimensions(
int plane,
int statusMask,
bool matchMask)
const;
78 void area(
int plane,
double area[2][2])
const;
80 std::pair<int, int>
sizeInPads(
int statusMask)
const;
81 std::pair<int, int>
sizeInPads(
int plane,
int statusMask)
const;
84 std::vector<PadOriginal> mPads{};
85 size_t mMultiplicity[2] = {0, 0};
86 float mCharge[2] = {0., 0.};
87 bool mIsSaturated[2] = {
false,
false};
Definition of the pad used by the original cluster finder algorithm.
size_t multiplicity() const
return the total number of pads associated to this cluster
bool isSaturated() const
return whether there are saturated pads on both plane or not
ClusterOriginal & operator=(const ClusterOriginal &cl)=default
void addPad(double x, double y, double dx, double dy, double charge, bool isSaturated, int plane, int digitIdx, int status)
float charge() const
return the total charge of this cluster
PadOriginal & pad(size_t i)
return the ith pad (no bound checking)
void sortPads(double precision)
ClusterOriginal()=default
int maxChargePlane() const
return the plane with the highest charge
std::pair< int, int > sizeInPads(int statusMask) const
ClusterOriginal & operator=(ClusterOriginal &&)=delete
std::pair< double, double > minPadDimensions(int statusMask, bool matchMask) const
ClusterOriginal(const ClusterOriginal &cl)=default
~ClusterOriginal()=default
void removePad(size_t iPad)
auto begin()
return begin/end iterators to be able to iterate over the pads without accessing the internal vector
const PadOriginal & pad(size_t i) const
float chargeAsymmetry() const
return the charge asymmetry of this cluster
ClusterOriginal(ClusterOriginal &&)=delete
void area(int plane, double area[2][2]) const
GLenum GLint GLint * precision
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...