Back to home page

sPhenix code displayed by LXR

 
 

    


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 }