43 int cutoutson,
const std::vector<Cutout *>& vcutdef) {
46 double tckaluminum =
r->AlThickness;
47 double honthickness =
r->HoneyCombThickness;
49 const GeoShape *shon =
new GeoTrd(honthickness / 2, honthickness / 2,
width / 2. - tckaluminum,
longWidth / 2. - tckaluminum,
length / 2. - tckaluminum);
51 const GeoMaterial *mded = matManager.
getMaterial(
"std::Aluminium");
52 GeoLogVol *lded =
new GeoLogVol(
"DedModuleSkin", sded, mded);
53 PVLink pded =
new GeoPhysVol(lded);
56 const GeoMaterial *mhon = matManager.
getMaterial(
"muo::RpcPapHonC");
57 GeoLogVol *lhon =
new GeoLogVol(
"DedModulehoneycomb", shon, mhon);
58 PVLink phon =
new GeoPhysVol(lhon);
63 if (cutoutson && !vcutdef.empty()) {
64 GeoIntrusivePtr<GeoPhysVol> tempPhys{};
66 GeoShape *cutoutShape =
nullptr;
67 GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()};
68 for (
unsigned i = 0; i < vcutdef.size(); i++) {
70 cutoutShape =
new GeoTrd(
thickness / 2. + 1.,
thickness / 2. + 1., cut->widthXs / 2., cut->widthXl / 2., cut->lengthY / 2.);
71 cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -
length / 2 + cut->dy + cut->lengthY / 2.);
73 GeoIntrusivePtr<GeoVPhysVol> toCut{pded};
74 GeoCutVolAction cutAction(*cutoutShape, cutTrans);
75 toCut->apply(&cutAction);
76 tempPhys = cutAction.getPV();