File indexing completed on 2025-08-05 08:17:03
0001
0002
0003
0004
0005
0006
0007 #ifndef TRACKBASE_TRKRCLUSTERV4_H
0008 #define TRACKBASE_TRKRCLUSTERV4_H
0009
0010 #include <iostream>
0011 #include "TrkrCluster.h"
0012 #include "TrkrDefs.h"
0013
0014 class PHObject;
0015
0016
0017
0018
0019
0020
0021
0022 class TrkrClusterv4 : public TrkrCluster
0023 {
0024 public:
0025
0026 TrkrClusterv4();
0027
0028
0029 ~TrkrClusterv4() override = default;
0030
0031
0032
0033 void identify(std::ostream& os = std::cout) const override;
0034 void Reset() override {}
0035 int isValid() const override;
0036 PHObject* CloneMe() const override { return new TrkrClusterv4(*this); }
0037
0038
0039 using PHObject::CopyFrom;
0040
0041
0042 void CopyFrom(const TrkrCluster&) override;
0043
0044
0045 void CopyFrom(TrkrCluster* source) override
0046 {
0047 CopyFrom(*source);
0048 }
0049
0050
0051
0052
0053 float getPosition(int coor) const override { return m_local[coor]; }
0054 void setPosition(int coor, float xi) override { m_local[coor] = xi; }
0055 float getLocalX() const override { return m_local[0]; }
0056 void setLocalX(float loc0) override { m_local[0] = loc0; }
0057 float getLocalY() const override { return m_local[1]; }
0058 void setLocalY(float loc1) override { m_local[1] = loc1; }
0059
0060 TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; }
0061 void setSubSurfKey(TrkrDefs::subsurfkey id) override { m_subsurfkey = id; }
0062
0063
0064
0065
0066 unsigned int getAdc() const override
0067 {
0068 uint8_t tmp = m_adc;
0069 return tmp;
0070 }
0071
0072 void setAdc(unsigned int adc) override
0073 {
0074 uint16_t tmp = 0;
0075 if (adc > 0xff)
0076 tmp = 0xff;
0077 else
0078 tmp = adc;
0079 m_adc |= tmp;
0080 }
0081
0082 unsigned int getMaxAdc() const override
0083 {
0084 uint8_t tmp = (m_adc >> 8);
0085 unsigned int out = 0;
0086 out |= tmp;
0087 return out;
0088 }
0089
0090 void setMaxAdc(uint16_t maxadc) override
0091 {
0092 if (maxadc > 0xff) maxadc = 0xff;
0093 uint16_t tmp = (maxadc << 8);
0094 m_adc |= tmp;
0095 }
0096
0097
0098
0099
0100 float getRPhiError() const override
0101 {
0102 std::cout << "Deprecated getRPhiError trkrcluster function!" << std::endl;
0103 return NAN;
0104 }
0105 float getZError() const override
0106 {
0107 std::cout << "Deprecated getZError trkrcluster function!" << std::endl;
0108 return NAN;
0109 }
0110
0111
0112 float getX() const override
0113 {
0114 std::cout << "Deprecated getx trkrcluster function!" << std::endl;
0115 return NAN;
0116 }
0117 float getY() const override
0118 {
0119 std::cout << "Deprecated gety trkrcluster function!" << std::endl;
0120 return NAN;
0121 }
0122 float getZ() const override
0123 {
0124 std::cout << "Deprecated getz trkrcluster function!" << std::endl;
0125 return NAN;
0126 }
0127 void setX(float) override
0128 {
0129 std::cout << "Deprecated setx trkrcluster function!" << std::endl;
0130 }
0131 void setY(float) override
0132 {
0133 std::cout << "Deprecated sety trkrcluster function!" << std::endl;
0134 }
0135 void setZ(float) override
0136 {
0137 std::cout << "Deprecated setz trkrcluster function!" << std::endl;
0138 }
0139 float getSize(unsigned int, unsigned int) const override
0140 {
0141 std::cout << "Deprecated getsize trkrcluster function!" << std::endl;
0142 return NAN;
0143 }
0144 void setSize(unsigned int, unsigned int, float) override
0145 {
0146 std::cout << "Deprecated setsize trkrcluster function!" << std::endl;
0147 }
0148 float getError(unsigned int, unsigned int) const override
0149 {
0150 std::cout << "Deprecated geterr trkrcluster function!" << std::endl;
0151 return NAN;
0152 }
0153 void setError(unsigned int, unsigned int, float) override
0154 {
0155 std::cout << "Deprecated seterr trkrcluster function!" << std::endl;
0156 }
0157
0158 char getSize() const override { return m_phisize * m_zsize; }
0159
0160
0161 float getPhiSize() const override { return (float) m_phisize; }
0162 void setPhiSize(char phisize) { m_phisize = phisize; }
0163
0164 float getZSize() const override { return (float) m_zsize; }
0165 void setZSize(char zsize) { m_zsize = zsize; }
0166
0167 char getOverlap() const override { return m_overlap; }
0168 void setOverlap(char overlap) override { m_overlap = overlap; }
0169
0170 char getEdge() const override { return m_edge; }
0171 void setEdge(char edge) override { m_edge = edge; }
0172
0173
0174
0175
0176
0177
0178
0179
0180 protected:
0181 float m_local[2]{};
0182 TrkrDefs::subsurfkey m_subsurfkey;
0183 unsigned short int m_adc;
0184 char m_phisize;
0185 char m_zsize;
0186 char m_overlap;
0187 char m_edge;
0188
0189 ClassDefOverride(TrkrClusterv4, 2)
0190 };
0191
0192 #endif