70 fLogicalVolumeVector(),fPhysicalVolumeVector()
77 fLogicalVolumeVector.clear();
78 fPhysicalVolumeVector.clear();
89 G4double density, pressure, temperature;
129 temperature = 2.73*
kelvin;
134 density = 2.03*
g/
cm3;
136 Concrete->
AddElement(elH , fractionmass= 0.01);
137 Concrete->
AddElement(elO , fractionmass= 0.529);
138 Concrete->
AddElement(elNa , fractionmass= 0.016);
139 Concrete->
AddElement(elHg , fractionmass= 0.002);
140 Concrete->
AddElement(elAl , fractionmass= 0.034);
141 Concrete->
AddElement(elSi , fractionmass= 0.337);
142 Concrete->
AddElement(elK , fractionmass= 0.013);
143 Concrete->
AddElement(elCa , fractionmass= 0.044);
144 Concrete->
AddElement(elFe , fractionmass= 0.014);
145 Concrete->
AddElement(elC , fractionmass= 0.001);
164 spanningAngleCylinder);
170 fLogicalVolumeVector.push_back(worldCylinder_log);
172 name =
"shieldWorld";
177 fPhysicalVolumeVector.push_back(fWorldVolume);
192 spanningAngleShield);
198 fLogicalVolumeVector.push_back(aShield_log);
208 for (i=1; i<=18; i++)
213 pos_z = startz + (i-1) * (2*heightShield);
222 fPhysicalVolumeVector.push_back(pvol);
229 innerRadiusShield = 0*
cm;
230 outerRadiusShield = 100*
cm;
232 startAngleShield = 0*
deg;
233 spanningAngleShield = 360*
deg;
240 spanningAngleShield);
244 fLogicalVolumeVector.push_back(aRest_log);
259 fPhysicalVolumeVector.push_back(pvol_rest);
269 G4cout <<
" B01DetectorConstruction:: Creating Importance Store " <<
G4endl;
270 if (!fPhysicalVolumeVector.size())
272 G4Exception(
"B01DetectorConstruction::CreateImportanceStore"
274 ,
"no physical volumes created yet!");
277 fWorldVolume = fPhysicalVolumeVector[0];
286 for (std::vector<G4VPhysicalVolume *>::iterator
287 it = fPhysicalVolumeVector.begin();
288 it != fPhysicalVolumeVector.end() - 1; it++)
290 if (*it != fWorldVolume)
292 imp = std::pow(2., n++);
293 G4cout <<
"Going to assign importance: " << imp <<
", to volume: "
294 << (*it)->GetName() <<
G4endl;
303 *(fPhysicalVolumeVector[fPhysicalVolumeVector.size()-1]),++n);
312 if (!fPhysicalVolumeVector.size())
314 G4Exception(
"B01DetectorConstruction::CreateWeightWindowStore"
316 ,
"no physical volumes created yet!");
319 fWorldVolume = fPhysicalVolumeVector[0];
327 std::set<G4double, std::less<G4double> > enBounds;
328 enBounds.insert(1 *
GeV);
333 std::vector<G4double> lowerWeights;
335 lowerWeights.push_back(1);
339 for (std::vector<G4VPhysicalVolume *>::iterator
340 it = fPhysicalVolumeVector.begin();
341 it != fPhysicalVolumeVector.end() - 1; it++)
343 if (*it != fWorldVolume)
345 lowerWeight = 1./std::pow(2., n++);
346 G4cout <<
"Going to assign lower weight: " << lowerWeight
348 << (*it)->GetName() <<
G4endl;
350 lowerWeights.clear();
351 lowerWeights.push_back(lowerWeight);
360 gRestCell(*(fPhysicalVolumeVector[fPhysicalVolumeVector.size()-1]), ++n);
370 std::ostringstream os;
414 G4String concreteSDname =
"ConcreteSD";
431 for (std::vector<G4LogicalVolume *>::iterator it =
432 fLogicalVolumeVector.begin();
433 it != fLogicalVolumeVector.end(); it++){
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
G4VPhysicalVolume * GetWorldVolume()
CLHEP::Hep3Vector G4ThreeVector
int universe_mean_density
void AddLowerWeights(const G4GeometryCell &gCell, const std::vector< G4double > &lowerWeights)
virtual G4VPhysicalVolume * Construct()
Definition of the B01DetectorConstruction class.
B01DetectorConstruction()
void Weighted(G4bool flg=true)
void SetForceSolid(G4bool=true)
void Weighted(G4bool flg=true)
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4VWeightWindowStore * CreateWeightWindowStore()
static constexpr double cm
void AddImportanceGeometryCell(G4double importance, const G4GeometryCell &gCell)
~B01DetectorConstruction()
void SetFilter(G4VSDFilter *value)
static G4WeightWindowStore * GetInstance()
static constexpr double kelvin
static constexpr double cm3
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
G4String GetCellName(G4int i)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void AddNewDetector(G4VSensitiveDetector *aSD)
G4VIStore * CreateImportanceStore()
static G4IStore * GetInstance()
static G4SDManager * GetSDMpointer()
void MultiplyKineticEnergy(G4bool flg=true)
void SetGeneralUpperEnergyBounds(const std::set< G4double, std::less< G4double > > &enBounds)
static constexpr double GeV
virtual void ConstructSDandField()
void AddElement(G4Element *element, G4int nAtoms)
static constexpr double deg
static constexpr double mole
void DivideByVelocity(G4bool flg=true)
void SetVisAttributes(const G4VisAttributes *pVA)