File indexing completed on 2025-08-06 08:18:13
0001 #ifndef TRACKBASE_TrkrHitSetTpcv1_H
0002 #define TRACKBASE_TrkrHitSetTpcv1_H
0003
0004 #include "TrkrHitSetTpc.h"
0005
0006 #include <utility> // for pair
0007 #include <vector>
0008
0009
0010 class TrkrHit;
0011
0012
0013 class TrkrHitSetTpcv1 final : public TrkrHitSetTpc
0014 {
0015 public:
0016 TrkrHitSetTpcv1() = default;
0017
0018 TrkrHitSetTpcv1(const uint16_t n_pad, const uint16_t n_tbin)
0019 : TrkrHitSetTpc(n_pad, n_tbin), m_nPads(n_pad), m_nTBins(n_tbin)
0020 {
0021 Resize();
0022 }
0023
0024 ~TrkrHitSetTpcv1() override
0025 {
0026 }
0027
0028 void identify(std::ostream& os = std::cout) const override;
0029
0030 void Resize() override;
0031
0032
0033 void Clear(Option_t* = "") override { Reset(); }
0034
0035 void Reset() override;
0036
0037 void setHitSetKey(const TrkrDefs::hitsetkey key) override
0038 {
0039 m_hitSetKey = key;
0040 }
0041
0042 TrkrDefs::hitsetkey getHitSetKey() const override
0043 {
0044 return m_hitSetKey;
0045 }
0046
0047
0048 using TrkrHitSetTpc::getTpcADC;
0049
0050 TpcDefs::ADCDataType& getTpcADC(const uint16_t local_pad, const uint16_t local_tbin) override;
0051
0052 const TpcDefs::ADCDataType& getTpcADC(const uint16_t local_pad, const uint16_t local_tbin) const override;
0053
0054 ConstIterator addHitSpecificKey(const TrkrDefs::hitkey, TrkrHit*) override;
0055
0056 void removeHit(TrkrDefs::hitkey) override;
0057
0058 TrkrHit* getHit(const TrkrDefs::hitkey) const override;
0059
0060 ConstRange getHits() const override;
0061
0062 unsigned int size() const override
0063 {
0064 return m_nPads * m_nTBins;
0065 }
0066
0067 uint16_t getNPads() const override
0068 {
0069 return m_nPads;
0070 }
0071
0072 void setNPads(uint16_t nPads = 0) override
0073 {
0074 m_nPads = nPads;
0075 Resize();
0076 }
0077
0078 uint16_t getNTBins() const override
0079 {
0080 return m_nTBins;
0081 }
0082
0083 void setNTBins(uint16_t tBins = 0) override
0084 {
0085 m_nTBins = tBins;
0086 Resize();
0087 }
0088
0089 uint16_t getPadIndexStart() const override
0090 {
0091 return m_padIndexStart;
0092 }
0093
0094 void setPadIndexStart(uint16_t padIndexStart) override
0095 {
0096 m_padIndexStart = padIndexStart;
0097 }
0098
0099 TpcDefs::BCODataType getStartingBco() const override
0100 {
0101 return m_StartingBCO;
0102 }
0103
0104 void setStartingBco(TpcDefs::BCODataType startingBco) override
0105 {
0106 m_StartingBCO = startingBco;
0107 }
0108
0109 uint16_t getTBinIndexStart() const override
0110 {
0111 return m_tBinIndexStart;
0112 }
0113
0114 void setTBinIndexStart(uint16_t tBinIndexStart) override
0115 {
0116 m_tBinIndexStart = tBinIndexStart;
0117 }
0118
0119 const TimeFrameADCDataType& getTimeFrameAdcData() const override
0120 {
0121 return m_timeFrameADCData;
0122 }
0123
0124 TimeFrameADCDataType& getTimeFrameAdcData() override
0125 {
0126 return m_timeFrameADCData;
0127 }
0128
0129 void setTimeFrameAdcData(const TimeFrameADCDataType& timeFrameAdcData) override
0130 {
0131 m_timeFrameADCData = timeFrameAdcData;
0132 }
0133
0134 private:
0135
0136 TrkrDefs::hitsetkey m_hitSetKey = TrkrDefs::HITSETKEYMAX;
0137
0138
0139
0140
0141 TimeFrameADCDataType m_timeFrameADCData;
0142
0143
0144 TpcDefs::BCODataType m_StartingBCO = 0;
0145
0146
0147 uint16_t m_padIndexStart = 0;
0148 uint16_t m_tBinIndexStart = 0;
0149
0150
0151 uint16_t m_nPads = 0;
0152 uint16_t m_nTBins = 0;
0153
0154 ClassDefOverride(TrkrHitSetTpcv1, 1);
0155 };
0156
0157 #endif