18#include "BDSApertureType.hh"
20#include "BDSException.hh"
21#include "BDSUtilities.hh"
32 new std::map<BDSApertureType, std::string> ({
33 {BDSApertureType::circular,
"circular"},
34 {BDSApertureType::elliptical,
"elliptical"},
35 {BDSApertureType::lhc,
"lhc"},
36 {BDSApertureType::lhcdetailed,
"lhcdetailed"},
37 {BDSApertureType::rectangular,
"rectangular"},
38 {BDSApertureType::rectellipse,
"rectellipse"},
39 {BDSApertureType::racetrack,
"racetrack"},
40 {BDSApertureType::octagonal,
"octagonal"},
41 {BDSApertureType::circularvacuum,
"circularvacuum"},
42 {BDSApertureType::clicpcl,
"clicpcl"}
47 std::map<G4String, BDSApertureType> types;
48 types[
"circular"] = BDSApertureType::circular;
49 types[
"elliptical"] = BDSApertureType::elliptical;
50 types[
"rectangular"] = BDSApertureType::rectangular;
51 types[
"lhc"] = BDSApertureType::lhc;
52 types[
"lhcscreen"] = BDSApertureType::lhc;
53 types[
"lhcdetailed"] = BDSApertureType::lhcdetailed;
54 types[
"rectellipse"] = BDSApertureType::rectellipse;
55 types[
"racetrack"] = BDSApertureType::racetrack;
56 types[
"octagonal"] = BDSApertureType::octagonal;
57 types[
"circularvacuum"] = BDSApertureType::circularvacuum;
58 types[
"clicpcl"] = BDSApertureType::clicpcl;
62 auto result = types.find(apertureType);
63 if (result == types.end())
65 G4String msg =
"\"" + apertureType +
"\" is not a valid apertureType\n";
66 msg +=
"Available geometry types are:\n";
67 for (
const auto& it : types)
68 {msg +=
"\"" + it.first +
"\"\n";}
73 G4cout << __METHOD_NAME__ <<
"determined aperture type to be " << result->second << G4endl;
75 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.