43 {
45
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);
50
51 const GeoMaterial *mded = matManager.
getMaterial(
"std::Aluminium");
52 GeoLogVol *lded = new GeoLogVol("DedModuleSkin", sded, mded);
53 PVLink pded = new GeoPhysVol(lded);
54
55
56 const GeoMaterial *mhon = matManager.
getMaterial(
"muo::RpcPapHonC");
57 GeoLogVol *lhon = new GeoLogVol("DedModulehoneycomb", shon, mhon);
58 PVLink phon = new GeoPhysVol(lhon);
60 pded->add(phon);
61
62
63 if (cutoutson && !vcutdef.empty()) {
64 GeoIntrusivePtr<GeoPhysVol> tempPhys{};
65 Cutout *
cut =
nullptr;
66 GeoShape *cutoutShape = nullptr;
67 GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()};
68 for (
unsigned i = 0;
i < vcutdef.size();
i++) {
71 cutTrans = GeoTrf::Translate3D(0.0,
cut->dx, -
length / 2 +
cut->dy +
cut->lengthY / 2.);
72
73 GeoIntrusivePtr<GeoVPhysVol> toCut{pded};
74 GeoCutVolAction cutAction(*cutoutShape, cutTrans);
75 toCut->apply(&cutAction);
76 tempPhys = cutAction.getPV();
77 pded = tempPhys;
78 }
79 }
80
81 return pded;
82 }
Technology * GetTechnology(const std::string &name)
virtual const GeoMaterial * getMaterial(const std::string &name)=0
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.