File indexing completed on 2025-12-17 09:21:43
0001 #include "PHG4TpcGeomContainer.h"
0002
0003 #include "PHG4TpcGeom.h"
0004
0005 PHG4TpcGeomContainer::~PHG4TpcGeomContainer()
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 PHG4TpcGeomContainer::identify(std::ostream &os) const
0016 {
0017 std::map<int, PHG4TpcGeom *>::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 PHG4TpcGeomContainer::AddLayerCellGeom(const int i, PHG4TpcGeom *mygeom)
0027 {
0028 if (layergeoms.contains(i))
0029 {
0030 std::cout << "layer " << i << " already added to PHG4TpcGeomContainer" << std::endl;
0031 return -1;
0032 }
0033 mygeom->set_layer(i);
0034 layergeoms[i] = mygeom;
0035 return 0;
0036 }
0037
0038 int PHG4TpcGeomContainer::AddLayerCellGeom(PHG4TpcGeom *mygeom)
0039 {
0040 int layer = mygeom->get_layer();
0041 if (layergeoms.contains(layer))
0042 {
0043 std::cout << "layer " << layer << " already added to PHG4TpcGeomContainer" << std::endl;
0044 return -1;
0045 }
0046 layergeoms[layer] = mygeom;
0047 return 0;
0048 }
0049
0050 PHG4TpcGeom *
0051 PHG4TpcGeomContainer::GetLayerCellGeom(const int i)
0052 {
0053 std::map<int, PHG4TpcGeom *>::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 PHG4TpcGeomContainer" << std::endl;
0059 return nullptr;
0060 }
0061
0062 PHG4TpcGeom *
0063 PHG4TpcGeomContainer::GetFirstLayerCellGeom()
0064 {
0065 if (layergeoms.empty())
0066 {
0067 return nullptr;
0068 }
0069 return layergeoms.begin()->second;
0070 }