File indexing completed on 2025-08-06 08:18:13
0001 #include "SvtxAlignmentStateMap_v1.h"
0002
0003 #include "SvtxAlignmentState.h"
0004
0005 #include <phool/PHObject.h>
0006
0007 SvtxAlignmentStateMap_v1::SvtxAlignmentStateMap_v1()
0008 : m_map()
0009 {
0010 }
0011
0012 SvtxAlignmentStateMap_v1::~SvtxAlignmentStateMap_v1()
0013 {
0014 Reset();
0015 }
0016
0017 void SvtxAlignmentStateMap_v1::Reset()
0018 {
0019 for (auto [key, statevec] : m_map)
0020 {
0021 for (auto state : statevec)
0022 {
0023 delete state;
0024 }
0025 statevec.clear();
0026 }
0027
0028 m_map.clear();
0029 }
0030
0031 std::size_t SvtxAlignmentStateMap_v1::erase(unsigned int track)
0032 {
0033 auto iter = m_map.find(track);
0034 if (iter != m_map.end())
0035 {
0036 auto statevec = iter->second;
0037 for (auto state : statevec)
0038 {
0039 delete state;
0040 }
0041 }
0042
0043 return m_map.erase(track);
0044 }
0045
0046 void SvtxAlignmentStateMap_v1::identify(std::ostream& os) const
0047 {
0048 os << "SvtxAlignmentStateMap_v1: size = " << m_map.size() << std::endl;
0049 }
0050
0051 const SvtxAlignmentStateMap::StateVec SvtxAlignmentStateMap_v1::get(unsigned int track) const
0052 {
0053 auto iter = m_map.find(track);
0054 if (iter == m_map.end())
0055 {
0056 return SvtxAlignmentStateMap::StateVec();
0057 }
0058
0059 return iter->second;
0060 }
0061
0062 SvtxAlignmentStateMap::StateVec SvtxAlignmentStateMap_v1::get(unsigned int track)
0063 {
0064 auto iter = m_map.find(track);
0065 if (iter == m_map.end())
0066 {
0067 return SvtxAlignmentStateMap::StateVec();
0068 }
0069
0070 return iter->second;
0071 }
0072
0073 SvtxAlignmentStateMap::StateVec SvtxAlignmentStateMap_v1::insertWithKey(unsigned int track, SvtxAlignmentStateMap::StateVec states)
0074 {
0075 const auto result = m_map.insert(std::make_pair(track, states));
0076
0077 if (!result.second)
0078 {
0079 std::cout << "SvtxAlignmentStateMap_v1::insertWithKey - duplicated key " << track << ", state not entered. " << std::endl;
0080
0081 return SvtxAlignmentStateMap::StateVec();
0082 }
0083 else
0084 {
0085 return states;
0086 }
0087 }