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);
45 const std::vector<Cutout *>& vcutdef) {
48 double tckaluminum =
r->AlThickness;
49 double honthickness =
r->HoneyCombThickness;
51 const GeoShape *shon =
new GeoTrd(honthickness / 2, honthickness / 2,
width / 2. - tckaluminum,
longWidth / 2. - tckaluminum,
length / 2. - tckaluminum);
53 const GeoMaterial *mded = matManager.
getMaterial(
"std::Aluminium");
54 GeoLogVol *lded =
new GeoLogVol(
"DedModuleSkin", sded, mded);
55 GeoPhysVol *pded =
new GeoPhysVol(lded);
58 const GeoMaterial *mhon = matManager.
getMaterial(
"muo::RpcPapHonC");
59 GeoLogVol *lhon =
new GeoLogVol(
"DedModulehoneycomb", shon, mhon);
60 GeoPhysVol *phon =
new GeoPhysVol(lhon);
65 if (cutoutson && !vcutdef.empty()) {
66 GeoPhysVol *tempPhys =
nullptr;
68 GeoShape *cutoutShape =
nullptr;
70 for (
unsigned i = 0;
i < vcutdef.size();
i++) {
73 cutTrans = GeoTrf::Translate3D(0.0,
cut->dx, -
length / 2 +
cut->dy +
cut->lengthY / 2.);
75 GeoIntrusivePtr<GeoVPhysVol> toCut{pded};
76 GeoCutVolAction cutAction(*cutoutShape, cutTrans);
77 toCut->apply(&cutAction);
78 tempPhys = cutAction.getPV();