Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:06:01

0001 #ifndef PARSERS_DETAIL_DIMENSION_H
0002 #define PARSERS_DETAIL_DIMENSION_H
0003 
0004 //==========================================================================
0005 //  AIDA Detector description implementation 
0006 //--------------------------------------------------------------------------
0007 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0008 // All rights reserved.
0009 //
0010 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0011 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0012 //
0013 // Author     : M.Frank
0014 //
0015 //==========================================================================
0016 
0017 /** 
0018  *  Note: Do NEVER include this file directly!
0019  *
0020  *  Also NO header guards!
0021  *  Include XML/XMLDimension.h or JSON/Dimension.h !
0022  */
0023 
0024 
0025 /// Namespace for the AIDA detector description toolkit
0026 namespace dd4hep {
0027 
0028   /// Namespace for the AIDA detector description toolkit supporting JSON utilities
0029   namespace DD4HEP_DIMENSION_NS  {
0030 
0031     /// XML Handle_t to xml elements with predefined attribute access
0032     /**
0033      *  Helper class to access any field in a xml tag in a
0034      *  very easy way.
0035      *  - You may assign any xml handle to a dimension object
0036      *  - Any attribute of this xml element may then be accessed
0037      *    by its natural way. All possible attribute names are
0038      *    reflected by the Dimension object's member functions.
0039      *  - If an attribute is requested and not present, a exception
0040      *    is thrown.
0041      *  - Functions, which accept a default value do NOT throw
0042      *    an exception if the attribute is not present. These
0043      *    rather return the default value.
0044      *  - If a often used function is not present - the
0045      *    implementation thereof is simple.
0046      *
0047      *  Such helper classes may be defined locally by any user
0048      *  since XML element handles may easily be transferred.
0049      *  Run-time exceptions occur however, if non-exiting attributes
0050      *  are accessed.
0051      *
0052      *  \author  M.Frank
0053      *  \version 1.0
0054      *  \ingroup DD4HEP_XML
0055      */
0056     struct Dimension: public Element {
0057       /// Default constructor
0058       Dimension()
0059         : Element(Handle_t(0)) {
0060       }
0061       /// Constructor from Handle_t
0062       Dimension(Handle_t e)
0063         : Element(e) {
0064       }
0065       /// Constructor from Element
0066       Dimension(const Element& e)
0067         : Element(e) {
0068       }
0069 
0070       /// Access parameters: id
0071       int id() const;
0072       /// Access parameters: id, if not present returns default
0073       int id(int default_value) const;
0074 
0075       /// Access parameters: station
0076       int station() const;
0077 
0078       /// Access parameters: type
0079       int type() const;
0080       /// Access rotation constants: combineHits
0081       bool combineHits() const;
0082 
0083       /// Access rotation constants: angle
0084       double angle() const;
0085       /// Access rotation constants: alpha
0086       double alpha() const;
0087       /// Access rotation constants: alpha
0088       double alpha(double default_value) const;
0089       /// Access rotation constants: alpha1
0090       double alpha1() const;
0091       /// Access rotation constants: alpha1
0092       double alpha1(double default_value) const;
0093       /// Access rotation constants: alpha2
0094       double alpha2() const;
0095       /// Access rotation constants: alpha2
0096       double alpha2(double default_value) const;
0097       /// Access rotation constants: angle
0098       double beta() const;
0099       /// Access rotation constants: angle
0100       double beta(double default_value) const;
0101       /// Access rotation constants: angle
0102       double gamma() const;
0103       /// Access rotation constants: angle
0104       double gamma(double default_value) const;
0105       /// Access rotation constants: delta
0106       double delta() const;
0107       /// Access rotation constants: delta
0108       double delta(double default_value) const;
0109       /// Access rotation constants: epsilon
0110       double epsilon() const;
0111       /// Access rotation constants: epsilon
0112       double epsilon(double default_value) const;
0113       /// Access rotation constants: theta
0114       double theta() const;
0115       /// Access rotation constants: theta
0116       double theta(double default_value) const;
0117       /// Access rotation constants: deltatheta
0118       double deltatheta() const;
0119       /// Access rotation constants: deltatheta
0120       double deltatheta(double default_value) const;
0121       /// Access rotation constants: starttheta
0122       double starttheta() const;
0123       /// Access rotation constants: starttheta
0124       double starttheta(double default_value) const;
0125       /// Access rotation constants: endtheta
0126       double endtheta() const;
0127       /// Access rotation constants: endtheta
0128       double endtheta(double default_value) const;
0129       /// Access rotation constants: thetaBins
0130       int thetaBins() const;
0131 
0132       /// Access rotation constants: phi
0133       double phi() const;
0134       /// Access rotation constants: phi
0135       double phi(double default_value) const;
0136       /// Access rotation constants: phiBins
0137       int phiBins() const;
0138       /// Access rotation constants: phi0
0139       double phi0() const;
0140       /// Access parameters: phi0, if not present returns default
0141       double phi0(double default_value) const;
0142       /// Access rotation constants: phi0_offset
0143       double phi0_offset() const;
0144       /// Access parameters: phi0_offset, if not present returns default
0145       double phi0_offset(double default_value) const;
0146       /// Access rotation constants: phi1
0147       double phi1() const;
0148       /// Access parameters: phi1, if not present returns default
0149       double phi1(double default_value) const;
0150       /// Access rotation constants: phi2
0151       double phi2() const;
0152       /// Access parameters: phi2, if not present returns default
0153       double phi2(double default_value) const;
0154       /// Access rotation constants: psi
0155       double psi() const;
0156       /// Access rotation constants: psi
0157       double psi(double default_value) const;
0158 
0159       /// Access Tube parameters: zhalf
0160       double zhalf() const;
0161       /// Access Tube parameters: deltaphi
0162       double deltaphi() const;
0163       /// Access Tube parameters: deltaphi
0164       double deltaphi(double default_value) const;
0165       /// Access rotation constants: startphi
0166       double startphi() const;
0167       /// Access rotation constants: startphi
0168       double startphi(double default_value) const;
0169       /// Access rotation constants: endphi
0170       double endphi() const;
0171       /// Access rotation constants: endphi
0172       double endphi(double default_value) const;
0173       /// Access rotation constants: twist
0174       double twist() const;
0175       /// Access rotation constants: twist
0176       double twist(double default_value) const;
0177 
0178       /// Access parameters: a
0179       double a() const;
0180       /// Access parameters: a
0181       double a(double default_value) const;
0182       /// Access parameters: A
0183       double A() const;
0184       /// Access parameters: A
0185       double A(double default_value) const;
0186       /// Access parameters: b
0187       double b() const;
0188       /// Access parameters: b
0189       double b(double default_value) const;
0190       /// Access parameters: c
0191       double c() const;
0192       /// Access parameters: c
0193       double c(double default_value) const;
0194       /// Access rotation constants: dist
0195       double dist() const;
0196       /// Access rotation constants: dist
0197       double dist(double default_value) const;
0198       /// Access parameters: distance
0199       double distance() const;
0200       /// Access parameters: distance
0201       double distance(double default_value) const;
0202       /// Access parameters: fraction
0203       double fraction()  const;
0204       /// Access parameters: fraction
0205       double fraction(double default_value)  const;
0206       /// Access parameters: B
0207       double B() const;
0208       /// Access parameters: B
0209       double B(double default_value) const;
0210       /// Access parameters: g
0211       double g() const;
0212       /// Access parameters: g
0213       double g(double default_value) const;
0214       /// Access parameters: G
0215       double G() const;
0216       /// Access parameters: G
0217       double G(double default_value) const;
0218       /// Access parameters: I
0219       double I() const;
0220       /// Access parameters: I
0221       double I(double default_value) const;
0222 
0223       /// Access parameters: r
0224       double r() const;
0225       /// Access parameters: r, if not present returns default
0226       double r(double default_value) const;
0227       /// Access parameters: R
0228       double R() const;
0229       /// Access parameters: R
0230       double R(double default_value) const;
0231       /// Access parameters: dr
0232       double dr() const;
0233       /// Access parameters: dr, if not present returns default
0234       double dr(double default_value) const;
0235       /// Access parameters: r0
0236       double r0() const;
0237       /// Access parameters: r0
0238       double r0(double default_value) const;
0239       /// Access min/max parameters: rmin
0240       double rmin() const;
0241       /// Access min/max parameters: rmin
0242       double rmin(double default_val) const;
0243       /// Access min/max parameters: rmax
0244       double rmax() const;
0245       /// Access min/max parameters: rmax
0246       double rmax(double default_val) const;
0247       /// Access min/max parameters: rmin1
0248       double rmin1() const;
0249       /// Access min/max parameters: rmin1
0250       double rmin1(double default_val) const;
0251       /// Access min/max parameters: rmax1
0252       double rmax1() const;
0253       /// Access min/max parameters: rmax1
0254       double rmax1(double default_val) const;
0255       /// Access min/max parameters: rmin2
0256       double rmin2() const;
0257       /// Access min/max parameters: rmin2
0258       double rmin2(double default_val) const;
0259       /// Access min/max parameters: rmax2
0260       double rmax2() const;
0261       /// Access min/max parameters: rmax2
0262       double rmax2(double default_val) const;
0263       /// Access parameters: radius
0264       double radius() const;
0265       /// Access parameters: radius
0266       double radius(double default_val) const;
0267       /// Access attribute values: outer_radius
0268       double outer_radius() const;
0269       /// Access attribute values: outer_r
0270       double outer_r() const;
0271       /// Access attribute values: inner_radius
0272       double inner_radius() const;
0273       /// Access attribute values: inner_r
0274       double inner_r() const;
0275 
0276       /// Access parameters: v
0277       double v() const;
0278       /// Access parameters: v, if not present returns default
0279       double v(double default_val) const;
0280       /// Access parameters: V
0281       double V() const;
0282       /// Access parameters: V, if not present returns default
0283       double V(double default_val) const;
0284       /// Access parameters: dv
0285       double dv() const;
0286       /// Access parameters: dv, if not present returns default
0287       double dv(double default_val) const;
0288       /// Access parameters: v0
0289       double v0() const;
0290       /// Access parameters: v0, if not present returns default
0291       double v0(double default_val) const;
0292       /// Access parameters: v1
0293       double v1() const;
0294       /// Access parameters: v1, if not present returns default
0295       double v1(double default_val) const;
0296       /// Access parameters: v2
0297       double v2() const;
0298       /// Access parameters: v2, if not present returns default
0299       double v2(double default_val) const;
0300       /// Access parameters: v3
0301       double v3() const;
0302       /// Access parameters: v3, if not present returns default
0303       double v3(double default_val) const;
0304       /// Access parameters: v4
0305       double v4() const;
0306       /// Access parameters: v4, if not present returns default
0307       double v4(double default_val) const;
0308       /// Access parameters: vmin
0309       double vmin() const;
0310       /// Access parameters: vmin, if not present returns default
0311       double vmin(double default_val) const;
0312       /// Access parameters: vmax
0313       double vmax() const;
0314       /// Access parameters: vmax, if not present returns default
0315       double vmax(double default_val) const;
0316       /// Access parameters: v_offset
0317       double v_offset() const;
0318       /// Access parameters: v_offset, if not present returns default
0319       double v_offset(double default_val) const;
0320       /// Access parameters: dim_v
0321       double dim_v() const;
0322       /// Access parameters: dim_v, if not present returns default
0323       double dim_v(double default_val) const;
0324 
0325       /// Access parameters: x
0326       double x() const;
0327       /// Access parameters: x, if not present returns default
0328       double x(double default_val) const;
0329       /// Access parameters: X
0330       double X() const;
0331       /// Access parameters: X
0332       double X(double default_val) const;
0333       /// Access parameters: x0
0334       double x0() const;
0335       /// Access parameters: x0
0336       double x0(double default_val) const;
0337       /// Access parameters: x1
0338       double x1() const;
0339       /// Access parameters: x1
0340       double x1(double default_val) const;
0341       /// Access parameters: x2
0342       double x2() const;
0343       /// Access parameters: x2
0344       double x2(double default_val) const;
0345       /// Access parameters: x3
0346       double x3() const;
0347       /// Access parameters: x3
0348       double x3(double default_val) const;
0349       /// Access parameters: x4
0350       double x4() const;
0351       /// Access parameters: x4
0352       double x4(double default_val) const;
0353       /// Access parameters: dx
0354       double dx() const;
0355       /// Access parameters: dx, if not present returns default
0356       double dx(double default_value) const;
0357       /// Access min/max parameters: xmax
0358       double xmin() const;
0359       /// Access min/max parameters: xmax
0360       double xmin(double default_value) const;
0361       /// Access min/max parameters: xmax
0362       double xmax() const;
0363       /// Access min/max parameters: xmax
0364       double xmax(double default_value) const;
0365       /// Access min/max parameters: x_offset
0366       double x_offset() const;
0367       /// Access min/max parameters: x_offset
0368       double x_offset(double default_value) const;
0369       /// Access min/max parameters: dim_x
0370       double dim_x() const;
0371       /// Access min/max parameters: dim_x
0372       double dim_x(double default_value) const;
0373 
0374       /// Access parameters: y
0375       double y() const;
0376       /// Access parameters: y, if not present returns default
0377       double y(double default_val) const;
0378       /// Access parameters: Y
0379       double Y() const;
0380       /// Access parameters: Y
0381       double Y(double default_val) const;
0382       /// Access parameters: y0
0383       double y0() const;
0384       /// Access parameters: y0
0385       double y0(double default_value) const;
0386       /// Access parameters: y1
0387       double y1() const;
0388       /// Access parameters: y1
0389       double y1(double default_value) const;
0390       /// Access parameters: y2
0391       double y2() const;
0392       /// Access parameters: y2
0393       double y2(double default_value) const;
0394       /// Access parameters: dy
0395       double dy() const;
0396       /// Access parameters: dz, if not present returns default
0397       double dy(double default_value) const;
0398       /// Access min/max parameters: ymax
0399       double ymin() const;
0400       /// Access min/max parameters: ymax
0401       double ymin(double default_value) const;
0402       /// Access min/max parameters: ymax
0403       double ymax() const;
0404       /// Access min/max parameters: ymax
0405       double ymax(double default_value) const;
0406       /// Access min/max parameters: y_offset
0407       double y_offset() const;
0408       /// Access min/max parameters: y_offset
0409       double y_offset(double default_value) const;
0410       /// Access min/max parameters: dim_y
0411       double dim_y() const;
0412       /// Access min/max parameters: dim_y
0413       double dim_y(double default_value) const;
0414 
0415       /// Access parameters: z
0416       double z() const;
0417       /// Access parameters: z, if not present returns default
0418       double z(double default_val) const;
0419       /// Access parameters: Z
0420       double Z() const;
0421       /// Access parameters: Z
0422       double Z(double default_val) const;
0423       /// Access parameters: z0
0424       double z0() const;
0425       /// Access parameters: z0
0426       double z0(double default_val) const;
0427       /// Access parameters: z1
0428       double z1() const;
0429       /// Access parameters: z1
0430       double z1(double default_val) const;
0431       /// Access parameters: z2
0432       double z2() const;
0433       /// Access parameters: z2
0434       double z2(double default_val) const;
0435       /// Access parameters: dz
0436       double dz() const;
0437       /// Access parameters: dz, if not present returns default
0438       double dz(double default_value) const;
0439       /// Access pos/neg parameters: zpos
0440       double zpos() const;
0441       /// Access pos/neg parameters: zpos
0442       double zpos(double default_value) const;
0443       /// Access pos/neg parameters: zneg
0444       double zneg() const;
0445       /// Access pos/neg parameters: zneg
0446       double zneg(double default_value) const;
0447       /// Access min/max parameters: zmin
0448       double zmin() const;
0449       /// Access min/max parameters: zmin
0450       double zmin(double default_value) const;
0451       /// Access min/max parameters: zmax
0452       double zmax() const;
0453       /// Access min/max parameters: zmax
0454       double zmax(double default_value) const;
0455       /// Access attribute values: outer_z
0456       double outer_z() const;
0457       /// Access attribute values: inner_z
0458       double inner_z() const;
0459       /// Access attribute values: outer_stereo
0460       double outer_stereo() const;
0461       /// Access attribute values: inner_stereo
0462       double inner_stereo() const;
0463       /// Access min/max parameters: z_offset
0464       double z_offset() const;
0465       /// Access min/max parameters: z_offset
0466       double z_offset(double default_value) const;
0467       /// Access min/max parameters: dim_z
0468       double dim_z() const;
0469       /// Access min/max parameters: dim_z
0470       double dim_z(double default_value) const;
0471 
0472       /// Access attribute values: length
0473       double length() const;
0474       /// Access attribute values: level
0475       int    level() const;
0476       /// Access attribute values: level
0477       int    level(int default_value) const;
0478       /// Access attribute values: width
0479       double width() const;
0480       /// Access attribute values: height
0481       double height() const;
0482       /// Access attribute values: depth
0483       double depth() const;
0484       /// Access attribute values: thickness
0485       double thickness() const;
0486 
0487       /// Access attribute values: z_length
0488       double z_length() const;
0489       /// Access attribute values: gap
0490       double gap() const;
0491       /// Access attribute values: r_size
0492       double r_size() const;
0493       /// Access attribute values: phi_size_max
0494       double phi_size_max() const;
0495       /// Access attribute values: reflect
0496       bool reflect() const;
0497       /// Access attribute values: reflect
0498       bool reflect(bool default_value) const;
0499       /// Access attribute values: nocore
0500       bool nocore() const;
0501       /// Access attribute values: nocore
0502       bool nocore(bool default_value) const;
0503       /// Access attribute values: crossing_angle
0504       double crossing_angle() const;
0505       /// Access attribute values: repeat
0506       int repeat() const;
0507 
0508       /// Access attribute values: coefficient
0509       double coefficient() const;
0510       /// Access attribute values: coefficient
0511       double coefficient(double default_value) const;
0512 
0513       /// Access attribute values: scale
0514       double scale() const;
0515       /// Access attribute values: scale
0516       double scale(double default_value) const;
0517 
0518       /// Access attribute values: skew
0519       double skew() const;
0520       /// Access attribute values: skew
0521       double skew(double default_value) const;
0522 
0523       /// Access attribute values: outgoing_r
0524       double outgoing_r() const;
0525       /// Access attribute values: incoming_r
0526       double incoming_r() const;
0527       /// Access attribute values: offset
0528       double offset() const;
0529       /// Access attribute values: offset
0530       double offset(double default_value) const;
0531 
0532       /// Access attribute values: count
0533       int count() const;
0534       /// Access attribute values: item
0535       int item() const;
0536       /// Access attribute values: items
0537       int items() const;
0538       /// Access attribute values: number
0539       int number() const;
0540       /// Access attribute values: nmodules
0541       int nmodules() const;
0542       /// Access attribute values: nsegments
0543       int nsegments() const;
0544       /// Access attribute values: nModules
0545       int nModules() const;
0546       /// Access attribute values: RowID
0547       int RowID() const;
0548       /// Access attribute values: moduleHeight
0549       double moduleHeight() const;
0550       /// Access attribute values: moduleWidth
0551       double moduleWidth() const;
0552       /// Access attribute values: modulePitch
0553       double modulePitch() const;
0554       /// Access attribute values: modulePosX
0555       double modulePosX() const;
0556       /// Access attribute values: modulePosY
0557       double modulePosY() const;
0558 
0559       /// Access attribute values: nPads
0560       int nPads() const;
0561       /// Access attribute values: rowPitch
0562       double rowPitch() const;
0563       /// Access attribute values: padPitch
0564       double padPitch() const;
0565       /// Access attribute values: rowHeight
0566       double rowHeight() const;
0567       /// Access attribute values: padType
0568       std::string padType() const;
0569 
0570       /// Access attribute values: numsides
0571       int numsides() const;
0572       /// Access attribute values: nsides
0573       int nsides() const;
0574       /// Access attribute values: nsides_inner
0575       int nsides_inner() const;
0576       /// Access attribute values: nsides_outer
0577       int nsides_outer() const;
0578 
0579 
0580       /// Access attribute values: phi_tilt
0581       double phi_tilt() const;
0582       /// Access attribute values: nphi
0583       int    nphi() const;
0584       /// Access attribute values: replicate
0585       int    replicate() const;
0586       /// Access attribute values: rc
0587       double rc() const;
0588 
0589       /// Access attribute values: zstart
0590       double zstart() const;
0591       /// Access attribute values: nz
0592       int    nz() const;
0593       /// Access attribute values: key
0594       int    key() const;
0595       /// Access attribute values: key_min
0596       int    key_min() const;
0597       /// Access attribute values: key_max
0598       int    key_max() const;
0599       /// Access attribute values: key_val
0600       int    key_val() const;
0601       /// Access attribute values: key_value
0602       int    key_value() const;
0603 
0604       /// Access attribute values: start
0605       double start() const;
0606       /// Access attribute values: start
0607       double start(double default_value) const;
0608       /// Access attribute values: start_x
0609       double start_x() const;
0610       /// Access attribute values: start_x
0611       double start_x(double default_value) const;
0612       /// Access attribute values: start_y
0613       double start_y() const;
0614       /// Access attribute values: start_y
0615       double start_y(double default_value) const;
0616       /// Access attribute values: start_z
0617       double start_z() const;
0618       /// Access attribute values: start_z
0619       double start_z(double default_value) const;
0620 
0621       /// Access attribute values: step
0622       double step() const;
0623       /// Access attribute values: step
0624       double step(double default_value) const;
0625       /// Access attribute values: step_x
0626       double step_x() const;
0627       /// Access attribute values: step_x
0628       double step_x(double default_value) const;
0629       /// Access attribute values: step_y
0630       double step_y() const;
0631       /// Access attribute values: step_y
0632       double step_y(double default_value) const;
0633       /// Access attribute values: step_z
0634       double step_z() const;
0635       /// Access attribute values: step_z
0636       double step_z(double default_value) const;
0637 
0638       /// Access attribute values: end
0639       double end() const;
0640       /// Access attribute values: end
0641       double end(double default_value) const;
0642       /// Access attribute values: inner_field
0643       double inner_field() const;
0644       /// Access attribute values: outer_field
0645       double outer_field() const;
0646 
0647       /// Access attribute values: visible
0648       bool   visible() const;
0649       /// Access attribute values: show_daughters
0650       bool   show_daughters() const;
0651 
0652       /// Access min/max parameters: correction
0653       double correction() const;
0654       /// Access min/max parameters: correction
0655       double correction(double default_value) const;
0656       /// Access min/max parameters: cut
0657       double cut() const;
0658       /// Access min/max parameters: cut
0659       double cut(double default_value) const;
0660       /// Access min/max parameters: threshold
0661       double threshold() const;
0662       /// Access min/max parameters: threshold
0663       double threshold(double default_value) const;
0664       /// Access min/max parameters: eunit
0665       double eunit() const;
0666       /// Access min/max parameters: eunit
0667       double eunit(double default_value) const;
0668       /// Access min/max parameters: lunit
0669       double lunit() const;
0670       /// Access min/max parameters: lunit
0671       double lunit(double default_value) const;
0672 
0673       /// Access constants: temperature
0674       double temperature() const;
0675       /// Access constants: temperature
0676       double temperature(double default_value) const;
0677       /// Access constants: pressure
0678       double pressure() const;
0679       /// Access constants: pressure
0680       double pressure(double default_value) const;
0681       /// Access constants: density
0682       double density() const;
0683       /// Access constants: density
0684       double density(double default_value) const;
0685 
0686       /// Access child element with tag "dimensions" as Dimension object
0687       Dimension dimensions(bool throw_if_not_present = true) const;
0688       /// Access child element with tag "params" as Dimension object
0689       Dimension params(bool throw_if_not_present = true) const;
0690       /// Access child element with tag "parameters" as Dimension object
0691       Dimension parameters(bool throw_if_not_present = true) const;
0692       /// Access child element with tag "position" as Dimension object
0693       Dimension position(bool throw_if_not_present = true) const;
0694       /// Access child element with tag "rotation" as Dimension object
0695       Dimension rotation(bool throw_if_not_present = true) const;
0696       /// Access child element with tag "transformation" as Dimension object
0697       Dimension transformation(bool throw_if_not_present = true) const;
0698       /// Access child element with tag "transform" as Dimension object
0699       Dimension transform(bool throw_if_not_present = true) const;
0700       /// Access child element with tag "cone" as Dimension object
0701       Dimension cone(bool throw_if_not_present = true) const;
0702       /// Access child element with tag "sphere" as Dimension object
0703       Dimension sphere(bool throw_if_not_present = true) const;
0704       /// Access child element with tag "torus" as Dimension object
0705       Dimension torus(bool throw_if_not_present = true) const;
0706       /// Access child element with tag "trap" as Dimension object
0707       Dimension trap(bool throw_if_not_present = true) const;
0708       /// Access child element with tag "trapezoid" as Dimension object
0709       Dimension trapezoid(bool throw_if_not_present = true) const;
0710       /// Access child element with tag "trd" as Dimension object
0711       Dimension trd(bool throw_if_not_present = true) const;
0712       /// Access child element with tag "tubs" as Dimension object
0713       Dimension tubs(bool throw_if_not_present = true) const;
0714       /// Access child element with tag "staves" as Dimension object
0715       Dimension staves(bool throw_if_not_present = true) const;
0716       /// Access child element with tag "beampipe" as Dimension object
0717       Dimension beampipe(bool throw_if_not_present = true) const;
0718       /// Access child element with tag "envelope" as Dimension object
0719       Dimension envelope(bool throw_if_not_present = true) const;
0720       /// Access child element with tag "shape" as Dimension object
0721       Dimension shape(bool throw_if_not_present = true) const;
0722       /// Access child element with tag "solid" as Dimension object
0723       Dimension solid(bool throw_if_not_present = true) const;
0724 
0725       /// Access "name" attribute as STL string
0726       std::string nameStr() const;
0727       /// Access "name" attribute as STL string. Return default value if not present
0728       std::string nameStr(const std::string& default_value) const;
0729       /// Access "type" attribute as STL string
0730       std::string typeStr() const;
0731       /// Access "type" attribute as STL string. Return default value if not present
0732       std::string typeStr(const std::string& default_value) const;
0733       /// Access "value" attribute as STL string
0734       std::string valueStr() const;
0735       /// Access "value" attribute as STL string. Return default value if not present
0736       std::string valueStr(const std::string& default_value) const;
0737       /// Access "label" attribute as STL string
0738       std::string labelStr() const;
0739       /// Access "label" attribute as STL string. Return default value if not present
0740       std::string labelStr(const std::string& default_value) const;
0741       /// Access "symbol" attribute as STL string
0742       std::string symbolStr() const;
0743       /// Access "symbol" attribute as STL string. Return default value if not present
0744       std::string symbolStr(const std::string& default_value) const;
0745       /// Access "ref" attribute as a string
0746       std::string refStr() const;
0747       /// Access "module" attribute as STL string
0748       std::string moduleStr() const;
0749       /// Access "module" attribute as STL string. Return default value if not present
0750       std::string moduleStr(const std::string& default_value) const;
0751       /// Access "readout" attribute as STL string
0752       std::string readoutStr() const;
0753       /// Access "readout" attribute as STL string. Return default value if not present
0754       std::string readoutStr(const std::string& default_value) const;
0755       /// Access vis attribute as STL string. If not present empty return empty string
0756       std::string visStr() const;
0757       /// Access vis attribute as STL string. If not present empty return empty string
0758       std::string visStr(const std::string& default_value) const;
0759       /// Access region attribute as STL string. If not present empty return empty string
0760       std::string regionStr() const;
0761       /// Access region attribute as STL string. If not present empty return empty string
0762       std::string regionStr(const std::string& default_value) const;
0763       /// Access limits attribute as STL string. If not present empty return empty string
0764       std::string limitsStr() const;
0765       /// Access limits attribute as STL string. If not present empty return empty string
0766       std::string limitsStr(const std::string& default_value) const;
0767     };
0768 
0769   }       /* End namespace DD4HEP_DIMENSION_NS        */
0770 }         /* End namespace dd4hep                     */
0771 
0772 #endif