17 #include "GeoModelKernel/GeoMaterial.h"
22 #include "G4LogicalVolume.hh"
23 #include "G4Material.hh"
24 #include "G4PVPlacement.hh"
25 #include "G4ThreeVector.hh"
28 #include "CLHEP/Units/SystemOfUnits.h"
43 declareProperty(
"ZLength",
m_zLength,
"");
44 declareProperty(
"YLength",
m_yLength,
"");
45 declareProperty(
"XLength",
m_xLength,
"");
58 <<
" side muon wall: "
64 const double zScintillator =
m_zLength / 2.;
65 const double yScintillator =
m_yLength / 2.;
66 const double xScintillator =
m_xLength / 2.;
67 const double dzmuonwall = 750. *
CLHEP::mm;
68 const double dymuonwall = 425. *
CLHEP::mm;
69 const double dxmuonwall = xScintillator;
71 G4Box *wall =
new G4Box(
"MuonWall", dxmuonwall, dymuonwall, dzmuonwall);
75 if (StatusCode::SUCCESS !=
detStore()->
retrieve(materialManager, std::string(
"MATERIALS"))) {
80 const GeoMaterial *geoAir = materialManager->
getMaterial(
"tile::Air");
81 const GeoMaterial *geoScintillator = materialManager->
getMaterial(
"tile::Scintillator");
83 G4Material *airMaterial = theMaterialFactory.
Build(geoAir);
84 G4Material *scintillatorMaterial = theMaterialFactory.
Build(geoScintillator);
86 G4LogicalVolume *wallV =
new G4LogicalVolume(wall, airMaterial,
"MuonWall");
89 double zLayer, yLayer, xLayer = 0.;
93 const int nrOfLayers = 12;
95 for (
int j = 0; j < nrOfLayers; j++) {
98 G4Box *scintillatorLayer =
new G4Box(
"ScintillatorLayer", xScintillator, yScintillator, zScintillator);
100 G4LogicalVolume *scintillatorLayerV =
new G4LogicalVolume(scintillatorLayer, scintillatorMaterial,
101 "MuScintillatorLayer");
106 yLayer = yScintillator + 25. *
CLHEP::mm;
107 zLayer = -450. *
CLHEP::mm + (2 * j + 1) * zScintillator;
109 yLayer = -yScintillator + 25. *
CLHEP::mm;
110 zLayer = -450. *
CLHEP::mm + (2 * (j - 6) + 1) * zScintillator;
115 G4ThreeVector(xLayer,yLayer,zLayer),
117 "MuScintillatorLayer",
127 const double yScintillator1 = yScintillator + 50. *
CLHEP::mm;
128 const double zScintillator1 = zScintillator - 50. *
CLHEP::mm;
130 const int nScintLayers = 3;
132 for (
int j = 0; j < nScintLayers; j++) {
134 G4Box* scintillatorLayer =
new G4Box(
"SideScintiLayer", xScintillator, yScintillator1, zScintillator1);
136 G4LogicalVolume* scintillatorLayerV =
new G4LogicalVolume(scintillatorLayer, scintillatorMaterial,
137 "SideMuScintiLayer");
140 zLayer = -750. *
CLHEP::mm + (2 * j + 1) * zScintillator1;
144 G4ThreeVector(xLayer,yLayer,zLayer),