File indexing completed on 2025-08-06 08:18:23
0001 #ifndef TRACKRECO_ASSOCINFOCONTAINERV1_H
0002 #define TRACKRECO_ASSOCINFOCONTAINERV1_H
0003
0004 #include "AssocInfoContainer.h"
0005
0006 #include <trackbase/TrkrDefs.h>
0007
0008 #include <iostream> // for cout, ostream
0009 #include <map>
0010 #include <utility> // for pair
0011 #include <vector> // for vector
0012
0013 class AssocInfoContainerv1 : public AssocInfoContainer
0014 {
0015 public:
0016 typedef std::multimap<TrkrDefs::cluskey, unsigned int> ClusterTrackMap;
0017
0018 AssocInfoContainerv1();
0019 ~AssocInfoContainerv1() override;
0020
0021
0022 void Reset() override;
0023 void identify(std::ostream& os = std::cout) const override;
0024
0025 void SetClusterTrackAssoc(const TrkrDefs::cluskey& cluster_id, const unsigned int& track_id) override
0026 {
0027 _map_cluster_id_track_id.insert(ClusterTrackMap::value_type(cluster_id, track_id));
0028 }
0029
0030 std::vector<unsigned int> GetTracksFromCluster(const TrkrDefs::cluskey& cluster_id) const override
0031 {
0032 std::vector<unsigned int> ret;
0033 for (auto iter = _map_cluster_id_track_id.lower_bound(cluster_id);
0034 iter != _map_cluster_id_track_id.upper_bound(cluster_id); ++iter)
0035 {
0036 ret.push_back(iter->second);
0037 }
0038 return ret;
0039 }
0040
0041 private:
0042 ClusterTrackMap _map_cluster_id_track_id;
0043
0044 ClassDefOverride(AssocInfoContainerv1, 1)
0045 };
0046
0047 #endif