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