3 #include "G4LogicalVolume.hh"
4 #include "G4ProductionCuts.hh"
5 #include "G4GDMLParser.hh"
6 #include "G4VRangeToEnergyConverter.hh"
7 #include "G4RToEConvForGamma.hh"
8 #include "G4RToEConvForElectron.hh"
9 #include "G4RToEConvForPositron.hh"
10 #include "G4RToEConvForProton.hh"
11 #include "G4SystemOfUnits.hh"
16 converter[1] =
new G4RToEConvForElectron();
17 converter[2] =
new G4RToEConvForPositron();
26 const G4LogicalVolume*
const glv)
28 xercesc::DOMElement* auxiliaryElement = 0;
30 const char* cutnames[4] = {
"pcutg",
"pcutem",
"pcutep",
"pcutp"};
32 auxiliaryElement = NewElement(
"auxiliary");
33 auxiliaryElement->setAttributeNode(NewAttribute(
"auxtype",
"G4Region"));
34 auxiliaryElement->setAttributeNode(NewAttribute(
"auxvalue",glv->GetRegion()->GetName()));
35 volumeElement->appendChild(auxiliaryElement);
37 auxiliaryElement = NewElement(
"auxiliary");
38 auxiliaryElement->setAttributeNode(NewAttribute(
"auxtype",
"pcutunit"));
39 auxiliaryElement->setAttributeNode(NewAttribute(
"auxvalue",
"GeV"));
40 volumeElement->appendChild(auxiliaryElement);
44 G4ProductionCuts *
cuts = glv->GetRegion()->GetProductionCuts();
46 for(G4int ic=0; ic<4; ++ic) {
47 G4cout << ic <<
". " << cutnames[ic] <<
" converter: " <<
converter[ic]
48 <<
" cuts: " << cuts <<
" glv: " << glv << G4endl;
49 ss.clear(); ss.str(
"");
52 auxiliaryElement = NewElement(
"auxiliary");
53 auxiliaryElement->setAttributeNode(NewAttribute(
"auxtype",cutnames[ic]));
54 auxiliaryElement->setAttributeNode(NewAttribute(
"auxvalue",ss.str()));
55 volumeElement->appendChild(auxiliaryElement);
virtual ~CMSGDMLWriteStructure()
virtual void AddExtension(xercesc::DOMElement *volumeElement, const G4LogicalVolume *const glv)
G4VRangeToEnergyConverter * converter[4]