Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:11

0001 /**
0002  * @file trackbase/TrkrClusterCrossingAssocv1.cc
0003  * @author Tony Frawley
0004  * @date March 2022
0005  * @brief TrkrClusterCrossingAssoc implementation
0006  */
0007 
0008 #include "TrkrClusterCrossingAssocv1.h"
0009 #include "TrkrDefs.h"
0010 
0011 #include <ostream>  // for operator<<, endl, basic_ostream, ostream, basic_o...
0012 
0013 namespace
0014 {
0015   TrkrClusterCrossingAssocv1::Map dummy_map;
0016 }
0017 
0018 //_________________________________________________________________________
0019 void TrkrClusterCrossingAssocv1::Reset()
0020 {
0021   // delete all entries
0022   Map empty_map;
0023   empty_map.swap(m_map);
0024   empty_map.clear();
0025 
0026   m_map.clear();
0027 }
0028 
0029 //_________________________________________________________________________
0030 void TrkrClusterCrossingAssocv1::identify(std::ostream& os) const
0031 {
0032   std::multimap<TrkrDefs::cluskey, TrkrDefs::hitkey>::const_iterator iter;
0033   os << "-----TrkrClusterCrossingAssocv1-----" << std::endl;
0034   os << "Number of associations: " << size() << std::endl;
0035   for (const auto& map_pair : m_map)
0036   {
0037     os << "clus key " << map_pair.first << std::dec
0038        << " layer " << (unsigned int) TrkrDefs::getLayer(map_pair.first)
0039        << " crossing number: " << map_pair.second << std::endl;
0040   }
0041   os << "------------------------------" << std::endl;
0042 
0043   return;
0044 }
0045 
0046 //_________________________________________________________________________
0047 void TrkrClusterCrossingAssocv1::addAssoc(TrkrDefs::cluskey ckey, short int hidx)
0048 {
0049   // insert association
0050   m_map.insert(std::make_pair(ckey, hidx));
0051 }
0052 
0053 //_________________________________________________________________________
0054 TrkrClusterCrossingAssocv1::ConstRange TrkrClusterCrossingAssocv1::getCrossings(TrkrDefs::cluskey ckey) const
0055 {
0056   const auto range = m_map.equal_range(ckey);
0057   return range;
0058 }
0059 
0060 //_________________________________________________________________________
0061 unsigned int TrkrClusterCrossingAssocv1::size() const
0062 {
0063   unsigned int size = 0;
0064   size = m_map.size();
0065 
0066   return size;
0067 }
0068 
0069 TrkrClusterCrossingAssocv1::ConstRange TrkrClusterCrossingAssocv1::getAll() const
0070 {
0071   return std::make_pair(m_map.begin(), m_map.end());
0072 }