/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSMagnetGeometryType.cc

00001 #include "BDSMagnetGeometryType.hh"
00002 #include "BDSDebug.hh"
00003 #include "globals.hh"
00004 
00005 #include <map>
00006 
00007 BDSMagnetGeometryType BDS::DetermineMagnetGeometryType(G4String geometryType)
00008 {
00009   std::map<G4String, BDSMagnetGeometryType> types;
00010   types["none"]              = BDSMagnetGeometryType::none;
00011   types["cylindrical"]       = BDSMagnetGeometryType::cylindrical;
00012   types["polescircular"]     = BDSMagnetGeometryType::polescircular;
00013   types["polessquare"]       = BDSMagnetGeometryType::polessquare;
00014   types["polesfacet"]        = BDSMagnetGeometryType::polesfacet;
00015   types["polesfacetcrop"]    = BDSMagnetGeometryType::polesfacetcrop;
00016   types["lhcleft"]           = BDSMagnetGeometryType::lhcleft;
00017   types["lhcright"]          = BDSMagnetGeometryType::lhcright;
00018 
00019   geometryType.toLower();
00020   
00021   if (types.find(geometryType) == types.end())
00022     {
00023       // it's not a valid key
00024       G4cout << __METHOD_NAME__ << "\"" << geometryType << "\" is not a valid geometry type" << G4endl;
00025       G4cout << "Available geometry types are:" << G4endl;
00026       std::map<G4String, BDSMagnetGeometryType>::iterator it = types.begin();
00027       for (; it != types.end(); ++it)
00028         {G4cout << "\"" << (*it).first << "\"" << G4endl;}
00029       exit(1);
00030     }
00031 
00032   BDSMagnetGeometryType returnValue = types[geometryType];
00033 #ifdef BDSDEBUG
00034   G4cout << __METHOD_NAME__ << " determined geometry type to be " << returnValue.underlying() << G4endl;
00035 #endif
00036   return returnValue;
00037 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7