File indexing completed on 2026-09-01 08:21:04
0001
0002
0003
0004
0005
0006
0007 #ifndef TRACKBASE_LASERCLUSTERV4_H
0008 #define TRACKBASE_LASERCLUSTERV4_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 LaserClusterv4 : public LaserCluster
0028 {
0029 public:
0030
0031 LaserClusterv4() = default;
0032
0033
0034 void Reset() override {}
0035 int isValid() const override;
0036 PHObject* CloneMe() const override { return new LaserClusterv4(*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 getNhits() const override {return (unsigned int)m_hits.size();}
0049
0050
0051
0052
0053 unsigned int getAdc() const override;
0054
0055 void setNLayers(unsigned int nLayers) override { m_nLayers = nLayers; }
0056 unsigned int getNLayers() const override { return m_nLayers; }
0057
0058 void setNIPhi(unsigned int nIPhi) override { m_nIPhi = nIPhi; }
0059 unsigned int getNIPhi() const override { return m_nIPhi; }
0060
0061 void setNIT(unsigned int nIT) override { m_nIT = nIT; }
0062 unsigned int getNIT() const override { return m_nIT; }
0063
0064 void setSDLayer(float SDLayer) override { m_SDLayer = SDLayer; }
0065 float getSDLayer() const override { return m_SDLayer; }
0066
0067 void setSDIPhi(float SDIPhi) override { m_SDIPhi = SDIPhi; }
0068 float getSDIPhi() const override { return m_SDIPhi; }
0069
0070 void setSDIT(float SDIT) override { m_SDIT = SDIT; }
0071 float getSDIT() const override { return m_SDIT; }
0072
0073 void setSDWeightedLayer(float SDLayer) override { m_SDWeightedLayer = SDLayer; }
0074 float getSDWeightedLayer() const override { return m_SDWeightedLayer; }
0075
0076 void setSDWeightedIPhi(float SDIPhi) override { m_SDWeightedIPhi = SDIPhi; }
0077 float getSDWeightedIPhi() const override { return m_SDWeightedIPhi; }
0078
0079 void setSDWeightedIT(float SDIT) override { m_SDWeightedIT = SDIT; }
0080 float getSDWeightedIT() const override { return m_SDWeightedIT; }
0081
0082 void addHit(TrkrDefs::hitsetkey hitsetkey, TrkrDefs::hitkey hitkey, uint16_t adc) override { m_hits.push_back(LaserClusterHitInfo(hitsetkey, hitkey, adc)); };
0083 LaserClusterHitInfo getHit(int hitIndex) const override { return m_hits[hitIndex]; };
0084
0085 void identify(std::ostream& os = std::cout) const override;
0086
0087 protected:
0088
0089 std::vector<LaserClusterHitInfo> m_hits;
0090
0091 bool m_fitMode{false};
0092
0093
0094 unsigned int m_nhits = std::numeric_limits<unsigned int>::max();
0095 unsigned int m_nLayers = std::numeric_limits<unsigned int>::max();
0096 unsigned int m_nIPhi = std::numeric_limits<unsigned int>::max();
0097 unsigned int m_nIT = std::numeric_limits<unsigned int>::max();
0098 float m_SDLayer = std::numeric_limits<float>::quiet_NaN();
0099 float m_SDIPhi = std::numeric_limits<float>::quiet_NaN();
0100 float m_SDIT = std::numeric_limits<float>::quiet_NaN();
0101 float m_SDWeightedLayer = std::numeric_limits<float>::quiet_NaN();
0102 float m_SDWeightedIPhi = std::numeric_limits<float>::quiet_NaN();
0103 float m_SDWeightedIT = std::numeric_limits<float>::quiet_NaN();
0104
0105 ClassDefOverride(LaserClusterv4, 1)
0106 };
0107
0108 #endif