File indexing completed on 2025-08-06 08:18:13
0001
0002
0003
0004
0005
0006
0007 #include "TrkrHitSetTpcv1.h"
0008 #include "TrkrHit.h"
0009
0010 #include <algorithm>
0011 #include <cassert>
0012 #include <cstdlib> // for exit
0013 #include <iostream>
0014 #include <type_traits> // for __decay_and_strip<>::__type
0015
0016 void TrkrHitSetTpcv1::Reset()
0017 {
0018
0019
0020
0021
0022
0023
0024
0025
0026 for (auto& pad : m_timeFrameADCData)
0027 {
0028 std::fill(pad.begin(), pad.end(), 0);
0029 }
0030 }
0031 void TrkrHitSetTpcv1::Resize()
0032 {
0033 const uint16_t n_pad = getNPads();
0034 const uint16_t n_tbin = getNTBins();
0035
0036 if (n_pad != m_timeFrameADCData.size())
0037 m_timeFrameADCData.resize(n_pad);
0038
0039 for (auto& pad : m_timeFrameADCData)
0040 {
0041 if (n_tbin != pad.size())
0042 {
0043 pad.reserve(n_tbin);
0044 pad.resize(n_tbin, 0);
0045 }
0046 }
0047 }
0048
0049 void TrkrHitSetTpcv1::identify(std::ostream& os) const
0050 {
0051 const uint16_t layer = TrkrDefs::getLayer(m_hitSetKey);
0052 const uint16_t trkrid = TrkrDefs::getTrkrId(m_hitSetKey);
0053
0054 os
0055 << "TrkrHitSetTpcv1: "
0056 << " hitsetkey " << getHitSetKey()
0057 << " TrkrId: " << trkrid
0058 << " layer: " << layer
0059 << " m_nPads: " << m_nPads
0060 << " n_tBins: " << m_nTBins
0061 << " m_padIndexStart: " << m_padIndexStart
0062 << " m_tBinIndexStart: " << m_tBinIndexStart
0063 << " m_StartingBCO: " << m_StartingBCO
0064 << std::endl;
0065
0066
0067
0068
0069
0070
0071
0072 for (uint16_t i = 0; i < m_nPads; ++i)
0073 {
0074 if (m_timeFrameADCData[i].size() == 0)
0075 {
0076 os << "Pad " << i << " ADC vector is zero-sized" << std::endl;
0077 continue;
0078 }
0079
0080
0081 if (*std::max_element(m_timeFrameADCData[i].begin(), m_timeFrameADCData[i].end()) == 0) continue;
0082
0083 os << "Pad " << i << ":";
0084
0085 int j = 0;
0086 for (const auto& adc : m_timeFrameADCData[i])
0087 {
0088 if (adc)
0089 {
0090 os << "\t[" << j << "]:" << adc;
0091 }
0092 ++j;
0093 }
0094 os << std::endl;
0095 }
0096 }
0097
0098 TpcDefs::ADCDataType& TrkrHitSetTpcv1::getTpcADC(const uint16_t pad, const uint16_t tbin)
0099 {
0100 assert(pad < m_nPads);
0101 assert(tbin < m_nTBins);
0102 assert(m_timeFrameADCData.size() == m_nPads);
0103 assert(m_timeFrameADCData[pad].size() == m_nTBins);
0104
0105 return m_timeFrameADCData[pad][tbin];
0106 }
0107
0108 const TpcDefs::ADCDataType& TrkrHitSetTpcv1::getTpcADC(const uint16_t pad, const uint16_t tbin) const
0109 {
0110 assert(pad < m_nPads);
0111 assert(tbin < m_nTBins);
0112 assert(m_timeFrameADCData.size() == m_nPads);
0113 assert(m_timeFrameADCData[pad].size() == m_nTBins);
0114
0115 return m_timeFrameADCData[pad][tbin];
0116 }
0117
0118 void TrkrHitSetTpcv1::removeHit(TrkrDefs::hitkey key)
0119 {
0120 getTpcADC(key) = 0;
0121 }
0122
0123 TrkrHitSetTpcv1::ConstIterator
0124 TrkrHitSetTpcv1::addHitSpecificKey(const TrkrDefs::hitkey key, TrkrHit* hit)
0125 {
0126 std::cout << __PRETTY_FUNCTION__
0127 << " : This function is deprecated! Please use getTpcADC(TrkrDefs::hitkey key)" << std::endl;
0128
0129 exit(1);
0130
0131 return TrkrHitSetTpc::addHitSpecificKey(key, hit);
0132 }
0133
0134 TrkrHit*
0135 TrkrHitSetTpcv1::getHit(const TrkrDefs::hitkey key) const
0136 {
0137 std::cout << __PRETTY_FUNCTION__
0138 << " : This function is deprecated! Please use getTpcADC(TrkrDefs::hitkey key)" << std::endl;
0139
0140 exit(1);
0141
0142 return TrkrHitSetTpc::getHit(key);
0143 }
0144
0145 TrkrHitSetTpcv1::ConstRange
0146 TrkrHitSetTpcv1::getHits() const
0147 {
0148 std::cout << __PRETTY_FUNCTION__
0149 << " : This function is deprecated! Please use getTpcADC(TrkrDefs::hitkey key)" << std::endl;
0150
0151 exit(1);
0152
0153 return TrkrHitSetTpc::getHits();
0154 }