20#include "BDSException.hh"
21#include "BDSMagnetGeometryType.hh"
22#include "BDSUtilities.hh"
33 new std::map<BDSMagnetGeometryType, std::string> ({
34 {BDSMagnetGeometryType::none,
"none"},
35 {BDSMagnetGeometryType::cylindrical,
"cylindrical"},
36 {BDSMagnetGeometryType::polescircular,
"polescircular"},
37 {BDSMagnetGeometryType::polessquare,
"polessquare"},
38 {BDSMagnetGeometryType::polesfacet,
"polesfacet"},
39 {BDSMagnetGeometryType::polesfacetcrop,
"polesfacetcrop"},
40 {BDSMagnetGeometryType::lhcleft,
"lhcleft"},
41 {BDSMagnetGeometryType::lhcright,
"lhcright"},
42 {BDSMagnetGeometryType::external,
"external"}
49 {
return BDSMagnetGeometryType::external;}
51 std::map<G4String, BDSMagnetGeometryType> types;
52 types[
"none"] = BDSMagnetGeometryType::none;
53 types[
"cylindrical"] = BDSMagnetGeometryType::cylindrical;
54 types[
"polescircular"] = BDSMagnetGeometryType::polescircular;
55 types[
"polessquare"] = BDSMagnetGeometryType::polessquare;
56 types[
"polesfacet"] = BDSMagnetGeometryType::polesfacet;
57 types[
"polesfacetcrop"] = BDSMagnetGeometryType::polesfacetcrop;
58 types[
"lhcleft"] = BDSMagnetGeometryType::lhcleft;
59 types[
"lhcright"] = BDSMagnetGeometryType::lhcright;
60 types[
"format:filepath"] = BDSMagnetGeometryType::external;
64 auto result = types.find(geometryType);
65 if (result == types.end())
67 G4String msg =
"\"" + geometryType +
"\" is not a valid geometry type\n";
68 msg +=
"Available magnet geometry types are:\n";
69 for (
const auto& it : types)
70 {msg +=
"\"" + it.first +
"\"\n";}
75 G4cout << __METHOD_NAME__ <<
" determined geometry type to be " << result->second << G4endl;
77 return result->second;
General exception with possible name of object and message.
static std::map< BDSTypeSafeEnum< magnetgeometrytypes_def, G4int >, std::string > * dictionary
BDSMagnetGeometryType DetermineMagnetGeometryType(G4String geometryType)
function to determine the enum type of the magnet geometry (case-insensitive)
G4bool StrContains(const G4String &str, const G4String &test)
Utility function to simplify lots of syntax changes for pedantic g4 changes.
G4String LowerCase(const G4String &str)
Utility function to simplify lots of syntax changes for pedantic g4 changes.