diff --git a/geom/gdml/src/TGDMLParse.cxx b/geom/gdml/src/TGDMLParse.cxx index af35142d348507517522c249876ca9d048bf6420..39f5f57c365428d911c12ff93e5ac643dce99bc1 100644 --- a/geom/gdml/src/TGDMLParse.cxx +++ b/geom/gdml/src/TGDMLParse.cxx @@ -255,13 +255,8 @@ const char* TGDMLParse::ParseGDML(TXMLEngine* gdml, XMLNodePointer_t node) atom = strcmp(gdml->GetNodeName(childtmp),"atom")==0; gdml->ShiftToNext(childtmp); } - if (frac) { - int z = 0; - node = MatProcess(gdml, node, attr, z);} -// else if ((strcmp(gdml->GetNodeName(childtmp), "atom") == 0) || (strcmp(gdml->GetNodeName(childtmp), "D") == 0)){ - else if (atom) { - int z = 1; - node = MatProcess(gdml, node, attr, z);} + int z = (atom) ? 1 : 0; + node = MatProcess(gdml, node, attr, z); } else if ((strcmp(name, matestr)) == 0 && !gdml->HasAttr(node, "Z")) { int z = 0; @@ -1141,6 +1136,8 @@ XMLNodePointer_t TGDMLParse::VolProcess(TXMLEngine* gdml, XMLNodePointer_t node) const Double_t* parentrot = 0; int yesrefl = 0; TString reftemp = ""; + Bool_t auxInit=kTRUE; + TMap *auxmap; while (child != 0) { if ((strcmp(gdml->GetNodeName(child), "solidref")) == 0) { @@ -1617,8 +1614,28 @@ XMLNodePointer_t TGDMLParse::VolProcess(TXMLEngine* gdml, XMLNodePointer_t node) fvolmap[NameShort(reftemp)] = divvol; } //End of replicavol + else if (strcmp(gdml->GetNodeName(child), "auxiliary") == 0) { + if(auxInit) { + printf("Auxiliary values for volume %s\n",vol->GetName()); + auxInit = kFALSE; + auxmap = new TMap(); + vol->SetUserExtension(new TGeoRCExtension(auxmap)); + } + attr = gdml->GetFirstAttr(child); + while(attr) { + if(strcmp(gdml->GetAttrName(attr),"auxtype")) Fatal("VolProcess","Expecting auxtype, found %s", + gdml->GetAttrName(attr)); + const char *auxType = gdml->GetAttrValue(attr); + attr = gdml->GetNextAttr(attr); + if(strcmp(gdml->GetAttrName(attr),"auxvalue")) Fatal("VolProcess","Expecting auxvalue, found %s", + gdml->GetAttrName(attr)); + const char *auxValue = gdml->GetAttrValue(attr); - + printf("%s = %s\n",auxType, auxValue); + auxmap->Add(new TObjString(auxType),new TObjString(auxValue)); + attr = gdml->GetNextAttr(attr); + } + } child = gdml->GetNext(child); }