File indexing completed on 2025-08-05 08:17:03
0001 #ifndef TRACKBASE_TRKRHITSETCONTAINER_H
0002 #define TRACKBASE_TRKRHITSETCONTAINER_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "TrkrDefs.h" // for hitsetkey, TrkrId
0011
0012 #include <phool/PHObject.h>
0013
0014 #include <iostream> // for cout, ostream
0015 #include <map>
0016 #include <utility> // for pair
0017
0018 class TrkrHitSet;
0019
0020
0021
0022
0023 class TrkrHitSetContainer : public PHObject
0024 {
0025 public:
0026 using Map = std::map<TrkrDefs::hitsetkey, TrkrHitSet *>;
0027 using Iterator = Map::iterator;
0028 using ConstIterator = Map::const_iterator;
0029 using Range = std::pair<Iterator, Iterator>;
0030 using ConstRange = std::pair<ConstIterator, ConstIterator>;
0031
0032
0033 ~TrkrHitSetContainer() override = default;
0034
0035
0036 void Reset() override;
0037
0038
0039 virtual ConstIterator addHitSet(TrkrHitSet *);
0040
0041 virtual ConstIterator addHitSetSpecifyKey(const TrkrDefs::hitsetkey, TrkrHitSet *);
0042
0043
0044 virtual void removeHitSet(TrkrDefs::hitsetkey)
0045 {
0046 }
0047
0048
0049 virtual void removeHitSet(TrkrHitSet *)
0050 {
0051 }
0052
0053
0054 virtual Iterator findOrAddHitSet(TrkrDefs::hitsetkey);
0055
0056
0057 virtual ConstRange getHitSets(const TrkrDefs::TrkrId) const;
0058
0059
0060 virtual ConstRange getHitSets(const TrkrDefs::TrkrId trackerid, const uint8_t layer) const;
0061
0062
0063 virtual ConstRange getHitSets() const;
0064
0065
0066 virtual TrkrHitSet *findHitSet(TrkrDefs::hitsetkey)
0067 {
0068 return nullptr;
0069 }
0070
0071 virtual unsigned int size() const
0072 {
0073 return 0;
0074 }
0075
0076 protected:
0077
0078 TrkrHitSetContainer() = default;
0079
0080 private:
0081 ClassDefOverride(TrkrHitSetContainer, 1)
0082 };
0083
0084 #endif