62 std::map<G4String, BDSBunchType> types;
64 types[
"reference"] = BDSBunchType::reference;
65 types[
"gaussmatrix"] = BDSBunchType::gaussmatrix;
66 types[
"gauss-matrix"] = BDSBunchType::gaussmatrix;
67 types[
"gauss"] = BDSBunchType::gauss;
68 types[
"gausstwiss"] = BDSBunchType::gausstwiss;
69 types[
"gauss-twiss"] = BDSBunchType::gausstwiss;
70 types[
"gaussmatrixslowext"] = BDSBunchType::gaussmatrixslowext;
71 types[
"gauss-matrix-slow-ext"] = BDSBunchType::gaussmatrixslowext;
72 types[
"gaussslowext"] = BDSBunchType::gaussslowext;
73 types[
"gauss-slow-ext"] = BDSBunchType::gaussslowext;
74 types[
"gausstwissslowext"] = BDSBunchType::gausstwissslowext;
75 types[
"gauss-twiss-slow-ext"] = BDSBunchType::gausstwissslowext;
76 types[
"circle"] = BDSBunchType::circle;
77 types[
"square"] = BDSBunchType::square;
78 types[
"ring"] = BDSBunchType::ring;
79 types[
"eshell"] = BDSBunchType::eshell;
80 types[
"halo"] = BDSBunchType::halo;
81 types[
"composite"] = BDSBunchType::composite;
82 types[
"userfile"] = BDSBunchType::userfile;
83 types[
"user-file"] = BDSBunchType::userfile;
84 types[
"ptc"] = BDSBunchType::ptc;
85 types[
"sixtrack"] = BDSBunchType::sixtrack;
86 types[
"eventgeneratorfile"] = BDSBunchType::eventgeneratorfile;
87 types[
"event-generator-file"] = BDSBunchType::eventgeneratorfile;
88 types[
"sphere"] = BDSBunchType::sphere;
89 types[
"compositespacedirectionenergy"] = BDSBunchType::compositesde;
90 types[
"composite-space-direction-energy"] = BDSBunchType::compositesde;
91 types[
"compositesde"] = BDSBunchType::compositesde;
92 types[
"box"] = BDSBunchType::box;
93 types[
"halosigma"] = BDSBunchType::halosigma;
94 types[
"halo-sigma"] = BDSBunchType::halosigma;
95 types[
"bdsimsampler"] = BDSBunchType::bdsimsampler;
96 types[
"bdsim-sampler"] = BDSBunchType::bdsimsampler;
97 types[
"hdf5"] = BDSBunchType::hdf5;
98 types[
"slowext"] = BDSBunchType::slowext;
99 types[
"slow-ext"] = BDSBunchType::slowext;
103 auto result = types.find(distrType);
104 if (result == types.end())
106 G4String message =
"\"" + distrType +
"\" is not a valid distribution\n";
107 message +=
"Available distributions are:\n";
108 for (
const auto& it : types)
109 {message += it.first +
"\n";}
114 G4cout << __METHOD_NAME__ <<
"determined distribution to be " << result->second << G4endl;
116 return result->second;