File indexing completed on 2025-08-06 08:18:17
0001 #ifndef TRACKBASEHISTORIC_TRACKSEEDCONTAINERV1_H
0002 #define TRACKBASEHISTORIC_TRACKSEEDCONTAINERV1_H
0003
0004 #include "TrackSeed.h"
0005 #include "TrackSeedContainer.h"
0006
0007 #include <iostream>
0008 #include <vector>
0009
0010 class TrackSeedContainer_v1 : public TrackSeedContainer
0011 {
0012 public:
0013 TrackSeedContainer_v1();
0014 TrackSeedContainer_v1(const TrackSeedContainer_v1& trackmap);
0015 TrackSeedContainer_v1& operator=(const TrackSeedContainer_v1& seedContainer);
0016 ~TrackSeedContainer_v1() override;
0017
0018 void identify(std::ostream& os = std::cout) const override;
0019
0020 void Reset() override;
0021 int isValid() const override { return 1; }
0022 PHObject* CloneMe() const override { return new TrackSeedContainer_v1(*this); }
0023
0024 bool empty() const override { return m_seeds.empty(); }
0025 std::size_t size() const override { return m_seeds.size(); }
0026 void clear() override { Reset(); }
0027
0028 const TrackSeed* get(const std::size_t key) const override;
0029 TrackSeed* get(const std::size_t key) override;
0030 TrackSeed* insert(const TrackSeed* seed) override;
0031 void erase(const std::size_t key) override
0032 {
0033 m_seeds.at(key) = nullptr;
0034 }
0035
0036 std::size_t index(ConstIter it) const override { return it - m_seeds.begin(); }
0037 std::size_t index(Iter it) const override { return it - m_seeds.begin(); }
0038
0039 ConstIter begin() const override { return m_seeds.begin(); }
0040 ConstIter find(const std::size_t key) const override { return m_seeds.begin() + key; }
0041 std::size_t find(const TrackSeed*) const override;
0042 ConstIter end() const override { return m_seeds.end(); }
0043
0044 Iter begin() override { return m_seeds.begin(); }
0045 Iter find(const std::size_t key) override { return m_seeds.begin() + key; }
0046 std::size_t find(const TrackSeed*) override;
0047 Iter end() override { return m_seeds.end(); }
0048
0049 private:
0050 Container m_seeds;
0051
0052 ClassDefOverride(TrackSeedContainer_v1, 1);
0053 };
0054
0055 #endif