43 GeoFullPhysVol* barrelPhys{
nullptr};
46 barrelPhys = (*m_mapFPV)[
"Barrel"];
52 double rmin =
m_gmt_mgr->PixelBarrelRMin();
53 double rmax =
m_gmt_mgr->PixelBarrelRMax();
54 double halflength =
m_gmt_mgr->PixelBarrelHalfLength();
55 const GeoMaterial* air =
m_mat_mgr->getMaterial(
"std::Air");
56 const GeoTube* barrelTube =
new GeoTube(rmin,rmax,halflength);
57 const GeoLogVol* barrelLog =
new GeoLogVol(
"Barrel",barrelTube,air);
58 barrelPhys =
new GeoFullPhysVol(barrelLog);
72 for(
int ii = 0; ii <
m_gmt_mgr->PixelBarrelNLayer(); ii++){
80 std::string lnameDD2 =
"Layer_PixelBarrel"+std::to_string(ii);
82 auto itAX =
m_mapAX->find(lnameDD2);
84 throw std::runtime_error(
"GeoPixelBarrel cannot find AX for the key " + lnameDD2);
85 GeoAlignableTransform* xform = itAX->second;
87 auto itFPV =
m_mapFPV->find(lnameDD2);
89 throw std::runtime_error(
"GeoPixelBarrel cannot find FPV for the key " + lnameDD2);
90 GeoFullPhysVol* layerFPV = itFPV->second;
95 m_DDmgr->addAlignableTransform(1,
id, xform, layerFPV);
102 xMat.
add(layerFPV,
"PixelLayer");
103 xMat.
add(layerFPV,
"PixelLayer"+std::to_string(
m_gmt_mgr->GetLD()));
107 double layerZshift =
m_gmt_mgr->PixelLayerGlobalShift();
108 GeoAlignableTransform* xform =
new GeoAlignableTransform(GeoTrf::Translate3D(0.,0.,layerZshift));
109 GeoVPhysVol* layerphys = layer.Build();
110 std::string lname =
"Layer" + std::to_string(ii);
111 GeoNameTag *tag =
new GeoNameTag(lname);
112 barrelPhys->add(tag);
113 barrelPhys->add(
new GeoIdentifierTag(ii));
114 barrelPhys->add(xform);
115 barrelPhys->add(layerphys);
118 m_DDmgr->addAlignableTransform(1,
id, xform, layerphys);
124 GeoNameTag * tagSupportA =
new GeoNameTag(
"StaveRingAndEndblocks_A");
125 GeoTransform *xformSupportA = layer.getSupportTrfA();
126 GeoPhysVol *supportPhys_A = layer.getSupportA();
127 barrelPhys->add(tagSupportA);
128 barrelPhys->add(xformSupportA);
129 barrelPhys->add(supportPhys_A);
132 GeoNameTag * tagSupportC =
new GeoNameTag(
"StaveRingAndEndblocks_C");
133 GeoTransform *xformSupportC = layer.getSupportTrfC();
134 GeoPhysVol *supportPhys_C = layer.getSupportC();
135 barrelPhys->add(tagSupportC);
136 barrelPhys->add(xformSupportC);
137 barrelPhys->add(supportPhys_C);
141 GeoNameTag *tagM =
new GeoNameTag(
"Brl0M_StaveRing");
142 GeoTransform *xformSupportMidRing = layer.getSupportTrfMidRing();
143 GeoVPhysVol *supportPhysMidRing = layer.getSupportMidRing();
144 barrelPhys->add(tagM);
145 barrelPhys->add(xformSupportMidRing);
146 barrelPhys->add(supportPhysMidRing);
155 GeoNameTag * tagFlexA =
new GeoNameTag(
"PP0Flex_A");
158 barrelPhys->add(tagFlexA);
159 barrelPhys->add(xformFlexA);
160 barrelPhys->add(flexPhys_A);
162 GeoNameTag * tagFlexC =
new GeoNameTag(
"PP0Flex_C");
165 barrelPhys->add(tagFlexC);
166 barrelPhys->add(xformFlexC);
167 barrelPhys->add(flexPhys_C);
184 m_pixServices->getServMatBuilder()->buildAndPlace(
"B", barrelPhys);
198 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)