Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:12:36

0001 #include "sPHElectronPairContainerv1.h"
0002 #include "sPHElectronPairv1.h"
0003 
0004 #include <iterator>     // for reverse_iterator
0005 #include <map>          // for _Rb_tree_const_iterator, _Rb_tree_iterator
0006 #include <ostream>      // for operator<<, endl, ostream, basic_ostream, bas...
0007 #include <utility>      // for pair, make_pair
0008 
0009 using namespace std;
0010 
0011 sPHElectronPairContainerv1::sPHElectronPairContainerv1()
0012   : _map()
0013 {
0014 }
0015 
0016 sPHElectronPairContainerv1::sPHElectronPairContainerv1(const sPHElectronPairContainerv1& container)
0017   : _map()
0018 {
0019   for (ConstIter iter = container.begin();
0020        iter != container.end();
0021        ++iter)
0022   {
0023     sPHElectronPairv1* epair = dynamic_cast<sPHElectronPairv1*> (iter->second->CloneMe());
0024     _map.insert(make_pair(epair->get_id(), epair));
0025   }
0026 }
0027 
0028 sPHElectronPairContainerv1& sPHElectronPairContainerv1::operator=(const sPHElectronPairContainerv1& container)
0029 {
0030   Reset();
0031   for (ConstIter iter = container.begin();
0032        iter != container.end();
0033        ++iter)
0034   {
0035     sPHElectronPairv1* epair = dynamic_cast<sPHElectronPairv1*> (iter->second->CloneMe());
0036     _map.insert(make_pair(epair->get_id(), epair));
0037   }
0038   return *this;
0039 }
0040 
0041 sPHElectronPairContainerv1::~sPHElectronPairContainerv1()
0042 {
0043   Reset();
0044 }
0045 
0046 void sPHElectronPairContainerv1::Reset()
0047 {
0048   for (Iter iter = _map.begin();
0049        iter != _map.end();
0050        ++iter)
0051   {
0052     sPHElectronPairv1* epair = iter->second;
0053     delete epair;
0054   }
0055   _map.clear();
0056 }
0057 
0058 void sPHElectronPairContainerv1::identify(ostream& os) const
0059 {
0060   os << "sPHElectronPairContainerv1: size = " << _map.size() << endl;
0061   return;
0062 }
0063 
0064 const sPHElectronPairv1* sPHElectronPairContainerv1::get(unsigned int id) const
0065 {
0066   ConstIter iter = _map.find(id);
0067   if (iter == _map.end()) return nullptr;
0068   return iter->second;
0069 }
0070 
0071 sPHElectronPairv1* sPHElectronPairContainerv1::get(unsigned int id)
0072 {
0073   Iter iter = _map.find(id);
0074   if (iter == _map.end()) return nullptr;
0075   return iter->second;
0076 }
0077 
0078 void sPHElectronPairContainerv1::insert(const sPHElectronPairv1* epair)
0079 {
0080   unsigned int index = 0;
0081   if (!_map.empty()) index = _map.rbegin()->first + 1;
0082   _map.insert(make_pair(index, dynamic_cast<sPHElectronPairv1*> (epair->CloneMe())));
0083   _map[index]->set_id(index);
0084 }
0085