Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:38

0001 #include "SvtxVertexMap_v1.h"
0002 
0003 #include "SvtxVertex.h"
0004 
0005 #include <phool/PHObject.h>  // for PHObject
0006 
0007 #include <iterator>  // for reverse_iterator
0008 #include <utility>   // for pair, make_pair
0009 
0010 // NOLINTNEXTLINE(bugprone-copy-constructor-init)
0011 SvtxVertexMap_v1::SvtxVertexMap_v1(const SvtxVertexMap_v1& vertexmap)
0012   : _map()
0013 {
0014   for (auto iter : vertexmap)
0015   {
0016     SvtxVertex* vertex = dynamic_cast<SvtxVertex*>(iter.second->CloneMe());
0017     _map.insert(std::make_pair(vertex->get_id(), vertex));
0018   }
0019 }
0020 
0021 SvtxVertexMap_v1& SvtxVertexMap_v1::operator=(const SvtxVertexMap_v1& vertexmap)
0022 {
0023   Reset();
0024   for (auto iter : vertexmap)
0025   {
0026     SvtxVertex* vertex = dynamic_cast<SvtxVertex*>(iter.second->CloneMe());
0027     _map.insert(std::make_pair(vertex->get_id(), vertex));
0028   }
0029   return *this;
0030 }
0031 
0032 SvtxVertexMap_v1::~SvtxVertexMap_v1()
0033 {
0034   SvtxVertexMap_v1::Reset();
0035 }
0036 
0037 void SvtxVertexMap_v1::Reset()
0038 {
0039   for (auto& iter : _map)
0040   {
0041     SvtxVertex* vertex = iter.second;
0042     delete vertex;
0043   }
0044   _map.clear();
0045 }
0046 
0047 void SvtxVertexMap_v1::identify(std::ostream& os) const
0048 {
0049   os << "SvtxVertexMap_v1: size = " << _map.size() << std::endl;
0050   return;
0051 }
0052 
0053 const SvtxVertex* SvtxVertexMap_v1::get(unsigned int id) const
0054 {
0055   ConstIter iter = _map.find(id);
0056   if (iter == _map.end())
0057   {
0058     return nullptr;
0059   }
0060   return iter->second;
0061 }
0062 
0063 SvtxVertex* SvtxVertexMap_v1::get(unsigned int id)
0064 {
0065   Iter iter = _map.find(id);
0066   if (iter == _map.end())
0067   {
0068     return nullptr;
0069   }
0070   return iter->second;
0071 }
0072 
0073 SvtxVertex* SvtxVertexMap_v1::insert(SvtxVertex* vertex)
0074 {
0075   unsigned int index = 0;
0076   if (!_map.empty())
0077   {
0078     index = _map.rbegin()->first + 1;
0079   }
0080   _map.insert(std::make_pair(index, vertex));
0081   _map[index]->set_id(index);
0082   return _map[index];
0083 }
0084 
0085 SvtxVertex* SvtxVertexMap_v1::insert_clone(const SvtxVertex* vertex)
0086 {
0087   return insert(dynamic_cast<SvtxVertex*>(vertex->CloneMe()));
0088 }