Back to home page

sPhenix code displayed by LXR

 
 

    


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 }