Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SvtxVertexMap_v1.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SvtxVertexMap_v1.cc
1 #include "SvtxVertexMap_v1.h"
2 
3 #include "SvtxVertex.h"
4 
5 #include <phool/PHObject.h> // for PHObject
6 
7 #include <iterator> // for reverse_iterator
8 #include <utility> // for pair, make_pair
9 
10 using namespace std;
11 
13  : _map()
14 {
15 }
16 
18  : _map()
19 {
20  for (ConstIter iter = vertexmap.begin();
21  iter != vertexmap.end();
22  ++iter)
23  {
24  SvtxVertex* vertex = dynamic_cast<SvtxVertex*> (iter->second->CloneMe());
25  _map.insert(make_pair(vertex->get_id(), vertex));
26  }
27 }
28 
30 {
31  Reset();
32  for (ConstIter iter = vertexmap.begin();
33  iter != vertexmap.end();
34  ++iter)
35  {
36  SvtxVertex* vertex = dynamic_cast<SvtxVertex*> (iter->second->CloneMe());
37  _map.insert(make_pair(vertex->get_id(), vertex));
38  }
39  return *this;
40 }
41 
43 {
44  Reset();
45 }
46 
48 {
49  for (Iter iter = _map.begin();
50  iter != _map.end();
51  ++iter)
52  {
53  SvtxVertex* vertex = iter->second;
54  delete vertex;
55  }
56  _map.clear();
57 }
58 
59 void SvtxVertexMap_v1::identify(ostream& os) const
60 {
61  os << "SvtxVertexMap_v1: size = " << _map.size() << endl;
62  return;
63 }
64 
65 const SvtxVertex* SvtxVertexMap_v1::get(unsigned int id) const
66 {
67  ConstIter iter = _map.find(id);
68  if (iter == _map.end()) return nullptr;
69  return iter->second;
70 }
71 
73 {
74  Iter iter = _map.find(id);
75  if (iter == _map.end()) return nullptr;
76  return iter->second;
77 }
78 
80 {
81  unsigned int index = 0;
82  if (!_map.empty()) index = _map.rbegin()->first + 1;
83  _map.insert(make_pair(index, vertex));
84  _map[index]->set_id(index);
85  return _map[index];
86 }
87 
89 {
90  return insert(dynamic_cast<SvtxVertex*> (vertex->CloneMe()));
91 }