7 #include "GeoModelKernel/GeoCutVolAction.h"
8 #include "GeoModelKernel/GeoDefinitions.h"
9 #include "GeoModelKernel/GeoLogVol.h"
10 #include "GeoModelKernel/GeoMaterial.h"
11 #include "GeoModelKernel/GeoPhysVol.h"
12 #include "GeoModelKernel/GeoShapeIntersection.h"
13 #include "GeoModelKernel/GeoShapeSubtraction.h"
14 #include "GeoModelKernel/GeoTrd.h"
15 #include "GeoModelKernel/GeoVPhysVol.h"
21 #define skip_ded false
37 std::vector<Cutout *> vcutdef;
39 return build(matManager, mysql, cutoutson, vcutdef);
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;
68 for (
unsigned i = 0;
i < vcutdef.size();
i++) {
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();