File indexing completed on 2026-07-16 08:14:33
0001
0002
0003
0004
0005
0006
0007 #ifndef TRACKBASE_TRKRCLUSTERV6_H
0008 #define TRACKBASE_TRKRCLUSTERV6_H
0009
0010 #include "TrkrCluster.h"
0011 #include "TrkrDefs.h"
0012
0013 #include <limits>
0014 #include <iostream>
0015
0016 class PHObject;
0017
0018
0019
0020
0021
0022
0023
0024 class TrkrClusterv6 : public TrkrCluster
0025 {
0026 public:
0027
0028 TrkrClusterv6() = default;
0029
0030
0031 ~TrkrClusterv6() override = default;
0032
0033
0034
0035 void identify(std::ostream& os = std::cout) const override;
0036 void Reset() override { *this = TrkrClusterv6(); }
0037 int isValid() const override;
0038 PHObject* CloneMe() const override { return new TrkrClusterv6(*this); }
0039
0040
0041 using PHObject::CopyFrom;
0042
0043
0044 void CopyFrom(const TrkrCluster&) override;
0045
0046
0047 void CopyFrom(TrkrCluster* source) override
0048 {
0049 if (!source)
0050 {
0051 return;
0052 }
0053 CopyFrom(*source);
0054 }
0055
0056
0057
0058
0059 float getPosition(int coor) const override
0060 {
0061 return (coor >= 0 && coor < 2) ? m_local[coor] : std::numeric_limits<float>::quiet_NaN();
0062 }
0063 void setPosition(const int coor, const float xi) override
0064 {
0065 if (coor >= 0 && coor < 2)
0066 {
0067 m_local[coor] = xi;
0068 }
0069 }
0070 float getLocalX() const override { return m_local[0]; }
0071 void setLocalX(const float loc0) override { m_local[0] = loc0; }
0072 float getLocalY() const override { return m_local[1]; }
0073 void setLocalY(const float loc1) override { m_local[1] = loc1; }
0074
0075 TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; }
0076 void setSubSurfKey(const TrkrDefs::subsurfkey id) override { m_subsurfkey = id; }
0077
0078
0079
0080
0081 unsigned int getAdc() const override { return m_adc; }
0082 void setAdc(const unsigned int adc) override { m_adc = adc; }
0083
0084 unsigned int getMaxAdc() const override { return m_maxadc; }
0085 void setMaxAdc(const uint16_t maxadc) override { m_maxadc = maxadc; }
0086
0087 unsigned int getCenAdc() const override { return m_cenadc; }
0088 void setCenAdc(const uint16_t cenadc) override { m_cenadc = cenadc; }
0089
0090 float getPadCen() const override { return m_padcen; }
0091 void setPadCen(const float padcen) override { m_padcen = padcen; }
0092
0093 float getTBinCen() const override { return m_tbincen; }
0094 void setTBinCen(const float tbincen) override { m_tbincen = tbincen; }
0095
0096 int getPadMax() const override { return m_padmax; }
0097 void setPadMax(const int padmax) override { m_padmax = padmax; }
0098
0099 int getTBinMax() const override { return m_tbinmax; }
0100 void setTBinMax(const int tbinmax) override { m_tbinmax = tbinmax; }
0101
0102
0103
0104
0105 float getRPhiError() const override { return m_phierr; }
0106 float getZError() const override { return m_zerr; }
0107
0108 void setPhiError(const float phierror) override { m_phierr = phierror; }
0109 void setZError(const float zerror) override { m_zerr = zerror; }
0110
0111 char getSize() const override { return m_phisize * m_zsize; }
0112
0113
0114 float getRSize() const override { return (float) m_rsize; }
0115 void setRSize(const char rsize) override { m_rsize = rsize; }
0116
0117 float getPhiSize() const override { return (float) m_phisize; }
0118 void setPhiSize(const char phisize) override { m_phisize = phisize; }
0119
0120 float getZSize() const override { return (float) m_zsize; }
0121 void setZSize(const char zsize) override { m_zsize = zsize; }
0122
0123 char getOverlap() const override { return m_overlap; }
0124 void setOverlap(const char overlap) override { m_overlap = overlap; }
0125
0126 char getEdge() const override { return m_edge; }
0127 void setEdge(const char edge) override { m_edge = edge; }
0128
0129 char getSLEdge() const override { return m_sledge; }
0130 void setSLEdge(const char sledge) override { m_sledge = sledge; }
0131
0132 char getSREdge() const override { return m_sredge; }
0133 void setSREdge(const char sredge) override { m_sredge = sredge; }
0134
0135 char getTLEdge() const override { return m_tledge; }
0136 void setTLEdge(const char tledge) override { m_tledge = tledge; }
0137
0138 char getTREdge() const override { return m_tredge; }
0139 void setTREdge(const char tredge) override { m_tredge = tredge; }
0140
0141 char getDLEdge() const override { return m_dledge; }
0142 void setDLEdge(const char dledge) override { m_dledge = dledge; }
0143
0144 char getDREdge() const override { return m_dredge; }
0145 void setDREdge(const char dredge) override { m_dredge = dredge; }
0146
0147 char getHLEdge() const override { return m_hledge; }
0148 void setHLEdge(const char hledge) override { m_hledge = hledge; }
0149
0150 char getHREdge() const override { return m_hredge; }
0151 void setHREdge(const char hredge) override { m_hredge = hredge; }
0152
0153 char getSLMix() const override { return m_slmix; }
0154 void setSLMix(const char slmix) override { m_slmix = slmix; }
0155
0156 char getSRMix() const override { return m_srmix; }
0157 void setSRMix(const char srmix) override { m_srmix = srmix; }
0158
0159 char getTLMix() const override { return m_tlmix; }
0160 void setTLMix(const char tlmix) override { m_tlmix = tlmix; }
0161
0162 char getTRMix() const override { return m_trmix; }
0163 void setTRMix(const char trmix) override { m_trmix = trmix; }
0164
0165 unsigned short getPhiBinLo() const override { return m_phibinlo; }
0166 void setPhiBinLo(const unsigned short phibinlo) override { m_phibinlo = phibinlo; }
0167
0168 unsigned short getPhiBinHi() const override { return m_phibinhi; }
0169 void setPhiBinHi(const unsigned short phibinhi) override { m_phibinhi = phibinhi; }
0170
0171 unsigned short getTBinLo() const override { return m_tbinlo; }
0172 void setTBinLo(const unsigned short tbinlo) override { m_tbinlo = tbinlo; }
0173
0174 unsigned short getTBinHi() const override { return m_tbinhi; }
0175 void setTBinHi(const unsigned short tbinhi) override { m_tbinhi = tbinhi; }
0176
0177 float getPadPhase() const override { return m_padphase; }
0178 void setPadPhase(const float padphase) override { m_padphase = padphase; }
0179
0180 float getTBinPhase() const override { return m_tbinphase; }
0181 void setTBinPhase(const float tbinphase) override { m_tbinphase = tbinphase; }
0182
0183 private:
0184 float m_local[2]{std::numeric_limits<float>::quiet_NaN(), std::numeric_limits<float>::quiet_NaN()};
0185
0186 TrkrDefs::subsurfkey m_subsurfkey {TrkrDefs::SUBSURFKEYMAX};
0187 float m_phierr{std::numeric_limits<float>::quiet_NaN()};
0188 float m_zerr{std::numeric_limits<float>::quiet_NaN()};
0189 unsigned short m_adc{std::numeric_limits<unsigned short>::max()};
0190 unsigned short m_maxadc{std::numeric_limits<unsigned short>::max()};
0191 unsigned short m_cenadc{std::numeric_limits<unsigned short>::max()};
0192 float m_padcen{std::numeric_limits<float>::quiet_NaN()};
0193 float m_tbincen{std::numeric_limits<float>::quiet_NaN()};
0194 int m_padmax{std::numeric_limits<int>::max()};
0195 int m_tbinmax{std::numeric_limits<int>::max()};
0196 char m_rsize{std::numeric_limits<char>::max()};
0197 char m_phisize{std::numeric_limits<char>::max()};
0198 char m_zsize{std::numeric_limits<char>::max()};
0199 char m_overlap{std::numeric_limits<char>::max()};
0200 char m_edge{std::numeric_limits<char>::max()};
0201 char m_sledge{std::numeric_limits<char>::max()};
0202 char m_sredge{std::numeric_limits<char>::max()};
0203 char m_tledge{std::numeric_limits<char>::max()};
0204 char m_tredge{std::numeric_limits<char>::max()};
0205 char m_dledge{std::numeric_limits<char>::max()};
0206 char m_dredge{std::numeric_limits<char>::max()};
0207 char m_hledge{std::numeric_limits<char>::max()};
0208 char m_hredge{std::numeric_limits<char>::max()};
0209 char m_slmix{std::numeric_limits<char>::max()};
0210 char m_srmix{std::numeric_limits<char>::max()};
0211 char m_tlmix{std::numeric_limits<char>::max()};
0212 char m_trmix{std::numeric_limits<char>::max()};
0213 unsigned short m_phibinlo{std::numeric_limits<unsigned short>::max()};
0214 unsigned short m_phibinhi{std::numeric_limits<unsigned short>::max()};
0215 unsigned short m_tbinlo{std::numeric_limits<unsigned short>::max()};
0216 unsigned short m_tbinhi{std::numeric_limits<unsigned short>::max()};
0217 float m_padphase{std::numeric_limits<float>::quiet_NaN()};
0218 float m_tbinphase{std::numeric_limits<float>::quiet_NaN()};
0219
0220 ClassDefOverride(TrkrClusterv6, 1)
0221 };
0222
0223 #endif