57    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
    58    XMLSize_t attributeCount = attributes->getLength();
    60    for (XMLSize_t attribute_index=0;
    61         attribute_index<attributeCount; attribute_index++)
    63       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
    65       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
    68       const xercesc::DOMAttr* 
const attribute
    69             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
    72         G4Exception(
"G4GDMLReadParamvol::Box_dimensionsRead()",
    81       G4Exception(
"G4GDMLReadParamvol::Box_dimensionsRead()", 
"InvalidRead",
   100    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   101    XMLSize_t attributeCount = attributes->getLength();
   103    for (XMLSize_t attribute_index=0;
   104         attribute_index<attributeCount; attribute_index++)
   106       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   108       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   111       const xercesc::DOMAttr* 
const attribute
   112             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   115         G4Exception(
"G4GDMLReadParamvol::Trd_dimensionsRead()",
   124       G4Exception(
"G4GDMLReadParamvol::Trd_dimensionsRead()", 
"InvalidRead",
   148    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   149    XMLSize_t attributeCount = attributes->getLength();
   151    for (XMLSize_t attribute_index=0;
   152         attribute_index<attributeCount; attribute_index++)
   154       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   156       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   159       const xercesc::DOMAttr* 
const attribute
   160             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   163         G4Exception(
"G4GDMLReadParamvol::Trap_dimensionsRead()",
   170       if (attName==
"lunit")
   173         G4Exception(
"G4GDMLReadParamvol::Trap_dimensionsRead()", 
"InvalidRead",
   176       if (attName==
"aunit")
   179         G4Exception(
"G4GDMLReadParamvol::Trap_dimensionsRead()", 
"InvalidRead",
   184       if (attName==
"theta")
   194       if (attName==
"alpha1")
   202       if (attName==
"alpha2")
   226    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   227    XMLSize_t attributeCount = attributes->getLength();
   229    for (XMLSize_t attribute_index=0;
   230         attribute_index<attributeCount; attribute_index++)
   232       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   234       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   237       const xercesc::DOMAttr* 
const attribute
   238             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   241         G4Exception(
"G4GDMLReadParamvol::Tube_dimensionsRead()",
   248       if (attName==
"lunit")
   251         G4Exception(
"G4GDMLReadParamvol::Tube_dimensionsRead()", 
"InvalidRead",
   254       if (attName==
"aunit")
   257         G4Exception(
"G4GDMLReadParamvol::Tube_dimensionsRead()", 
"InvalidRead",
   266       if (attName==
"StartPhi")
   268       if (attName==
"DeltaPhi")
   286    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   287    XMLSize_t attributeCount = attributes->getLength();
   289    for (XMLSize_t attribute_index=0;
   290         attribute_index<attributeCount; attribute_index++)
   292       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   294       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   297       const xercesc::DOMAttr* 
const attribute
   298             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   301         G4Exception(
"G4GDMLReadParamvol::Cone_dimensionsRead()",
   308       if (attName==
"lunit")
   311         G4Exception(
"G4GDMLReadParamvol::Cone_dimensionsRead()", 
"InvalidRead",
   314       if (attName==
"aunit")
   317         G4Exception(
"G4GDMLReadParamvol::Cone_dimensions()", 
"InvalidRead",
   320       if (attName==
"rmin1")
   322       if (attName==
"rmax1")
   324       if (attName==
"rmin2")
   326       if (attName==
"rmax2")
   330       if (attName==
"startphi")
   332       if (attName==
"deltaphi")
   352    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   353    XMLSize_t attributeCount = attributes->getLength();
   355    for (XMLSize_t attribute_index=0;
   356         attribute_index<attributeCount; attribute_index++)
   358       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   360       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   363       const xercesc::DOMAttr* 
const attribute
   364             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   367         G4Exception(
"G4GDMLReadParamvol::Sphere_dimensionsRead()",
   374       if (attName==
"lunit")
   377         G4Exception(
"G4GDMLReadParamvol::Sphere_dimensionsRead()", 
"InvalidRead",
   380       if (attName==
"aunit")
   383         G4Exception(
"G4GDMLReadParamvol::Sphere_dimensionsRead()", 
"InvalidRead",
   390       if (attName==
"startphi")
   392       if (attName==
"deltaphi")
   394       if (attName==
"starttheta")
   396       if (attName==
"deltatheta")
   414    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   415    XMLSize_t attributeCount = attributes->getLength();
   417    for (XMLSize_t attribute_index=0;
   418         attribute_index<attributeCount; attribute_index++)
   420       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   422       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   425       const xercesc::DOMAttr* 
const attribute
   426             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   429         G4Exception(
"G4GDMLReadParamvol::Orb_dimensionsRead()",
   438     G4Exception(
"G4GDMLReadParamvol::Orb_dimensionsRead()", 
"InvalidRead",
   454    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   455    XMLSize_t attributeCount = attributes->getLength();
   457    for (XMLSize_t attribute_index=0;
   458         attribute_index<attributeCount; attribute_index++)
   460       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   462       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   465       const xercesc::DOMAttr* 
const attribute
   466             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   469         G4Exception(
"G4GDMLReadParamvol::Torus_dimensionsRead()",
   476       if (attName==
"lunit")
   479         G4Exception(
"G4GDMLReadParamvol::Torus_dimensionsRead()", 
"InvalidRead",
   482       if (attName==
"aunit")
   485         G4Exception(
"G4GDMLReadParamvol::Torus_dimensionsRead()", 
"InvalidRead",
   494       if (attName==
"startphi")
   496       if (attName==
"deltaphi")
   512    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   513    XMLSize_t attributeCount = attributes->getLength();
   515    for (XMLSize_t attribute_index=0;
   516         attribute_index<attributeCount; attribute_index++)
   518       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   520       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   523       const xercesc::DOMAttr* 
const attribute
   524             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   527         G4Exception(
"G4GDMLReadParamvol::Ellipsoid_dimensionsRead()",
   534       if (attName==
"lunit")
   537         G4Exception(
"G4GDMLReadParamvol::Ellipsoid_dimensionsRead()", 
"InvalidRead",
   546       if (attName==
"zcut1")
   548       if (attName==
"zcut2")
   566    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   567    XMLSize_t attributeCount = attributes->getLength();
   569    for (XMLSize_t attribute_index=0;
   570         attribute_index<attributeCount; attribute_index++)
   572       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   574       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   577       const xercesc::DOMAttr* 
const attribute
   578             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   581         G4Exception(
"G4GDMLReadParamvol::Para_dimensionsRead()",
   588       if (attName==
"lunit")
   591         G4Exception(
"G4GDMLReadParamvol::Para_dimensionsRead()", 
"InvalidRead",
   594       if (attName==
"aunit")
   597         G4Exception(
"G4GDMLReadParamvol::Para_dimensionsRead()", 
"InvalidRead",
   606       if (attName==
"alpha")
   608       if (attName==
"theta")
   629    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   630    XMLSize_t attributeCount = attributes->getLength();
   632    for (XMLSize_t attribute_index=0;
   633         attribute_index<attributeCount; attribute_index++)
   635       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   637       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   640       const xercesc::DOMAttr* 
const attribute
   641             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   644         G4Exception(
"G4GDMLReadParamvol::Hype_dimensionsRead()",
   651       if (attName==
"lunit")
   654         G4Exception(
"G4GDMLReadParamvol::Hype_dimensionsRead()", 
"InvalidRead",
   657       if (attName==
"aunit")
   660         G4Exception(
"G4GDMLReadParamvol::Hype_dimensionsRead()", 
"InvalidRead",
   669       if (attName==
"outst")
   689    std::vector<zplaneType> zplaneList;
   691    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   692    XMLSize_t attributeCount = attributes->getLength();
   694    for (XMLSize_t attribute_index=0;
   695         attribute_index<attributeCount; attribute_index++)
   697       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   699       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   702       const xercesc::DOMAttr* 
const attribute
   703             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   706         G4Exception(
"G4GDMLReadParamvol::Polycone_dimensionsRead()",
   713       if (attName==
"lunit")
   716         G4Exception(
"G4GDMLReadParamvol::Polycone_dimensionsRead()", 
"InvalidRead",
   719       if (attName==
"aunit")
   722         G4Exception(
"G4GDMLReadParamvol::Polycone_dimensionsRead()", 
"InvalidRead",
   725       if (attName==
"startPhi")
   727       if (attName==
"openPhi")
   729       if (attName==
"numRZ")
   736    for (xercesc::DOMNode* iter = element->getFirstChild();
   737         iter != 0; iter = iter->getNextSibling())
   739       if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE) { 
continue; }
   741       const xercesc::DOMElement* 
const child
   742             = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   745          G4Exception(
"G4GDMLReadParamVol::Polycone_dimensionsRead()",
   751       if (tag==
"zplane") { zplaneList.push_back(
ZplaneRead(child)); }
   754    G4int numZPlanes = zplaneList.size();
   755    for (
G4int i=0; i<numZPlanes; i++)
   757       parameter.
dimension[3+i*3]  = zplaneList[i].rmin*lunit;
   758       parameter.
dimension[4+i*3] = zplaneList[i].rmax*lunit;
   759       parameter.
dimension[5+i*3] = zplaneList[i].z*lunit;
   770    std::vector<zplaneType> zplaneList;
   772    const xercesc::DOMNamedNodeMap* 
const attributes = element->getAttributes();
   773    XMLSize_t attributeCount = attributes->getLength();
   775    for (XMLSize_t attribute_index=0;
   776         attribute_index<attributeCount; attribute_index++)
   778       xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   780       if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   783       const xercesc::DOMAttr* 
const attribute
   784             = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   787         G4Exception(
"G4GDMLReadParamvol::Polycone_dimensionsRead()",
   794       if (attName==
"lunit")
   797         G4Exception(
"G4GDMLReadParamvol::Polyhedra_dimensionsRead()", 
"InvalidRead",
   800       if (attName==
"aunit")
   803         G4Exception(
"G4GDMLReadParamvol::Polyhedra_dimensionsRead()", 
"InvalidRead",
   806       if (attName==
"startPhi")
   808       if (attName==
"openPhi")
   810       if (attName==
"numRZ")
   812       if (attName==
"numSide")
   819    for (xercesc::DOMNode* iter = element->getFirstChild();
   820         iter != 0; iter = iter->getNextSibling())
   822       if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE) { 
continue; }
   824       const xercesc::DOMElement* 
const child
   825             = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   834       if (tag==
"zplane") { zplaneList.push_back(
ZplaneRead(child)); }
   837    G4int numZPlanes = zplaneList.size();
   838    for (
G4int i=0; i<numZPlanes; i++)
   840       parameter.
dimension[4+i*3]  = zplaneList[i].rmin*lunit;
   841       parameter.
dimension[5+i*3] = zplaneList[i].rmax*lunit;
   842       parameter.
dimension[6+i*3] = zplaneList[i].z*lunit;
   854    for (xercesc::DOMNode* iter = element->getFirstChild();
   855         iter != 0; iter = iter->getNextSibling())
   857       if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE)  { 
continue; }
   859       const xercesc::DOMElement* 
const child
   860             = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   863         G4Exception(
"G4GDMLReadParamvol::ParametersRead()",
   868       if (tag==
"rotation") { 
VectorRead(child,rotation); } 
else   869       if (tag==
"position") { 
VectorRead(child,position); } 
else   870       if (tag==
"positionref")
   872       if (tag==
"rotationref")
   889         G4String error_msg = 
"Unknown tag in parameters: " + tag;
   890         G4Exception(
"G4GDMLReadParamvol::ParametersRead()", 
"ReadError",
   909    for (xercesc::DOMNode* iter = element->getFirstChild();
   910         iter != 0; iter = iter->getNextSibling())
   912      if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE)  { 
continue; }
   914      const xercesc::DOMElement* 
const child
   915            = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   918        G4Exception(
"G4GDMLReadParamvol::ParameterisedRead()",
   924      if (tag==
"parameters")
   926         const xercesc::DOMNamedNodeMap* 
const attributes
   927               = element->getAttributes();
   928         XMLSize_t attributeCount = attributes->getLength();
   929         for (XMLSize_t attribute_index=0;
   930              attribute_index<attributeCount; attribute_index++)
   932           xercesc::DOMNode* attribute_node = attributes->item(attribute_index);
   934           if (attribute_node->getNodeType() != xercesc::DOMNode::ATTRIBUTE_NODE)
   937           const xercesc::DOMAttr* 
const attribute
   938                 = 
dynamic_cast<xercesc::DOMAttr*
>(attribute_node);   
   941             G4Exception(
"G4GDMLReadParamvol::ParameterisedRead()",
   962    for (xercesc::DOMNode* iter = element->getFirstChild();
   963         iter != 0; iter = iter->getNextSibling())
   965       if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE)  { 
continue; }
   967       const xercesc::DOMElement* 
const child
   968             = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   971         G4Exception(
"G4GDMLReadParamvol::Paramvol_contentRead()", 
"InvalidRead",
   987    for (xercesc::DOMNode* iter = element->getFirstChild();
   988         iter != 0; iter = iter->getNextSibling())
   990       if (iter->getNodeType() != xercesc::DOMNode::ELEMENT_NODE)  { 
continue; }
   992       const xercesc::DOMElement* 
const child
   993             = 
dynamic_cast<xercesc::DOMElement*
>(iter);
   996         G4Exception(
"G4GDMLReadParamvol::ParamvolRead()", 
"InvalidRead",
  1002       if (tag==
"volumeref") { volumeref = 
RefRead(child); }
  1014                  "No parameters are defined in parameterised volume!");
 zplaneType ZplaneRead(const xercesc::DOMElement *const)
 
void Torus_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Trap_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Orb_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
virtual void ParamvolRead(const xercesc::DOMElement *const, G4LogicalVolume *)
 
HepRotation & rotateX(double delta)
 
CLHEP::HepRotation G4RotationMatrix
 
void AddParameter(const PARAMETER &)
 
virtual ~G4GDMLReadParamvol()
 
virtual void Paramvol_contentRead(const xercesc::DOMElement *const)
 
G4String Transcode(const XMLCh *const)
 
HepRotation & rotateY(double delta)
 
void Ellipsoid_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Trd_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Polycone_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Polyhedra_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
G4String RefRead(const xercesc::DOMElement *const)
 
void LoopRead(const xercesc::DOMElement *const, void(G4GDMLRead::*)(const xercesc::DOMElement *const))
 
static G4double GetValueOf(const G4String &)
 
void Box_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Sphere_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
const G4String & GetName() const
 
G4GDMLParameterisation * parameterisation
 
void Tube_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Cone_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void Hype_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
static G4String GetCategory(const G4String &)
 
virtual void Paramvol_contentRead(const xercesc::DOMElement *const)=0
 
G4String GenerateName(const G4String &name, G4bool strip=false)
 
void Para_dimensionsRead(const xercesc::DOMElement *const, G4GDMLParameterisation::PARAMETER &)
 
void ParameterisedRead(const xercesc::DOMElement *const)
 
void ParametersRead(const xercesc::DOMElement *const)
 
void VectorRead(const xercesc::DOMElement *const, G4ThreeVector &)
 
virtual G4LogicalVolume * GetVolume(const G4String &) const =0
 
HepRotation & rotateZ(double delta)
 
G4ThreeVector GetRotation(const G4String &)
 
G4double Evaluate(const G4String &)
 
G4ThreeVector GetPosition(const G4String &)