10 #include "GeoModelKernel/GeoMaterial.h"
15 #include "G4LogicalVolume.hh"
16 #include "G4Material.hh"
17 #include "G4PVPlacement.hh"
20 #include "CLHEP/Units/SystemOfUnits.h"
29 declareProperty(
"ZLength",
m_zLength,
"");
30 declareProperty(
"YLength",
m_yLength,
"");
31 declareProperty(
"XLength",
m_xLength,
"");
47 ATH_MSG_DEBUG (
"DeadMaterial geometry " << dzdeadmaterial <<
" " << dydeadmaterial <<
" " << dxdeadmaterial );
49 G4Box *wall =
new G4Box(
"DeadMaterial",dxdeadmaterial,dydeadmaterial,dzdeadmaterial);
53 if (StatusCode::SUCCESS !=
detStore()->
retrieve(materialManager, std::string(
"MATERIALS")))
58 const GeoMaterial *geoAir = materialManager->
getMaterial(
"tile::Air");
59 const GeoMaterial *geoIron = materialManager->
getMaterial(
"std::Iron");
61 G4Material *airMaterial=theMaterialFactory.
Build(geoAir);
62 G4Material *ironMaterial=theMaterialFactory.
Build(geoIron);
64 G4LogicalVolume *wallV =
new G4LogicalVolume(wall,airMaterial,
"DeadMaterial");
67 const double IronWidth = 5./2. *
CLHEP::mm;
68 for (
int j=0; j<2; j++)
71 G4Box *ironLayerX =
new G4Box(
"IronLayerX",IronWidth,dydeadmaterial,dzdeadmaterial);
72 G4LogicalVolume *ironLayerXV =
new G4LogicalVolume(ironLayerX,ironMaterial,
"DMIronLayerX");
74 double xLayer=0.0, zLayer=0.0;
75 if(j==0) xLayer = -dxdeadmaterial+IronWidth;
76 if(j==1) xLayer = dxdeadmaterial-IronWidth;
79 G4ThreeVector(xLayer,0,0),
87 const double IronWidthX = 140./2. *
CLHEP::mm;
88 G4Box *ironLayerZ =
new G4Box(
"IronLayerZ",IronWidthX,dydeadmaterial,IronWidth);
89 G4LogicalVolume *ironLayerZV =
new G4LogicalVolume(ironLayerZ,ironMaterial,
"DMIronLayerZ");
90 if(j==0) zLayer = -dzdeadmaterial+IronWidth;
91 if(j==1) zLayer = dzdeadmaterial-IronWidth;
94 G4ThreeVector(0,0,zLayer),