Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:17:42

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