11 #include "GeoModelKernel/GeoBox.h"
12 #include "GeoModelKernel/GeoPara.h"
13 #include "GeoModelKernel/GeoTube.h"
14 #include "GeoModelKernel/GeoLogVol.h"
15 #include "GeoModelKernel/GeoNameTag.h"
16 #include "GeoModelKernel/GeoIdentifierTag.h"
17 #include "GeoModelKernel/GeoPhysVol.h"
18 #include "GeoModelKernel/GeoFullPhysVol.h"
19 #include "GeoModelKernel/GeoMaterial.h"
20 #include "GeoModelKernel/GeoAlignableTransform.h"
22 #include "Identifier/Identifier.h"
35 GeoModelIO::ReadGeoModel* sqliteReader,
36 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
37 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
40 m_pixServices(pixServices)
45 GeoFullPhysVol* barrelPhys{
nullptr};
48 barrelPhys = (*m_mapFPV)[
"Barrel"];
58 const GeoTube* barrelTube =
new GeoTube(rmin,rmax,halflength);
59 const GeoLogVol* barrelLog =
new GeoLogVol(
"Barrel",barrelTube,air);
60 barrelPhys =
new GeoFullPhysVol(barrelLog);
78 std::ostringstream lname;
79 lname <<
"Layer" << ii;
84 GeoAlignableTransform* xform = (*m_mapAX)[lname.str()];
86 GeoFullPhysVol* layerFPV = (*m_mapFPV) [lname.str()];
95 xMat.
add(layerFPV,
"PixelLayer");
97 xMat.
add(layerFPV,
"PixelLayer"+ostr.str());
102 GeoAlignableTransform* xform =
new GeoAlignableTransform(GeoTrf::Translate3D(0.,0.,layerZshift));
103 GeoVPhysVol* layerphys =
layer.Build();
104 GeoNameTag *
tag =
new GeoNameTag(lname.str());
105 barrelPhys->add(
tag);
106 barrelPhys->add(
new GeoIdentifierTag(ii));
107 barrelPhys->add(xform);
108 barrelPhys->add(layerphys);
117 GeoNameTag * tagSupportA =
new GeoNameTag(
"StaveRingAndEndblocks_A");
118 GeoTransform *xformSupportA =
layer.getSupportTrfA();
119 GeoPhysVol *supportPhys_A =
layer.getSupportA();
120 barrelPhys->add(tagSupportA);
121 barrelPhys->add(xformSupportA);
122 barrelPhys->add(supportPhys_A);
125 GeoNameTag * tagSupportC =
new GeoNameTag(
"StaveRingAndEndblocks_C");
126 GeoTransform *xformSupportC =
layer.getSupportTrfC();
127 GeoPhysVol *supportPhys_C =
layer.getSupportC();
128 barrelPhys->add(tagSupportC);
129 barrelPhys->add(xformSupportC);
130 barrelPhys->add(supportPhys_C);
134 GeoNameTag *tagM =
new GeoNameTag(
"Brl0M_StaveRing");
135 GeoTransform *xformSupportMidRing =
layer.getSupportTrfMidRing();
136 GeoVPhysVol *supportPhysMidRing =
layer.getSupportMidRing();
137 barrelPhys->add(tagM);
138 barrelPhys->add(xformSupportMidRing);
139 barrelPhys->add(supportPhysMidRing);
148 GeoNameTag * tagFlexA =
new GeoNameTag(
"PP0Flex_A");
151 barrelPhys->add(tagFlexA);
152 barrelPhys->add(xformFlexA);
153 barrelPhys->add(flexPhys_A);
155 GeoNameTag * tagFlexC =
new GeoNameTag(
"PP0Flex_C");
158 barrelPhys->add(tagFlexC);
159 barrelPhys->add(xformFlexC);
160 barrelPhys->add(flexPhys_C);
191 xMat.
add(barrelPhys,
"PixelBarrel");