45 GeoFullPhysVol* barrelPhys{
nullptr};
48 barrelPhys = (*m_mapFPV)[
"Barrel"];
54 double rmin =
m_gmt_mgr->PixelBarrelRMin();
55 double rmax =
m_gmt_mgr->PixelBarrelRMax();
56 double halflength =
m_gmt_mgr->PixelBarrelHalfLength();
57 const GeoMaterial* air =
m_mat_mgr->getMaterial(
"std::Air");
58 const GeoTube* barrelTube =
new GeoTube(rmin,rmax,halflength);
59 const GeoLogVol* barrelLog =
new GeoLogVol(
"Barrel",barrelTube,air);
60 barrelPhys =
new GeoFullPhysVol(barrelLog);
74 for(
int ii = 0; ii <
m_gmt_mgr->PixelBarrelNLayer(); ii++){
78 std::ostringstream lname;
79 lname <<
"Layer" << ii;
84 GeoAlignableTransform* xform = (*m_mapAX)[lname.str()];
86 GeoFullPhysVol* layerFPV = (*m_mapFPV) [lname.str()];
88 m_DDmgr->addAlignableTransform(1,
id, xform, layerFPV);
95 xMat.
add(layerFPV,
"PixelLayer");
96 std::ostringstream ostr; ostr <<
m_gmt_mgr->GetLD();
97 xMat.
add(layerFPV,
"PixelLayer"+ostr.str());
101 double layerZshift =
m_gmt_mgr->PixelLayerGlobalShift();
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);
111 m_DDmgr->addAlignableTransform(1,
id, xform, 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);
177 m_pixServices->getServMatBuilder()->buildAndPlace(
"B", barrelPhys);
191 xMat.
add(barrelPhys,
"PixelBarrel");
GeoPixelBarrel(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX, GeoPixelServices *pixServices)
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX)