File indexing completed on 2025-12-17 09:20:43
0001 #ifndef TRACKBASE_TrkrHitSetContainerv2_H
0002 #define TRACKBASE_TrkrHitSetContainerv2_H
0003
0004 #include "TrkrDefs.h"
0005 #include "TrkrHitSetContainer.h"
0006
0007 #include <TClonesArray.h>
0008 #include <iostream> // for cout, ostream
0009 #include <map>
0010 #include <string> // for pair
0011 #include <utility> // for pair
0012
0013 class TrkrHitSet;
0014
0015
0016
0017
0018
0019 class TrkrHitSetContainerv2 final : public TrkrHitSetContainer
0020 {
0021 public:
0022
0023 TrkrHitSetContainerv2() = default;
0024
0025 TrkrHitSetContainerv2(const std::string& hitsetclass, const size_t estimated_size);
0026
0027 ~TrkrHitSetContainerv2() override
0028 {
0029 }
0030
0031 void Reset() override;
0032
0033 void identify(std::ostream& = std::cout) const override;
0034
0035 ConstIterator addHitSet(TrkrHitSet*) override;
0036
0037 ConstIterator addHitSetSpecifyKey(const TrkrDefs::hitsetkey, TrkrHitSet*) override;
0038
0039
0040 ConstIterator addHitSetSpecifyKey(const TrkrDefs::hitsetkey key);
0041
0042 void removeHitSet(TrkrDefs::hitsetkey) override;
0043
0044 void removeHitSet(TrkrHitSet*) override;
0045
0046 Iterator findOrAddHitSet(TrkrDefs::hitsetkey key) override;
0047
0048 ConstRange getHitSets(const TrkrDefs::TrkrId trackerid) const override;
0049
0050 ConstRange getHitSets(const TrkrDefs::TrkrId trackerid, const uint8_t layer) const override;
0051
0052 ConstRange getHitSets() const override;
0053
0054 TrkrHitSet* findHitSet(TrkrDefs::hitsetkey key) override;
0055
0056 unsigned int size() const override
0057 {
0058 return m_hitArray.GetEntriesFast();
0059 }
0060
0061 private:
0062
0063 void syncMapArray(void) const;
0064
0065
0066 mutable Map m_hitmap;
0067
0068 TClonesArray m_hitArray;
0069
0070 ClassDefOverride(TrkrHitSetContainerv2, 1)
0071 };
0072
0073 #endif