18#include "parameters.h"
34 setMap[
"userTypeName"] =
false;
35 setMap[
"userParameters"] =
false;
39 setMap[
"scalingFieldOuter"] =
false;
61 setMap[
"gradient"] =
false;
63 setMap[
"gradient"] =
false;
64 setMap[
"frequency"] =
false;
67 setMap[
"fieldModulator"] =
false;
91 setMap[
"beampipeThickness"] =
false;
96 setMap[
"apertureType"] =
false;
97 setMap[
"beampipeMaterial"] =
false;
98 setMap[
"vacuumMaterial"] =
false;
100 setMap[
"magnetGeometryType"] =
false;
101 setMap[
"horizontalWidth"] =
false;
102 setMap[
"yokeOnInside"] =
false;
104 setMap[
"vhRatio"] =
false;
105 setMap[
"coilWidthFraction"] =
false;
106 setMap[
"coilHeightFraction"] =
false;
110 setMap[
"xsizeOut"] =
false;
111 setMap[
"ysizeOut"] =
false;
112 setMap[
"xsizeLeft"] =
false;
113 setMap[
"xsizeRight"] =
false;
114 setMap[
"offsetX"] =
false;
115 setMap[
"offsetY"] =
false;
118 setMap[
"offsetX2"] =
false;
119 setMap[
"offsetY2"] =
false;
121 setMap[
"outerShape"] =
false;
124 setMap[
"twindow"] =
false;
126 setMap[
"windowScreenGap"] =
false;
127 setMap[
"screenXSize"] =
false;
128 setMap[
"screenYSize"] =
false;
129 setMap[
"layerThicknesses"] =
false;
130 setMap[
"layerMaterials"] =
false;
131 setMap[
"layerIsSampler"] =
false;
133 setMap[
"screenPSize"] =
false;
134 setMap[
"screenEndZ"] =
false;
135 setMap[
"poleStartZ"] =
false;
136 setMap[
"screenWidth"] =
false;
137 setMap[
"awakeMagnetOffsetX"] =
false;
138 setMap[
"scintmaterial"] =
false;
139 setMap[
"windowmaterial"] =
false;
140 setMap[
"mountmaterial"] =
false;
145 setMap[
"wavelength"] =
false;
146 setMap[
"gradient"] =
false;
153 setMap[
"axisAngle"] =
false;
155 setMap[
"numberWedges"] =
false;
156 setMap[
"wedgeLength"] =
false;
157 setMap[
"degraderHeight"] =
false;
158 setMap[
"materialThickness"] =
false;
159 setMap[
"degraderOffset"] =
false;
161 setMap[
"laserBeam"] =
false;
162 setMap[
"laserOffsetTheta"] =
false;
163 setMap[
"laserOffsetPhi"] =
false;
164 setMap[
"laserOffsetX"] =
false;
165 setMap[
"laserOffsetY"] =
false;
166 setMap[
"laserOffsetZ"] =
false;
168 setMap[
"wireDiameter"] =
false;
169 setMap[
"wireLength"] =
false;
170 setMap[
"wireOffsetX"] =
false;
171 setMap[
"wireOffsetY"] =
false;
172 setMap[
"wireOffsetZ"] =
false;
173 setMap[
"wireAngle"] =
false;
175 setMap[
"undulatorPeriod"] =
false;
176 setMap[
"undulatorGap"] =
false;
177 setMap[
"undulatorMagnetHeight"] =
false;
179 setMap[
"anodeLength"] =
false;
180 setMap[
"anodeRadius"] =
false;
181 setMap[
"anodeThickness"] =
false;
182 setMap[
"electrodeLength"] =
false;
183 setMap[
"electrodeRadius"] =
false;
184 setMap[
"electrodeThickness"] =
false;
187 setMap[
"biasMaterial"] =
false;
188 setMap[
"biasVacuum"] =
false;
189 setMap[
"biasMaterialLV"] =
false;
191 setMap[
"minimumKineticEnergy"] =
false;
193 setMap[
"samplerName"] =
false;
194 setMap[
"samplerType"] =
false;
195 setMap[
"samplerRadius"] =
false;
197 setMap[
"fieldOuter"] =
false;
198 setMap[
"fieldVacuum"] =
false;
199 setMap[
"fieldAll"] =
false;
201 setMap[
"geometryFile"] =
false;
202 setMap[
"stripOuterVolume"] =
false;
203 setMap[
"autoColour"] =
false;
204 setMap[
"elementLengthIsArcLength"] =
false;
205 setMap[
"material"] =
false;
206 setMap[
"namedVacuumVolumes"] =
false;
207 setMap[
"markAsCollimator"] =
false;
209 setMap[
"cavityModel"] =
false;
210 setMap[
"cavityFieldType"] =
false;
212 setMap[
"dicomDataPath"] =
false;
213 setMap[
"dicomDataFile"] =
false;
217 setMap[
"jawTiltLeft"] =
false;
218 setMap[
"jawTiltRight"] =
false;
220 setMap[
"tipMaterial"] =
false;
221 setMap[
"tipThickness"] =
false;
223 setMap[
"crystalLeft"] =
false;
224 setMap[
"crystalRight"] =
false;
225 setMap[
"crystalBoth"] =
false;
226 setMap[
"crystalAngleYAxisLeft"] =
false;
227 setMap[
"crystalAngleYAxisRight"] =
false;
229 setMap[
"coolingDefinition"] =
false;
248 if(i.second ==
false)
250 std::string
property = i.first;
254 catch(
const std::runtime_error&)
256 std::cerr <<
"Error: element> unknown property \"" <<
property
257 <<
"\" from element " << e.name << std::endl;
267 auto search1 = attribute_map_list_int.find(property);
268 if (search1 != attribute_map_list_int.end())
272 setMap.at(publishedName) =
true;
276 auto search2 = attribute_map_list_double.find(property);
277 if (search2 != attribute_map_list_double.end())
281 setMap.at(publishedName) =
true;
285 auto search3 = attribute_map_list_string.find(property);
286 if (search3 != attribute_map_list_string.end()) {
289 setMap.at(publishedName) =
true;
293 std::cerr <<
"Error: parser> unknown element option \"" <<
property <<
"\", or doesn't expect vector type" << std::endl;
297 {std::rethrow_exception(std::current_exception());}
Representation of arrays used in tokens.
void set_vector(Container< std::string, std::allocator< std::string > > &dst) const
Copy symbols into STL string containers.
void set(C *instance, const std::string &name, double value)
Parser namespace for GMAD language. Combination of Geant4 and MAD.
std::string getPublishedName(const std::string &name) const
returns 'official' member name for property
std::map< std::string, bool > setMap
Map that holds booleans for every member of element.
void inherit_properties(const Element &e)
void set_value_array(const std::string &property, Array *value, bool bExit=true)
Set method for lists.
void flush()
Reset the parameters to defaults and setMap.