74 auto nistManager = G4NistManager::Instance();
75 nistManager->FindOrBuildMaterial(
"G4_Pb");
81 new G4Material(
"liquidArgon", z=18.,
a= 39.95*g/mole, density= 1.390*g/cm3);
85 new G4Material(
"Galactic", z=1.,
a=1.01*g/mole,density= universe_mean_density,
86 kStateGas, 2.73*kelvin, 3.e-18*pascal);
89 G4cout << *(G4Material::GetMaterialTable()) << G4endl;
98 G4double absoThickness = 10.*mm;
99 G4double gapThickness = 5.*mm;
100 G4double calorSizeXY = 10.*cm;
102 auto layerThickness = absoThickness + gapThickness;
103 auto calorThickness =
fNofLayers * layerThickness;
104 auto worldSizeXY = 1.2 * calorSizeXY;
105 auto worldSizeZ = 1.2 * calorThickness;
108 auto defaultMaterial = G4Material::GetMaterial(
"Galactic");
109 auto absorberMaterial = G4Material::GetMaterial(
"G4_Pb");
110 auto gapMaterial = G4Material::GetMaterial(
"liquidArgon");
112 if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
113 G4ExceptionDescription msg;
114 msg <<
"Cannot retrieve materials already defined.";
115 G4Exception(
"DetectorConstruction::DefineVolumes()",
116 "MyCode0001", FatalException, msg);
124 worldSizeXY/2, worldSizeXY/2, worldSizeZ/2);
145 =
new G4Box(
"Calorimeter",
146 calorSizeXY/2, calorSizeXY/2, calorThickness/2);
168 calorSizeXY/2, calorSizeXY/2, layerThickness/2);
189 calorSizeXY/2, calorSizeXY/2, absoThickness/2);
198 G4ThreeVector(0., 0., -gapThickness / 2),
211 calorSizeXY/2, calorSizeXY/2, gapThickness/2);
220 G4ThreeVector(0., 0., absoThickness / 2),
233 <<
"------------------------------------------------------------" << G4endl
234 <<
"---> The calorimeter is " <<
fNofLayers <<
" layers of: [ "
235 << absoThickness/mm <<
"mm of " << absorberMaterial->GetName()
237 << gapThickness/mm <<
"mm of " << gapMaterial->GetName() <<
" ] " << G4endl
238 <<
"------------------------------------------------------------" << G4endl;
243 worldLV->SetVisAttributes(G4VisAttributes::GetInvisible());