34 #include "DetectorConstruction.hh"
35 #include "DetectorMessenger.hh"
63 fAbsorSizeX = fAbsorSizeYZ = 20*
cm;
64 fWorldSizeX = fWorldSizeYZ = 1.2*fAbsorSizeX;
66 fWorldMaterial = fAbsorMaterial = 0;
73 fTallyMaterial[j] = 0;
89 {
delete fDetectorMessenger;}
95 return ConstructVolumes();
100 void DetectorConstruction::DefineMaterials()
115 G4int ncomponents, natoms;
126 BuildMaterialWithNewDensity(
"Water_1.05",
"G4_WATER",1.05*
g/
cm3);
133 density = 1.e-5*
g/
cm3;
134 pressure = 2.e-2*
bar;
142 temperature = 2.73*
kelvin;
148 fWorldMaterial = vacuum;
163 sWorld =
new G4Box(
"World",
164 fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2);
183 sAbsor =
new G4Box(
"Absorber",
184 fAbsorSizeX/2,fAbsorSizeYZ/2,fAbsorSizeYZ/2);
201 if (fTallyNumber > 0) {
202 for (
G4int j=1; j<=fTallyNumber; j++) {
205 fTallySize[j].
x()/2,fTallySize[j].
y()/2,fTallySize[j].
z()/2);
217 fTallyMass[j] = fTallySize[j].
x()*fTallySize[j].
y()*fTallySize[j].
z()
235 G4cout <<
"\n---------------------------------------------------------\n";
236 G4cout <<
"---> The Absorber is " <<
G4BestUnit(fAbsorSizeX,
"Length")
238 G4cout <<
"\n---------------------------------------------------------\n";
240 if (fTallyNumber > 0) {
241 G4cout <<
"---> There are " << fTallyNumber <<
" tallies : " <<
G4endl;
242 for (
G4int j=1; j<=fTallyNumber; j++) {
243 G4cout <<
"fTally " << j <<
": "
244 << fTallyMaterial[j]->
GetName()
245 <<
", mass = " <<
G4BestUnit(fTallyMass[j],
"Mass")
246 <<
" size = " <<
G4BestUnit(fTallySize[j],
"Length")
247 <<
" position = " <<
G4BestUnit(fTallyPosition[j],
"Length")
250 G4cout <<
"\n---------------------------------------------------------\n";
258 fAbsorSizeX =
value; fWorldSizeX = 1.2*fAbsorSizeX;
266 fAbsorSizeYZ =
value;
267 fWorldSizeYZ = 1.2*fAbsorSizeYZ;
279 fAbsorMaterial = pttoMaterial;
295 if (fMagField)
delete fMagField;
313 fTallyNumber =
value;
320 fTallySize[j] =
value;
332 fTallyMaterial[j] = pttoMaterial;
345 fTallyPosition[j] =
value;