Back to home page

sPhenix code displayed by LXR

 
 

    


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   // cppcheck-suppress virtualCallInConstructor
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