56 const std::vector<Cutout *>&)
65 double gasTck = t->gasThickness;
66 double pcbTck = t->pcbThickness;
67 double roTck = t->roThickness;
68 double f1 = mm_descr->
ylFrame();
69 double f2 = mm_descr->
ysFrame();
70 double f3 = mm_descr->
xFrame();
72 minimalgeo = t->geoLevel;
81 const GeoMaterial *mtrd = matManager.
getMaterial(
"std::FR4") !=
nullptr ?
83 GeoLogVol *ltrd =
new GeoLogVol(
logVolName, strd, mtrd);
84 GeoFullPhysVol *ptrd =
new GeoFullPhysVol(ltrd);
90 ptrd->add(
new GeoSerialIdentifier(0));
95 for (
int i = 0; i < t->nlayers; i++) {
98 double longWidthActive;
103 ptrd->add(
new GeoIdentifierTag(igl));
110 newpos += gasTck / 2.;
117 double newXPos = newpos;
119 const GeoShape *sGasVolume =
new GeoTrd(gasTck / 2, gasTck / 2, widthActive / 2, longWidthActive / 2, lengthActive / 2);
121 GeoLogVol *ltrdtmp =
new GeoLogVol(
"MM_Sensitive", sGasVolume, matManager.
getMaterial(
"muo::ArCO2"));
122 GeoPhysVol *ptrdtmp =
new GeoPhysVol(ltrdtmp);
123 GeoNameTag *ntrdtmp =
new GeoNameTag(
name +
"muo::ArCO2");
124 GeoTransform *ttrdtmp =
new GeoTransform(GeoTrf::TranslateX3D(newXPos));
135 const GeoShape *trd1 =
new GeoTrd(gasTck / 2, gasTck / 2,
width / 2,
longWidth / 2,
length / 2);
136 const GeoShape *trd2 =
new GeoTrd(gasTck, gasTck, W - f3, lW - f3,
length / 2 - (f1 + f2) / 2.);
137 GeoTrf::Translate3D c(0, 0, (f2 - f1) / 2.);
138 trd1 = &(trd1->subtract((*trd2) << c));
139 GeoLogVol *ltrdframe =
new GeoLogVol(
"MM_Frame", trd1, matManager.
getMaterial(
"std::Aluminium"));
140 GeoPhysVol *ptrdframe =
new GeoPhysVol(ltrdframe);
142 ptrdtmp->add(ptrdframe);