Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:16

0001 #include "TrackSeedContainer_v1.h"
0002 
0003 #include "TrackSeed.h"
0004 
0005 #include <phool/PHObject.h>
0006 
0007 #include <algorithm>
0008 #include <vector>
0009 
0010 TrackSeedContainer_v1::TrackSeedContainer_v1()
0011   : m_seeds()
0012 {
0013 }
0014 
0015 TrackSeedContainer_v1::TrackSeedContainer_v1(const TrackSeedContainer_v1& seeds)
0016   : m_seeds()
0017 {
0018   for (const TrackSeed* seed : seeds)
0019   {
0020     auto newseed = static_cast<TrackSeed*>(seed->CloneMe());
0021     m_seeds.push_back(newseed);
0022   }
0023 }
0024 
0025 TrackSeedContainer_v1& TrackSeedContainer_v1::operator=(const TrackSeedContainer_v1& seedContainer)
0026 {
0027   Reset();
0028   for (const TrackSeed* seed : seedContainer)
0029   {
0030     auto newseed = static_cast<TrackSeed*>(seed->CloneMe());
0031     m_seeds.push_back(newseed);
0032   }
0033 
0034   return *this;
0035 }
0036 
0037 void TrackSeedContainer_v1::Reset()
0038 {
0039   for (const TrackSeed* seed : m_seeds)
0040   {
0041     delete seed;
0042   }
0043 
0044   m_seeds.clear();
0045 }
0046 
0047 // cppcheck-suppress virtualCallInConstructor
0048 TrackSeedContainer_v1::~TrackSeedContainer_v1()
0049 {
0050   Reset();
0051 }
0052 
0053 void TrackSeedContainer_v1::identify(std::ostream& os) const
0054 {
0055   os << "TrackSeedContainer_v1 size is " << m_seeds.size()
0056      << std::endl;
0057 }
0058 
0059 const TrackSeed* TrackSeedContainer_v1::get(const std::size_t key) const
0060 {
0061   if (key > m_seeds.size())
0062   {
0063     return nullptr;
0064   }
0065   return m_seeds.at(key);
0066 }
0067 
0068 TrackSeed* TrackSeedContainer_v1::get(const std::size_t key)
0069 {
0070   if (key >= m_seeds.size())
0071   {
0072     return nullptr;
0073   }
0074   return m_seeds.at(key);
0075 }
0076 
0077 TrackSeed* TrackSeedContainer_v1::insert(const TrackSeed* seed)
0078 {
0079   m_seeds.push_back(static_cast<TrackSeed*>(seed->CloneMe()));
0080   Iter iter = m_seeds.end() - 1;
0081   return *iter;
0082 }
0083 
0084 std::size_t TrackSeedContainer_v1::find(const TrackSeed* seed) const
0085 {
0086   auto it = std::find(m_seeds.begin(), m_seeds.end(), seed);
0087   return std::distance(m_seeds.begin(), it);
0088 }
0089 
0090 std::size_t TrackSeedContainer_v1::find(const TrackSeed* seed)
0091 {
0092   auto it = std::find(m_seeds.begin(), m_seeds.end(), seed);
0093   return std::distance(m_seeds.begin(), it);
0094 }