File indexing completed on 2025-08-06 08:18:56
0001 #include "PHG4CylinderCellGeomContainer.h"
0002
0003 #include "PHG4CylinderCellGeom.h"
0004
0005 using namespace std;
0006
0007 PHG4CylinderCellGeomContainer::~PHG4CylinderCellGeomContainer()
0008 {
0009 while (layergeoms.begin() != layergeoms.end())
0010 {
0011 delete layergeoms.begin()->second;
0012 layergeoms.erase(layergeoms.begin());
0013 }
0014 return;
0015 }
0016
0017 void PHG4CylinderCellGeomContainer::identify(std::ostream &os) const
0018 {
0019 map<int, PHG4CylinderCellGeom *>::const_iterator iter;
0020 for (iter = layergeoms.begin(); iter != layergeoms.end(); ++iter)
0021 {
0022 cout << "layer " << iter->first << endl;
0023 (iter->second)->identify(os);
0024 }
0025 return;
0026 }
0027
0028 int PHG4CylinderCellGeomContainer::AddLayerCellGeom(const int i, PHG4CylinderCellGeom *mygeom)
0029 {
0030 if (layergeoms.find(i) != layergeoms.end())
0031 {
0032 cout << "layer " << i << " already added to PHCylinderCellGeomContainer" << endl;
0033 return -1;
0034 }
0035 mygeom->set_layer(i);
0036 layergeoms[i] = mygeom;
0037 return 0;
0038 }
0039
0040 int PHG4CylinderCellGeomContainer::AddLayerCellGeom(PHG4CylinderCellGeom *mygeom)
0041 {
0042 int layer = mygeom->get_layer();
0043 if (layergeoms.find(layer) != layergeoms.end())
0044 {
0045 cout << "layer " << layer << " already added to PHCylinderCellGeomContainer" << endl;
0046 return -1;
0047 }
0048 layergeoms[layer] = mygeom;
0049 return 0;
0050 }
0051
0052 PHG4CylinderCellGeom *
0053 PHG4CylinderCellGeomContainer::GetLayerCellGeom(const int i)
0054 {
0055 map<int, PHG4CylinderCellGeom *>::const_iterator iter = layergeoms.find(i);
0056 if (iter != layergeoms.end())
0057 {
0058 return iter->second;
0059 }
0060 cout << "Could not locate layer " << i << " in PHG4CylinderCellGeomContainer" << endl;
0061 return nullptr;
0062 }
0063
0064 PHG4CylinderCellGeom *
0065 PHG4CylinderCellGeomContainer::GetFirstLayerCellGeom()
0066 {
0067 if (layergeoms.empty())
0068 {
0069 return nullptr;
0070 }
0071 return layergeoms.begin()->second;
0072 }