Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SvtxTrackCaloClusterMap_v1.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SvtxTrackCaloClusterMap_v1.cc
2 
3 #include "SvtxTrack.h"
4 
5 #include <phool/PHObject.h> // for PHObject
6 
7 #include <iterator> // for reverse_iterator
8 #include <map> // for _Rb_tree_const_iterator, _Rb_tree_iterator
9 #include <ostream> // for operator<<, endl, ostream, basic_ostream, bas...
10 #include <utility> // for pair, make_pair
11 
12 using namespace std;
13 
15  : _map()
16 {
17 }
18 
20  : _map()
21 {
22  for (ConstIter iter = map.begin();
23  iter != map.end();
24  ++iter)
25  {
26  std::vector<RawCluster*> clus = iter->second;
27  _map.insert(make_pair(iter->first, clus));
28  }
29 }
30 
32 {
33  Reset();
34  for (ConstIter iter = map.begin();
35  iter != map.end();
36  ++iter)
37  {
38  std::vector<RawCluster*> clus = iter->second;
39  _map.insert(make_pair(iter->first, clus));
40  }
41  return *this;
42 }
43 
45 {
46  Reset();
47 }
48 
50 {
53  _map.clear();
54 }
55 
57 {
58  os << "SvtxTrackCaloClusterMap_v1: size = " << _map.size() << endl;
59  return;
60 }
61 
62 const std::vector<RawCluster*> SvtxTrackCaloClusterMap_v1::get(SvtxTrack* track) const
63 {
64  std::vector<RawCluster*> dummy;
65  ConstIter iter = _map.find(track);
66  if (iter == _map.end())
67  {
68  return dummy;
69  }
70  return iter->second;
71 }
72 
73 std::vector<RawCluster*> SvtxTrackCaloClusterMap_v1::get(SvtxTrack* track)
74 {
75  std::vector<RawCluster*> dummy;
76  Iter iter = _map.find(track);
77  if (iter == _map.end())
78  {
79  return dummy;
80  }
81  return iter->second;
82 }
83 
84 std::vector<RawCluster*> SvtxTrackCaloClusterMap_v1::insert(SvtxTrack* track, std::vector<RawCluster*> clusters)
85 {
86  auto iter = _map.find(track);
87  if (iter != _map.end())
88  {
89  iter->second = clusters;
90  }
91  else
92  {
93  _map.insert(std::make_pair(track, clusters));
94  }
95 
96  return _map[track];
97 }
98 
99 std::vector<RawCluster*> SvtxTrackCaloClusterMap_v1::insert(SvtxTrack* track, RawCluster* clus)
100 {
101  auto iter = _map.find(track);
102  if (iter != _map.end())
103  {
104  (iter->second).push_back(clus);
105  }
106  else
107  {
108  std::vector<RawCluster*> dummy;
109  dummy.push_back(clus);
110  _map.insert(std::make_pair(track, dummy));
111  }
112 
113  return _map[track];
114 }
115 
117 {
118  const auto iter = _map.find(track);
119  if (iter != _map.end())
120  {
121  _map.erase(iter);
122  return 1;
123  }
124  else
125  {
126  return 0;
127  }
128 }