File indexing completed on 2026-09-01 08:21:04
0001
0002
0003
0004
0005
0006
0007 #ifndef TRACKBASE_LASERCLUSTERV3_H
0008 #define TRACKBASE_LASERCLUSTERV3_H
0009
0010 #include "LaserCluster.h"
0011
0012 #include <iostream>
0013 #include <vector>
0014
0015 class PHObject;
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 class LaserClusterv3 : public LaserCluster
0028 {
0029 public:
0030
0031 LaserClusterv3() = default;
0032
0033
0034 void Reset() override {}
0035 int isValid() const override;
0036 PHObject* CloneMe() const override { return new LaserClusterv3(*this); }
0037
0038
0039 void CopyFrom( const LaserCluster& ) override;
0040
0041
0042 void CopyFrom( LaserCluster* source ) override
0043 { CopyFrom( *source ); }
0044
0045 bool getFitMode() const override { return m_fitMode; }
0046 void setFitMode(bool fitMode) override { m_fitMode = fitMode; }
0047
0048 unsigned int getLayerInt() const override { return m_posHardware[0]; }
0049 void setLayerInt(unsigned int layer) override { m_posHardware[0] = layer; }
0050 unsigned int getIPhiInt() const override { return m_posHardware[1]; }
0051 void setIPhiInt(unsigned int iphi) override { m_posHardware[1] = iphi; }
0052 unsigned int getITInt() const override { return m_posHardware[2]; }
0053 void setITInt(unsigned int it) override { m_posHardware[2] = it; }
0054
0055 unsigned int getNhits() const override {return (unsigned int)m_hits.size();}
0056
0057
0058
0059
0060 unsigned int getAdc() const override;
0061
0062 void setNLayers(unsigned int nLayers) override { m_nLayers = nLayers; }
0063 unsigned int getNLayers() const override { return m_nLayers; }
0064
0065 void setNIPhi(unsigned int nIPhi) override { m_nIPhi = nIPhi; }
0066 unsigned int getNIPhi() const override { return m_nIPhi; }
0067
0068 void setNIT(unsigned int nIT) override { m_nIT = nIT; }
0069 unsigned int getNIT() const override { return m_nIT; }
0070
0071 void setSDLayer(float SDLayer) override { m_SDLayer = SDLayer; }
0072 float getSDLayer() const override { return m_SDLayer; }
0073
0074 void setSDIPhi(float SDIPhi) override { m_SDIPhi = SDIPhi; }
0075 float getSDIPhi() const override { return m_SDIPhi; }
0076
0077 void setSDIT(float SDIT) override { m_SDIT = SDIT; }
0078 float getSDIT() const override { return m_SDIT; }
0079
0080 void setSDWeightedLayer(float SDLayer) override { m_SDWeightedLayer = SDLayer; }
0081 float getSDWeightedLayer() const override { return m_SDWeightedLayer; }
0082
0083 void setSDWeightedIPhi(float SDIPhi) override { m_SDWeightedIPhi = SDIPhi; }
0084 float getSDWeightedIPhi() const override { return m_SDWeightedIPhi; }
0085
0086 void setSDWeightedIT(float SDIT) override { m_SDWeightedIT = SDIT; }
0087 float getSDWeightedIT() const override { return m_SDWeightedIT; }
0088
0089 void addHit(TrkrDefs::hitsetkey hitsetkey, TrkrDefs::hitkey hitkey, uint16_t adc) override { m_hits.push_back(LaserClusterHitInfo(hitsetkey, hitkey, adc)); };
0090 LaserClusterHitInfo getHit(int hitIndex) const override { return m_hits[hitIndex]; };
0091
0092 void identify(std::ostream& os = std::cout) const override;
0093
0094 protected:
0095
0096 std::vector<LaserClusterHitInfo> m_hits;
0097
0098 unsigned int m_posHardware[3] = {std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()};
0099 bool m_fitMode{false};
0100
0101
0102 unsigned int m_nhits = std::numeric_limits<unsigned int>::max();
0103 unsigned int m_nLayers = std::numeric_limits<unsigned int>::max();
0104 unsigned int m_nIPhi = std::numeric_limits<unsigned int>::max();
0105 unsigned int m_nIT = std::numeric_limits<unsigned int>::max();
0106 float m_SDLayer = std::numeric_limits<float>::quiet_NaN();
0107 float m_SDIPhi = std::numeric_limits<float>::quiet_NaN();
0108 float m_SDIT = std::numeric_limits<float>::quiet_NaN();
0109 float m_SDWeightedLayer = std::numeric_limits<float>::quiet_NaN();
0110 float m_SDWeightedIPhi = std::numeric_limits<float>::quiet_NaN();
0111 float m_SDWeightedIT = std::numeric_limits<float>::quiet_NaN();
0112
0113 ClassDefOverride(LaserClusterv3, 1)
0114 };
0115
0116 #endif