55 std::unique_ptr<SiCommonItems> commonItems{std::make_unique<SiCommonItems>(athenaComps->
getIdHelper())};
65 <<
"\" which is inconsistent with the layout choosen!"
74 std::string versionName =
"SR1";
75 std::string layout =
"SR1";
77 int versionMajorNumber = 4;
78 int versionMinorNumber = 0;
79 int versionPatchNumber = 0;
110 msg(MSG::INFO) <<
"Building Pixel Detector" <<
endmsg;
114 msg(MSG::INFO) <<
" B-Layer basic eta pitch: " <<
m_geometryManager->DesignPitchZ()/Gaudi::Units::micrometer <<
"um" <<
endmsg;
115 msg(MSG::INFO) <<
" B-Layer sensor thickness: " <<
m_geometryManager->PixelBoardThickness()/Gaudi::Units::micrometer <<
"um" <<
endmsg;
126 if ((barrelPresent && endcapAPresent) ||
127 (barrelPresent && endcapCPresent) ||
128 (endcapAPresent && endcapCPresent)) {
129 msg(MSG::ERROR) <<
"SR1 geometry can only have 1 part" <<
endmsg;
132 if (!barrelPresent && !endcapAPresent && !endcapCPresent) {
133 msg(MSG::ERROR) <<
"SR1 geometry must have 1 part" <<
endmsg;
136 GeoVPhysVol* physVol =
nullptr;
137 GeoAlignableTransform * transform =
nullptr;
153 physVol = brl.
Build();
155 GeoTrf::Transform3D barrelTransform =
m_geometryManager->partTransform(
"Barrel");
156 transform =
new GeoAlignableTransform(topTransform*barrelTransform);
159 GeoNameTag* tag =
new GeoNameTag(
"Pixel");
161 world->add(
new GeoIdentifierTag(0));
163 world->add(transform);
169 if (endcapAPresent || endcapCPresent) {
177 if (endcapAPresent) {
180 physVol = pec.
Build();
182 GeoTrf::Transform3D endcapATransform =
m_geometryManager->partTransform(
"EndcapA");
183 transform =
new GeoAlignableTransform(topTransform * endcapATransform * GeoTrf::TranslateZ3D(zpos));
185 GeoNameTag* tag =
new GeoNameTag(
"Pixel");
187 world->add(
new GeoIdentifierTag(2));
188 world->add(transform);
193 if (endcapCPresent) {
196 physVol = pec.
Build();
198 GeoTrf::Transform3D endcapCTransform =
m_geometryManager->partTransform(
"EndcapC");
199 transform =
new GeoAlignableTransform(topTransform * endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*Gaudi::Units::deg));
201 GeoNameTag* tag =
new GeoNameTag(
"Pixel");
203 world->add(
new GeoIdentifierTag(-2));
204 world->add(transform);
211 if(pixServices)
delete pixServices;
215 msg(MSG::ERROR) <<
"Unexpected condition. Top level volume has zero pointer" <<
endmsg;
246 if (endcapAPresent) {
251 if (endcapCPresent) {