61 std::unique_ptr<SiCommonItems> commonItems{std::make_unique<SiCommonItems>(athenaComps->
getIdHelper())};
72 <<
"\" which is inconsistent with the layout choosen!"
84 int versionMajorNumber = 5;
85 int versionMinorNumber = 1;
86 int versionPatchNumber = 0;
115 msg(MSG::INFO) <<
"Building Pixel Detector" <<
endmsg;
122 msg(MSG::DEBUG) <<
" B-Layer basic eta pitch: " <<
m_geometryManager->DesignPitchZ()/Gaudi::Units::micrometer <<
"um" <<
endmsg;
123 msg(MSG::DEBUG) <<
" B-Layer sensor thickness: " <<
m_geometryManager->PixelBoardThickness()/Gaudi::Units::micrometer <<
"um" <<
endmsg;
133 GeoVPhysVol* pephys = pe.Build() ;
138 world->add(
new GeoNameTag(
"Pixel"));
139 GeoAlignableTransform * transform =
new GeoAlignableTransform(topTransform);
140 world->add(transform);
223 msg(MSG::INFO) <<
"Doing consistency checks." <<
endmsg;
228 int missingCount = 0;
230 for (iter = manager->getDetectorElementBegin(); iter != manager->getDetectorElementEnd(); ++iter){
234 msg(MSG::WARNING) <<
"MISSING ELEMENT!!!!!!!!!!! - Element # " <<
count-1 <<
endmsg;
240 msg(MSG::ERROR) <<
"There are missing elements in element array." <<
endmsg;
242 msg(MSG::INFO) <<
"Number missing: " << missingCount <<
endmsg;
252 int barrelCountError = 0;
253 for (
int iBarrelIndex = 0; iBarrelIndex < manager->numerology().numBarrels(); iBarrelIndex++) {
254 int iBarrel = manager->numerology().barrelId(iBarrelIndex);
255 for (
int iLayer = 0; iLayer < manager->numerology().numLayers(); iLayer++) {
260 int etaCorrection = 0;
261 if (!
m_geometryManager->allowSkipEtaZero() && manager->numerology().skipEtaZeroForLayer(iLayer)) {
267 if (manager->numerology().useLayer(iLayer)) {
268 for (
int iPhi = 0; iPhi < manager->numerology().numPhiModulesForLayer(iLayer); iPhi++) {
269 for (
int iEta = manager->numerology().beginEtaModuleForLayer(iLayer);
270 iEta < manager->numerology().endEtaModuleForLayer(iLayer) - etaCorrection;
273 if (!etaCorrection && !iEta && manager->numerology().skipEtaZeroForLayer(iLayer))
continue;
277 std::stringstream ostr;
278 ostr <<
"[2.1 . " << iBarrel <<
" . " << iLayer <<
" . " << iPhi <<
" . " << iEta <<
" . 0]";
281 msg(MSG::WARNING) <<
" No element found for id: " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
292 int endcapCountError = 0;
293 for (
int iEndcapIndex = 0; iEndcapIndex < manager->numerology().numEndcaps(); iEndcapIndex++) {
294 int iEndcap = manager->numerology().endcapId(iEndcapIndex);
295 for (
int iDisk = 0; iDisk < manager->numerology().numDisks(); iDisk++) {
296 if (manager->numerology().useDisk(iDisk)) {
297 for (
int iEta = 0; iEta < manager->numerology().numRingsForDisk(iDisk); iEta++) {
298 for (
int iPhi = 0; iPhi < manager->numerology().numPhiModulesForDiskRing(iDisk,iEta); iPhi++) {
302 std::stringstream ostr;
303 ostr <<
"[2.1." << iEndcap <<
"." << iDisk <<
"." << iPhi <<
"." << iEta <<
".0]";
306 msg(MSG::WARNING) <<
" No element found for id: " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
315 int endcapCountDBM = 0;
316 int endcapCountErrorDBM = 0;
321 for (
int iEndcapIndex = 0; iEndcapIndex < manager->numerology().numEndcapsDBM(); iEndcapIndex++) {
322 int iEndcap = manager->numerology().endcapIdDBM(iEndcapIndex);
323 for (
int iDisk = 0; iDisk < manager->numerology().numDisksDBM(); iDisk++) {
324 if (manager->numerology().useDiskDBM(iDisk)) {
325 for (
int iEta = 0; iEta < manager->numerology().numRingsForDiskDBM(iDisk); iEta++) {
326 for (
int iPhi = 0; iPhi < manager->numerology().numPhiModulesForDiskRingDBM(iDisk,iEta); iPhi++) {
330 std::stringstream ostr;
331 ostr <<
"[2.1." << iEndcap <<
"." << iDisk <<
"." << iPhi <<
"." << iEta <<
".0]";
333 endcapCountErrorDBM++;
334 msg(MSG::WARNING) <<
" No element found for id (DBM): " << ostr.str() <<
" " << idHelper->
show_to_string(
id) <<
endmsg;
343 if (barrelCountError || endcapCountError || endcapCountErrorDBM) {
344 msg(MSG::ERROR) <<
"There are elements which cannot be found." <<
endmsg;
345 msg(MSG::INFO) <<
"Number of barrel elements not found : " << barrelCountError <<
endmsg;
346 msg(MSG::INFO) <<
"Number of pixel endcap elements not found : " << endcapCountError <<
endmsg;
347 msg(MSG::INFO) <<
"Number of DBM endcap elements not found : " << endcapCountErrorDBM <<
endmsg;
350 if ( barrelCount+endcapCount+endcapCountDBM !=
int(maxHash)) {
351 msg(MSG::ERROR) <<
"Total count does not match maxHash." <<
endmsg;
352 msg(MSG::INFO) <<
"Number of barrel elements : " << barrelCount <<
endmsg;
353 msg(MSG::INFO) <<
"Number of endcap elements : " << endcapCount <<
endmsg;
354 msg(MSG::INFO) <<
"Number of endcap elements (DBM) : " << endcapCountDBM <<
endmsg;
355 msg(MSG::INFO) <<
"Total : " << barrelCount+endcapCount+endcapCountDBM <<
endmsg;
356 msg(MSG::INFO) <<
"MaxHash : " << maxHash <<
endmsg;
359 msg(MSG::INFO) <<
"Number of barrel elements : " << barrelCount <<
endmsg;
360 msg(MSG::INFO) <<
"Number of endcap elements : " << endcapCount <<
endmsg;
361 msg(MSG::INFO) <<
"Number of endcap elements (DBM) : " << endcapCountDBM <<
endmsg;
362 msg(MSG::INFO) <<
"Total : " << barrelCount+endcapCount+endcapCountDBM <<
endmsg;
363 msg(MSG::INFO) <<
"MaxHash : " << maxHash <<
endmsg;