19#include "BDSApertureType.hh"
21#include "BDSException.hh"
22#include "BDSUtilities.hh"
33 new std::map<BDSApertureType, std::string> ({
34 {BDSApertureType::circular,
"circular"},
35 {BDSApertureType::elliptical,
"elliptical"},
36 {BDSApertureType::lhc,
"lhc"},
37 {BDSApertureType::lhcdetailed,
"lhcdetailed"},
38 {BDSApertureType::rectangular,
"rectangular"},
39 {BDSApertureType::rectellipse,
"rectellipse"},
40 {BDSApertureType::racetrack,
"racetrack"},
41 {BDSApertureType::octagonal,
"octagonal"},
42 {BDSApertureType::circularvacuum,
"circularvacuum"},
43 {BDSApertureType::clicpcl,
"clicpcl"}
48 std::map<G4String, BDSApertureType> types;
49 types[
"circular"] = BDSApertureType::circular;
50 types[
"elliptical"] = BDSApertureType::elliptical;
51 types[
"rectangular"] = BDSApertureType::rectangular;
52 types[
"lhc"] = BDSApertureType::lhc;
53 types[
"lhcscreen"] = BDSApertureType::lhc;
54 types[
"lhcdetailed"] = BDSApertureType::lhcdetailed;
55 types[
"rectellipse"] = BDSApertureType::rectellipse;
56 types[
"racetrack"] = BDSApertureType::racetrack;
57 types[
"octagonal"] = BDSApertureType::octagonal;
58 types[
"circularvacuum"] = BDSApertureType::circularvacuum;
59 types[
"clicpcl"] = BDSApertureType::clicpcl;
63 auto result = types.find(apertureType);
64 if (result == types.end())
66 G4String msg =
"\"" + apertureType +
"\" is not a valid apertureType\n";
67 msg +=
"Available geometry types are:\n";
68 for (
const auto& it : types)
69 {msg +=
"\"" + it.first +
"\"\n";}
74 G4cout << __METHOD_NAME__ <<
"determined aperture type to be " << result->second << G4endl;
76 return result->second;
General exception with possible name of object and message.
static std::map< BDSTypeSafeEnum< aperturetypes_def, int >, std::string > * dictionary
BDSApertureType DetermineApertureType(G4String apertureType)
function that gives corresponding enum value for string (case-insensitive)
G4String LowerCase(const G4String &str)
Utility function to simplify lots of syntax changes for pedantic g4 changes.