File indexing completed on 2025-08-06 08:18:08
0001 #include "ClusHitsVerbosev1.h"
0002
0003 #include <phool/phool.h>
0004 #include <algorithm>
0005 #include <iostream>
0006
0007 using std::cout;
0008 using std::endl;
0009
0010 namespace
0011 {
0012 ClusHitsVerbose::Vector dummy_vec;
0013 ClusHitsVerbose::PairVector dummy_pairvec;
0014 }
0015
0016 void ClusHitsVerbosev1::Reset()
0017 {
0018 m_data.clear();
0019 m_stage_phi.clear();
0020 m_stage_z.clear();
0021 m_stage_phiCut.clear();
0022 m_stage_zCut.clear();
0023 }
0024
0025 bool ClusHitsVerbosev1::hasClusKey(TrkrDefs::cluskey key) const
0026 {
0027 return m_data.find(key) != m_data.end();
0028 }
0029
0030 ClusHitsVerbose::Vector& ClusHitsVerbosev1::vecBins(TrkrDefs::cluskey key, int which)
0031 {
0032 if (!hasClusKey(key))
0033 {
0034 return dummy_vec;
0035 }
0036 else
0037 {
0038 return m_data[key][which];
0039 }
0040 }
0041
0042 ClusHitsVerbose::Vector& ClusHitsVerbosev1::phiBins(TrkrDefs::cluskey key)
0043 {
0044 return vecBins(key, 0);
0045 }
0046
0047 ClusHitsVerbose::Vector& ClusHitsVerbosev1::zBins(TrkrDefs::cluskey key)
0048 {
0049 return vecBins(key, 1);
0050 }
0051
0052 ClusHitsVerbose::Vector& ClusHitsVerbosev1::phiCutBins(TrkrDefs::cluskey key)
0053 {
0054 return vecBins(key, 2);
0055 }
0056
0057 ClusHitsVerbose::Vector& ClusHitsVerbosev1::zCutBins(TrkrDefs::cluskey key)
0058 {
0059 return vecBins(key, 3);
0060 }
0061
0062 ClusHitsVerbose::PairVector ClusHitsVerbosev1::pvecIE(TrkrDefs::cluskey key, int which)
0063 {
0064 if (!hasClusKey(key))
0065 {
0066 return dummy_pairvec;
0067 }
0068
0069
0070 std::vector<int> vecI{};
0071 std::vector<int> vecE{};
0072 for (auto& entry : m_data[key][which])
0073 {
0074 vecI.push_back(entry.first);
0075 vecE.push_back(entry.second);
0076 }
0077 return {vecI, vecE};
0078 }
0079
0080 ClusHitsVerbose::PairVector ClusHitsVerbosev1::phiBins_pvecIE(TrkrDefs::cluskey key)
0081 {
0082 return pvecIE(key, 0);
0083 }
0084
0085 ClusHitsVerbose::PairVector ClusHitsVerbosev1::zBins_pvecIE(TrkrDefs::cluskey key)
0086 {
0087 return pvecIE(key, 1);
0088 }
0089
0090 ClusHitsVerbose::PairVector ClusHitsVerbosev1::phiCutBins_pvecIE(TrkrDefs::cluskey key)
0091 {
0092 return pvecIE(key, 2);
0093 }
0094
0095 ClusHitsVerbose::PairVector ClusHitsVerbosev1::zCutBins_pvecIE(TrkrDefs::cluskey key)
0096 {
0097 return pvecIE(key, 3);
0098 }
0099
0100 void ClusHitsVerbosev1::push_hits(TrkrDefs::cluskey key)
0101 {
0102 m_data[key] = {m_stage_phi, m_stage_z, m_stage_phiCut, m_stage_zCut};
0103 m_stage_phi.clear();
0104 m_stage_z.clear();
0105 m_stage_phiCut.clear();
0106 m_stage_zCut.clear();
0107 }