9 #include "GeoModelKernel/GeoDefinitions.h"
10 #include "GeoModelKernel/GeoIdentifierTag.h"
11 #include "GeoModelKernel/GeoNameTag.h"
12 #include "GeoModelKernel/GeoPhysVol.h"
13 #include "GeoModelKernel/GeoShapeShift.h"
14 #include "GeoModelKernel/GeoShapeUnion.h"
15 #include "GeoModelKernel/GeoTransform.h"
16 #include "GeoModelKernel/GeoTrd.h"
21 #include <GaudiKernel/IMessageSvc.h>
22 #include <GaudiKernel/MsgStream.h>
23 #include <GeoModelKernel/GeoLogVol.h>
24 #include <GeoModelKernel/GeoShape.h>
48 std::vector<Cutout *> vcutdef;
50 return build(matManager, mysql, cutoutson, vcutdef);
56 const std::vector<Cutout *>& ) {
84 const GeoMaterial *mhon = matManager.
getMaterial(
"muo::Honeycomb");
85 const GeoLogVol *lml =
new GeoLogVol(
"CscMultilayer", sml, mhon);
86 GeoPhysVol *pml =
new GeoPhysVol(lml);
98 const GeoLogVol *lhon =
new GeoLogVol(
"Honeycomb", shon, mhon);
99 GeoPhysVol *phon =
new GeoPhysVol(lhon);
101 const GeoMaterial *mg10 = matManager.
getMaterial(
"std::G10");
102 const GeoLogVol *lg10hon =
new GeoLogVol(
"G10", sg10hon, mg10);
103 GeoPhysVol *pg10hon =
new GeoPhysVol(lg10hon);
108 const GeoShape *sgas =
nullptr;
114 sgas =
new GeoTrd(gasThickness / 2., gasThickness / 2., gShortWidth / 2., gLongWidth / 2., gLength / 2.);
121 sgas =
new GeoTrd(gasThickness / 2., gasThickness / 2., gShortWidth / 2., gLongWidth / 2., gmaxwLength / 2.);
122 const GeoShape *sgast =
new GeoTrd(gasThickness / 2., gasThickness / 2., gLongWidth / 2., gupWidth / 2., (gLength - gmaxwLength) / 2.);
123 sgas = &((sgas->add((*sgast) << GeoTrf::TranslateZ3D(gLength / 2.))) << GeoTrf::TranslateZ3D((gmaxwLength - gLength) / 2.));
125 const GeoMaterial *mgas = matManager.
getMaterial(
"muo::CscArCO2");
126 const GeoLogVol *lgas =
nullptr;
131 GeoNameTag *
np =
new GeoNameTag(
"panel");
132 GeoTransform *xp =
new GeoTransform(GeoTrf::TranslateX3D(newpos - g10thi / 2.));
133 pml->add(
new GeoIdentifierTag(
i));
140 lgas =
new GeoLogVol(
"CscArCO2", sgas, mgas);
141 GeoPhysVol *pgas =
new GeoPhysVol(lgas);
144 GeoNameTag *
ng =
new GeoNameTag(
"CscArCO2");
145 GeoTransform *xg =
new GeoTransform(GeoTrf::TranslateX3D(newpos - gasThickness / 2.));
146 pml->add(
new GeoIdentifierTag(
i));
150 newpos -= gasThickness;
159 log << MSG::INFO <<
"CscMulti Layer:: CscMulti Layer " <<
name <<
" :" <<
endmsg;