19 #ifndef GEOMTOOLS_GDML_WRITER_H 20 #define GEOMTOOLS_GDML_WRITER_H 1 41 class right_circular_conical_frustrum;
43 class elliptical_cylinder;
47 class right_polygonal_frustrum;
51 class tessellated_solid;
96 static std::string
to_html(
const std::string &,
97 bool using_html_symbols_ =
false);
100 static std::string
to_ascii(
const std::string &,
101 bool using_html_symbols_ =
true);
119 const std::ostringstream &
get_stream(
const std::string & section_)
const;
151 const std::string & quantity_type_,
152 const std::string & unit_str_,
159 const std::string & expr_value_);
162 double x_,
double y_,
double z_,
163 const std::string & unit_str_);
166 const std::string & x_str_,
167 const std::string & y_str_,
168 const std::string & z_str_,
169 const std::string & unit_str_);
173 const std::string & unit_str_);
176 const std::string & axis_,
178 const std::string & unit_str_);
183 const std::string & unit_str_);
185 void add_scale(
const std::string & name_,
186 double x_,
double y_,
double z_);
191 size_t atomic_number_,
192 size_t number_of_nucleons_,
196 size_t atomic_number_,
197 const std::string & formula_,
201 const std::map<std::string, double> & fractions_);
204 const std::string & ref_);
207 const std::string & ref1_,
double fraction1_,
208 const std::string & ref2_,
double fraction2_);
211 const std::string & ref1_,
double fraction1_,
212 const std::string & ref2_,
double fraction2_,
213 const std::string & ref3_,
double fraction3_);
216 const std::string & ref1_,
double fraction1_,
217 const std::string & ref2_,
double fraction2_,
218 const std::string & ref3_,
double fraction3_,
219 const std::string & ref4_,
double fraction4_);
222 const std::string & ref1_,
double fraction1_,
223 const std::string & ref2_,
double fraction2_,
224 const std::string & ref3_,
double fraction3_,
225 const std::string & ref4_,
double fraction4_,
226 const std::string & ref5_,
double fraction5_);
229 double atomic_number_,
232 const std::string & state_label_ =
"",
233 double temperature_ = std::numeric_limits<double>::quiet_NaN(),
234 double pressure_ = std::numeric_limits<double>::quiet_NaN()
238 const std::string & formula_,
240 const std::map<std::string, size_t> & composites_,
241 const std::string & state_label_ =
"",
242 double temperature_ = std::numeric_limits<double>::quiet_NaN(),
243 double pressure_ = std::numeric_limits<double>::quiet_NaN()
247 const std::string & formula_,
249 const std::map<std::string, double> & fractions_,
250 const std::string & state_label_ =
"",
251 double temperature_ = std::numeric_limits<double>::quiet_NaN(),
252 double pressure_ = std::numeric_limits<double>::quiet_NaN()
266 double x_,
double y_,
double z_,
267 const std::string & lunit_str_ =
"mm");
269 void add_box(
const std::string & name_,
271 const std::string & lunit_str_ =
"mm");
275 double rmin1_,
double rmax1_,
276 double rmin2_,
double rmax2_,
278 double startphi_,
double deltaphi_,
279 const std::string & lunit_str_ =
"mm",
280 const std::string & aunit_str_ =
"radian");
284 const std::string & lunit_str_ =
"mm",
285 const std::string & aunit_str_ =
"radian");
289 double rx_,
double ry,
double rz_,
290 double bottom_z_,
double top_z_,
291 const std::string & lunit_str_ =
"mm",
292 const std::string & aunit_str_ =
"radian");
296 const std::string & lunit_str_ =
"mm",
297 const std::string & aunit_str_ =
"radian");
301 double rx_,
double ry,
double z_,
302 const std::string & lunit_str_ =
"mm",
303 const std::string & aunit_str_ =
"radian");
307 const std::string & lunit_str_ =
"mm",
308 const std::string & aunit_str_ =
"radian");
313 const std::string & lunit_str_ =
"mm");
315 void add_orb(
const std::string & name_,
317 const std::string & lunit_str_ =
"mm",
318 const std::string & aunit_str_ =
"radian");
322 std::map<
double, std::pair<double, double> > zplanes_,
323 double start_phi_,
double delta_phi_,
324 const std::string & lunit_str_ =
"mm",
325 const std::string & aunit_str_ =
"radian");
329 const std::string & lunit_str_ =
"mm",
330 const std::string & aunit_str_ =
"radian");
335 std::map<double, double> rzpoints_,
336 double start_phi_,
double delta_phi_,
337 const std::string & lunit_str_ =
"mm",
338 const std::string & aunit_str_ =
"radian");
343 std::map<
double, std::pair<double, double> > zplanes_,
344 double start_phi_,
double delta_phi_,
345 const std::string & lunit_str_ =
"mm",
346 const std::string & aunit_str_ =
"radian");
350 const std::string & lunit_str_ =
"mm",
351 const std::string & aunit_str_ =
"radian");
356 std::map<double, double> rzpoints_,
357 double start_phi_,
double delta_phi_,
358 const std::string & lunit_str_ =
"mm",
359 const std::string & aunit_str_ =
"radian");
363 double rmin_,
double rmax,
364 double start_phi_,
double delta_phi_,
365 double start_theta_,
double delta_theta_,
366 const std::string & lunit_str_ =
"mm",
367 const std::string & aunit_str_ =
"radian");
371 const std::string & lunit_str_ =
"mm",
372 const std::string & aunit_str_ =
"radian");
376 double rmin_,
double rmax,
double z_,
377 double start_phi_,
double delta_phi_,
378 const std::string & lunit_str_ =
"mm",
379 const std::string & aunit_str_ =
"radian");
381 void add_tube(
const std::string & name_,
383 const std::string & lunit_str_ =
"mm",
384 const std::string & aunit_str_ =
"radian");
388 double rmin_,
double rmax,
389 double start_phi_,
double delta_phi_,
390 const std::string & lunit_str_ =
"mm",
391 const std::string & aunit_str_ =
"radian");
393 void add_torus(
const std::string & name_,
395 const std::string & lunit_str_ =
"mm",
396 const std::string & aunit_str_ =
"radian");
400 const std::string & lunit_str_ =
"mm",
401 const std::string & aunit_str_ =
"radian");
406 const std::string & lunit_str_ =
"mm");
409 void add_wall(
const std::string & name_,
411 const std::string & lunit_str_ =
"mm");
415 const std::string & boolean_type_,
416 const std::string & first_ref_,
417 const std::string & second_ref_,
418 const std::string & position_ref_,
419 const std::string & rotation_ref_);
422 const std::string & first_ref_,
423 const std::string & second_ref_,
424 const std::string & position_ref_,
425 const std::string & rotation_ref_);
428 const std::string & first_ref_,
429 const std::string & second_ref_,
430 const std::string & position_ref_,
431 const std::string & rotation_ref_);
434 const std::string & first_ref_,
435 const std::string & second_ref_,
436 const std::string & position_ref_,
437 const std::string & rotation_ref_);
450 physvol(
const std::string & volumeref_ =
"",
451 const std::string & positionref_ =
"",
452 const std::string & rotationref_ =
"",
453 const std::string & scaleref_ =
"");
472 const std::string & material_ref_,
473 const std::string & solid_ref_,
474 const std::map<std::string, std::string> & aux_);
477 const std::string & material_ref_,
478 const std::string & solid_ref_);
481 const std::string & material_ref_,
482 const std::string & solid_ref_,
483 const std::list<physvol> & phys_vols_,
484 const std::map<std::string, std::string> & aux_);
487 const std::string & material_ref_,
488 const std::string & solid_ref_,
489 const std::list<physvol> & phys_vols_);
492 const std::string & material_ref_,
493 const std::string & solid_ref_,
495 const std::string & lunit_str_,
496 const std::string & aunit_str_,
497 const std::map<std::string, std::string> & aux_);
500 const std::string & material_ref_,
501 const std::string & solid_ref_,
503 const std::string & lunit_str_ =
"mm",
504 const std::string & aunit_str_ =
"radian");
508 void add_setup(
const std::string & name_,
509 const std::string & world_ref_,
510 const std::string & version_ =
"1.0");
517 const std::string & xml_version_ =
"",
518 const std::string & xml_encoding_ =
"",
519 bool standalone_ =
false);
522 const std::string & schema_ =
"",
523 const std::string & xsi_ =
"<default>");
528 const std::string & section_);
530 const std::string & section_);
537 const std::string & version_ =
"",
538 const std::string & encoding_ =
"",
539 const std::string & schema_ =
"",
540 const std::string & xsi_ =
"<default>");
543 void save_file(
const std::string & filename_,
544 const std::string & version_ =
"",
545 const std::string & encoding_ =
"",
546 const std::string & schema_ =
"",
547 const std::string & xsi_ =
"<default>");
551 void dump(std::ostream &)
const;
562 const std::ostringstream &
_get_stream(
const std::string & section_)
const;
565 std::ostringstream &
_get_stream(
const std::string & section_);
572 const std::ostringstream * _external_materials_stream_;
573 bool _using_html_symbols_;
580 #endif // GEOMTOOLS_GDML_WRITER_H
state_type
State of the material.
Definition: material.h:122
Utilities for logging information.