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