67 fPhysicalVolumeVector(),fLogicalVolumeVector()
119 temperature = 2.73*
kelvin;
124 density = 2.03*
g/
cm3;
126 Concrete->
AddElement(elH , fractionmass= 0.01);
127 Concrete->
AddElement(elO , fractionmass= 0.529);
128 Concrete->
AddElement(elNa , fractionmass= 0.016);
129 Concrete->
AddElement(elHg , fractionmass= 0.002);
130 Concrete->
AddElement(elAl , fractionmass= 0.034);
131 Concrete->
AddElement(elSi , fractionmass= 0.337);
132 Concrete->
AddElement(elK , fractionmass= 0.013);
133 Concrete->
AddElement(elCa , fractionmass= 0.044);
134 Concrete->
AddElement(elFe , fractionmass= 0.014);
135 Concrete->
AddElement(elC , fractionmass= 0.001);
154 spanningAngleCylinder);
160 fLogicalVolumeVector.push_back(worldCylinder_log);
162 name =
"shieldWorld";
168 fPhysicalVolumeVector.push_back(pWorldVolume);
183 spanningAngleShield);
189 fLogicalVolumeVector.push_back(aShield_log);
199 for (i=1; i<=18; i++)
204 pos_z = startz + (i-1) * (2*hightShield);
213 fPhysicalVolumeVector.push_back(pvol);
220 innerRadiusShield = 0*
cm;
221 outerRadiusShield = 100*
cm;
223 startAngleShield = 0*
deg;
224 spanningAngleShield = 360*
deg;
231 spanningAngleShield);
235 fLogicalVolumeVector.push_back(aRest_log);
250 fPhysicalVolumeVector.push_back(pvol_rest);
259 if (!fPhysicalVolumeVector.size())
261 G4Exception(
"B01DetectorConstruction::CreateImportanceStore",
"exampleB01_0001",
RunMustBeAborted,
"no physical volumes created yet!");
264 pWorldVolume = fPhysicalVolumeVector[0];
273 for (std::vector<G4VPhysicalVolume *>::iterator
274 it = fPhysicalVolumeVector.begin();
275 it != fPhysicalVolumeVector.end() - 1; it++)
277 if (*it != pWorldVolume)
279 imp = std::pow(2., n++);
280 G4cout <<
"Going to assign importance: " << imp <<
", to volume: "
281 << (*it)->GetName() <<
G4endl;
290 *(fPhysicalVolumeVector[fPhysicalVolumeVector.size()-1]),++n);
297 if (!fPhysicalVolumeVector.size())
299 G4Exception(
"B01DetectorConstruction::CreateWeightWindowStore",
"exampleB01_0002",
RunMustBeAborted,
"no physical volumes created yet!");
302 pWorldVolume = fPhysicalVolumeVector[0];
310 std::set<G4double, std::less<G4double> > enBounds;
311 enBounds.insert(1 *
GeV);
316 std::vector<G4double> lowerWeights;
318 lowerWeights.push_back(1);
322 for (std::vector<G4VPhysicalVolume *>::iterator
323 it = fPhysicalVolumeVector.begin();
324 it != fPhysicalVolumeVector.end() - 1; it++)
326 if (*it != pWorldVolume)
328 lowerWeight = 1./std::pow(2., n++);
329 G4cout <<
"Going to assign lower weight: " << lowerWeight
331 << (*it)->GetName() <<
G4endl;
333 lowerWeights.clear();
334 lowerWeights.push_back(lowerWeight);
343 gRestCell(*(fPhysicalVolumeVector[fPhysicalVolumeVector.size()-1]), ++n);
351 std::ostringstream os;
390 G4String concreteSDname =
"ConcreteSD";
408 for (std::vector<G4LogicalVolume *>::iterator it = fLogicalVolumeVector.begin();
409 it != fLogicalVolumeVector.end(); it++){
410 (*it)->SetSensitiveDetector(MFDet);