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,
"");
42 G4Box *emptybox =
new G4Box(
"Crate",dxCrate,dyCrate,dzCrate);
46 if (StatusCode::SUCCESS !=
detStore()->
retrieve(materialManager, std::string(
"MATERIALS")))
51 const GeoMaterial *geoAir = materialManager->
getMaterial(
"tile::Air");
52 const GeoMaterial *geoAluminium = materialManager->
getMaterial(
"std::Aluinium");
53 const GeoMaterial *geoSiO2CondEpox = materialManager->
getMaterial(
"tile::SiO2CondEpox");
55 G4Material *airMaterial=theMaterialFactory.
Build(geoAir);
56 G4Material *aluminiumMaterial=theMaterialFactory.
Build(geoAluminium);
57 G4Material *SiO2CondEpoxMaterial=theMaterialFactory.
Build(geoSiO2CondEpox);
59 G4Material *crateMaterial =
new G4Material(
"LArCrateMaterial", 0.2876*
CLHEP::g/
CLHEP::cm3,3);
60 crateMaterial->AddMaterial(aluminiumMaterial, 0.7744);
61 crateMaterial->AddMaterial(SiO2CondEpoxMaterial, 0.2216);
62 crateMaterial->AddMaterial(airMaterial, 0.0040);
64 G4LogicalVolume *emptyboxV =
new G4LogicalVolume(emptybox,crateMaterial,
"LarCrate");
66 const double thicknessAlu = 5.*
CLHEP::mm ;
70 double xLayers=0.0, yLayers=0.0, zLayers=0.0;
73 G4Box *AluLayerTB =
new G4Box(
"AluLayerTB",dxCrate,thicknessAlu/2.,dzCrate);
74 G4LogicalVolume *AluLayerVTB =
new G4LogicalVolume(AluLayerTB,aluminiumMaterial,
"AluLayerTB");
75 if(j==0) yLayers = dyCrate - thicknessAlu/2.;
76 if(j==1) yLayers = -dyCrate + thicknessAlu/2.;
79 G4ThreeVector(0.,yLayers,0.),
87 G4Box *AluLayerRL =
new G4Box(
"AluLayerRL",dxCrate,dyCrate-thicknessAlu,thicknessAlu/2.);
88 G4LogicalVolume *AluLayerVRL =
new G4LogicalVolume(AluLayerRL,aluminiumMaterial,
"AluLayerRL");
89 if(j==0) zLayers = dzCrate - thicknessAlu/2.;
90 if(j==1) zLayers = -dzCrate + thicknessAlu/2.;
93 G4ThreeVector(0.,0.,zLayers),
101 G4Box *AluLayerFB =
new G4Box(
"AluLayerFB",thicknessAlu/2.,dyCrate-thicknessAlu,dzCrate-thicknessAlu);
102 G4LogicalVolume *AluLayerVFB =
new G4LogicalVolume(AluLayerFB,aluminiumMaterial,
"AluLayerFB");
103 if(j==0) xLayers = dxCrate - thicknessAlu/2.;
104 if(j==1) xLayers = -dxCrate + thicknessAlu/2.;
107 G4ThreeVector(xLayers,0.,0.),