18#include "GeoModelKernel/GeoMaterial.h"
19#include "GeoModelKernel/Units.h"
33#include "GaudiKernel/SystemOfUnits.h"
72 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"Using ORACLE PIXEL GEOMETRY MANAGER" <<
endmsg;
79 const std::string& detectorKey = versionKey.
tag();
80 const std::string& detectorNode = versionKey.
node();
95 msg(MSG::INFO) <<
"Retrieving Record Sets from database ..." <<
endmsg;
96 msg(MSG::INFO) <<
"Key = " << detectorKey <<
" Node = " << detectorNode <<
endmsg;
162 m_legacyManager = std::make_unique<PixelLegacyManager>(rdbSvc, detectorKey, detectorNode);
165 if(
msgLvl(MSG::INFO))
msg(MSG::INFO) <<
"... Record Sets retrieved." <<
endmsg;
258const GeoTrf::Transform3D &
283 msg(MSG::ERROR) <<
"Layer set out of bounds: " << i <<
", Setting it to 0" <<
endmsg;
292 msg(MSG::ERROR) <<
"Disk set out of bounds: " << i <<
", Setting it to 0" <<
endmsg;
301 msg(MSG::ERROR) <<
"DBM: Disk set out of bounds: " << i <<
", Setting it to 0" <<
endmsg;
328 std::ostringstream
A;
336 std::ostringstream
A;
388 if (
sc.isFailure()) {
389 msg(MSG::ERROR) <<
"Cannot retrieve PixelDetectorManager" <<
endmsg;
409 GeoIntrusivePtr<const GeoMaterial> material{
m_pMatMgr->getMaterial(mat)};
410 double rl = material->getRadLength();
411 return -1.*rl*tck/100.;
456 if(
ibl()&&isModule3D){
465 if(
ibl()&&isModule3D)
474 return 200*Gaudi::Units::micrometer;
477 if(
ibl()&&isModule3D)
495 if(
ibl()&&isModule3D)
503 if(
ibl()&&isModule3D)
511 if(
ibl()&&isModule3D)
525 if(
ibl()&&isModule3D)
533 if(
ibl()&&isModule3D)
541 if(
ibl()&&isModule3D)
560 if(
ibl()&&isModule3D)
641 }
else if(
a ==
"Central") {
654 }
else if(
a ==
"Central") {
667 }
else if(
a ==
"Central") {
682 }
else if(
a ==
"Central") {
751 return (rmin>0 && zmin > 0.000001);
768 rmax = rtmp *
mmcm();
801 if(zmin * zout > -0.000000001) {
802 zmax = zout *
mmcm();
805 double sign = (zmin > 0) ? 1: -1;
837 if (
type ==
"simple")
return "TUBE";
862 if (
type !=
"simple") {
865 std::string materialName;
870 if(
type ==
"barrel") {
883 materialName = mat[imat-1];
885 if(
type ==
"endcap") {
891 materialName = mat[imat-1];
905 if (framenum <= 0)
return index+1;
907 if(
type ==
"barrel") {
910 if(
type ==
"endcap") {
927 if (
type !=
"envelope")
return 0;
943 if (
type ==
"envelope"){
968 return (*recordSet)[
index]->getString(name);
973 return (*recordSet)[
index]->getInt(name);
979 return (*recordSet)[
index]->getDouble(name);
985 return !((*recordSet)[
index]->isFieldNull(name));
996 if (
type ==
"simple") {
998 }
else if(
type ==
"barrel") {
1001 }
else if(
type ==
"endcap") {
1004 }
else if(
type ==
"envelope") {
1008 msg(MSG::ERROR) <<
"ERROR: getPixelServiceRecord(), neither Barrel of Endcap selected!" <<
endmsg;
1015 double tck = (*m_PixelDisk)[
m_currentLD]->getDouble(
"CABLETHICK");
1104 if (!(*
m_PixelLayer)[0]->isFieldNull(
"PHIOFMODULEZERO")) version = 1;
1115 return m_materialMap->getMaterial(layerdisk, typenum, volumeName);
1128 m_materialMap->addMaterial(2,0,
"AlTube",
"pix::MatAlTubeFix");
1132 m_materialMap->addMaterial(0,0,
"GlueOmegaStave",
"pix::MatGlue");
1134 m_materialMap->addMaterial(0,0,
"PigtailCyl",
"pix::MatPigtail");
1135 m_materialMap->addMaterial(0,0,
"PigtailFlat",
"pix::MatPigtail");
1137 m_materialMap->addMaterial(0,0,
"DiskCable",
"pix::ECCables");
1145 std::ostringstream o;
1160 return static_cast<int>((*m_PixelBarrelGeneral)[0]->getDouble(
"VERSION"));
1165 return static_cast<int>(((*m_PixelBarrelGeneral)[0]->getDouble(
"VERSION") -
PixelBarrelMajorVersion())*10 + 0.5);
1170 return static_cast<int>((*m_PixelEndcapGeneral)[0]->getDouble(
"VERSION"));
1175 return static_cast<int>(((*m_PixelEndcapGeneral)[0]->getDouble(
"VERSION") -
PixelEndcapMajorVersion())*10 + 0.5);
1184 description = (*m_PixelSwitches)[0]->getString(
"DESCRIPTION");
1187 catch(std::runtime_error&) {
1197 name = (*m_PixelSwitches)[0]->getString(
"VERSIONNAME");
1200 catch(std::runtime_error&) {
1210 layout = (*m_PixelSwitches)[0]->getString(
"LAYOUT");
1213 catch(std::runtime_error&) {
1271 double zmin = (*m_PixelEnvelope)[i]->getDouble(
"Z") * Gaudi::Units::mm;
1272 if (zmin < 0)
msg(MSG::ERROR) <<
"PixelEnvelope table should only contain +ve z values" <<
endmsg;
1273 return std::abs(zmin);
1328 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"RMINSIDE") * Gaudi::Units::mm;
1333 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"RMAXSIDE") * Gaudi::Units::mm;
1338 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"SIDEWIDTH") * Gaudi::Units::mm;
1343 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"ZMIN") * Gaudi::Units::mm;
1348 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"ZMAX") * Gaudi::Units::mm;
1353 return (*
m_PixelFrame)[sectionIndex]->getDouble(
"PHISTART") * Gaudi::Units::deg;
1358 return (*
m_PixelFrame)[sectionIndex]->getInt(
"NUMSIDES");
1363 return (*
m_PixelFrame)[sectionIndex]->getInt(
"MIRRORSIDES");
1368 return (*
m_PixelFrame)[sectionIndex]->getString(
"SIDEMATERIAL");
1373 return (*
m_PixelFrame)[sectionIndex]->getString(
"CORNERMATERIAL");
1378 return (*
m_PixelFrame)[sectionIndex]->getInt(
"SECTION");
1387 int section = (*m_PixelFrameSect)[i]->getInt(
"SECTION");
1388 (*m_frameElementMap)[
section].push_back(i);
1404 msg(MSG::ERROR) <<
"Frame section " <<
section <<
" has no elements." <<
endmsg;
1406 const std::vector<int> &
vec = iter->second;
1407 if (
static_cast<unsigned int>(element) >=
vec.size()) {
1408 msg(MSG::ERROR) <<
"Element index " << element <<
" for section " <<
section <<
" out of range." <<
endmsg;
1410 newIndex =
vec[element];
1423 int numElements = 0;
1427 msg(MSG::DEBUG) <<
"Frame section " <<
section <<
" has no elements." <<
endmsg;
1429 numElements = iter->second.size();
1437 if (
index < 0)
return 0;
1444 if (
index < 0)
return 0;
1451 if (
index < 0)
return 0;
1458 if (
index < 0)
return 0;
1464 if (!
ibl())
return 0;
1466 if((*
m_PixelLayer)[layer]->isFieldNull(
"STAVEINDEX"))
return 0;
1468 catch(std::runtime_error&) {
1476 if (!
ibl())
return 0;
1477 int defaultLayout = 0;
1483 catch(std::runtime_error&) {
1484 return defaultLayout;
1491 if (!
ibl())
return 0;
1498 catch(std::runtime_error&) {
1505 double radius = (*m_PixelLayer)[
m_currentLD]->getDouble(
"RLAYER")*
mmcm();
1519 catch(std::runtime_error&) {
1533 if (
useLegacy())
return 0.9*Gaudi::Units::mm;
1548 catch(std::runtime_error&) {
1550 return 0.1*Gaudi::Units::mm;
1615 catch(std::runtime_error&) {
1629 catch(std::runtime_error&) {
1647 double halflength = (*m_PixelStave)[
index]->getDouble(
"SUPPORTHLENGTH") * Gaudi::Units::mm;
1648 if (halflength > 0)
return 2 * halflength;
1651 catch(std::runtime_error&) {
1653 double safety = 0.01*Gaudi::Units::mm;
1669 double xCenterCoolingPipe = boardThick*.5+chipThick+chipGap+
1673 GeoTrf::Vector3D centerCoolingPipe(xCenterCoolingPipe, yCenterCoolingPipe, 0.);
1676 return centerCoolingPipe;
1688 GeoTrf::Vector3D origin(0.,0.,0.);
1693 GeoTrf::Transform3D staveTrf = GeoTrf::RotateZ3D(ladderTilt)*GeoTrf::Translate3D(centerCoolingPipe_inv.x(),centerCoolingPipe_inv.y(),centerCoolingPipe_inv.z());
1694 GeoTrf::Vector3D sensorPos = staveTrf*origin;
1696 double yPos = sensorPos.y();
1697 GeoTrf::Vector3D sensorPos_layer(sqrt(layerRadius*layerRadius-yPos*yPos),yPos,0.);
1699 double staveRadius = sensorPos_layer.x()-sensorPos.x();
1711 double thickness = (*m_PixelIBLStave)[
index]->getDouble(
"FACEPLATETHICK") * Gaudi::Units::mm;
1712 if (thickness > 0)
return thickness ;
1715 catch(std::runtime_error&) {
1725 double value = (*m_PixelIBLStave)[
index]->getDouble(
"STAVEWIDTH") * Gaudi::Units::mm;
1726 if (value > 0)
return value ;
1729 catch(std::runtime_error&) {
1739 double value = (*m_PixelIBLStave)[
index]->getDouble(
"ENDBLOCKLENGTH") * Gaudi::Units::mm;
1740 if (value > 0)
return value ;
1743 catch(std::runtime_error&) {
1753 double value = (*m_PixelIBLStave)[
index]->getDouble(
"ENDBLOCKFIXINGPOS") * Gaudi::Units::mm;
1757 catch(std::runtime_error&) {
1768 double value = (*m_PixelIBLStave)[
index]->getDouble(
"ENDBLOCKOMEGAOVERLAP") * Gaudi::Units::mm;
1772 catch(std::runtime_error&) {
1783 double value = (*m_PixelIBLStave)[
index]->getDouble(
"STAVELENGTH") * Gaudi::Units::mm;
1787 catch(std::runtime_error&) {
1789 return 748.0 * Gaudi::Units::mm;
1803 catch(std::runtime_error&) {
1813 double value = (*m_PixelIBLStave)[
index]->getDouble(
"STAVETOMODULEGAP") * Gaudi::Units::mm;
1817 catch(std::runtime_error&) {
1827 double value = (*m_PixelIBLStave)[
index]->getDouble(
"TUBEOUTERDIAM") * Gaudi::Units::mm;
1828 if (value > 0)
return value ;
1831 catch(std::runtime_error&) {
1841 double value = (*m_PixelIBLStave)[
index]->getDouble(
"TUBEINNERDIAM") * Gaudi::Units::mm;
1842 if (value > 0)
return value ;
1845 catch(std::runtime_error&) {
1855 double value = (*m_PixelIBLStave)[
index]->getDouble(
"TUBEMIDDLEPOS") * Gaudi::Units::mm;
1859 catch(std::runtime_error&) {
1869 double value = (*m_PixelIBLStave)[
index]->getDouble(
"FLEXLAYERTHICK") * Gaudi::Units::mm;
1870 if (value > 0)
return value ;
1873 catch(std::runtime_error&) {
1883 double value = (*m_PixelIBLStave)[
index]->getDouble(
"FLEXBASETHICK") * Gaudi::Units::mm;
1884 if (value > 0)
return value ;
1887 catch(std::runtime_error&) {
1897 double value = (*m_PixelIBLStave)[
index]->getDouble(
"FLEXWIDTH") * Gaudi::Units::mm;
1898 if (value > 0)
return value ;
1901 catch(std::runtime_error&) {
1911 double value = (*m_PixelIBLStave)[
index]->getDouble(
"FLEXOFFSET") * Gaudi::Units::mm;
1915 catch(std::runtime_error&) {
1926 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGATHICK") * Gaudi::Units::mm;
1930 catch(std::runtime_error&) {
1940 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAENDCENTERX") * Gaudi::Units::mm;
1944 catch(std::runtime_error&) {
1953 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAENDCENTERY") * Gaudi::Units::mm;
1957 catch(std::runtime_error&) {
1966 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAENDRADIUS") * Gaudi::Units::mm;
1970 catch(std::runtime_error&) {
1979 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAENDANGLE") * Gaudi::Units::deg;
1983 catch(std::runtime_error&) {
1993 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAMIDCENTERX") * Gaudi::Units::mm;
1997 catch(std::runtime_error&) {
2007 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAMIDRADIUS") * Gaudi::Units::mm;
2011 catch(std::runtime_error&) {
2020 double value = (*m_PixelIBLStave)[
index]->getDouble(
"OMEGAOPENINGANGLE") * Gaudi::Units::deg;
2024 catch(std::runtime_error&) {
2034 int value = (*m_PixelIBLStave)[
index]->getInt(
"NMODULE");
2035 if (value > 0)
return value ;
2038 catch(std::runtime_error&) {
2054 double value = (*m_PixelIBLStave)[
index]->getDouble(
"MODULEGAP") * Gaudi::Units::mm;
2055 if (value > 0)
return value ;
2058 catch(std::runtime_error&) {
2068 int value = (*m_PixelIBLStave)[
index]->getInt(
"MODULETYPE") * Gaudi::Units::mm;
2069 if (value > 0)
return value ;
2072 catch(std::runtime_error&) {
2083 double value = (*m_PixelIBLGlueGrease)[
index]->getDouble(
"FACEPLATEGREASETHICK") * Gaudi::Units::mm;
2087 catch(std::runtime_error&) {
2098 double value = (*m_PixelIBLGlueGrease)[
index]->getDouble(
"FACEPLATEGLUETHICK") * Gaudi::Units::mm;
2102 catch(std::runtime_error&) {
2113 double value = (*m_PixelIBLGlueGrease)[
index]->getDouble(
"TUBEGLUETHICK") * Gaudi::Units::mm;
2117 catch(std::runtime_error&) {
2128 double value = (*m_PixelIBLGlueGrease)[
index]->getDouble(
"OMEGAGLUETHICK") * Gaudi::Units::mm;
2132 catch(std::runtime_error&) {
2142 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVERINGWIDTH") * Gaudi::Units::mm;
2143 if (value > 0)
return value ;
2146 catch(std::runtime_error&) {
2156 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVERINGINNERRADIUS") * Gaudi::Units::mm;
2157 if (value > 0)
return value ;
2160 catch(std::runtime_error&) {
2170 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVERINGOUTERRADIUS") * Gaudi::Units::mm;
2171 if (value > 0)
return value ;
2174 catch(std::runtime_error&) {
2185 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVERINGFIXINGPOS") * Gaudi::Units::mm;
2186 if (value > 0)
return value ;
2189 catch(std::runtime_error&) {
2199 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVEMIDRINGWIDTH") * Gaudi::Units::mm;
2200 if (value > 0)
return value ;
2203 catch(std::runtime_error&) {
2213 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVEMIDRINGINNERRADIUS") * Gaudi::Units::mm;
2214 if (value > 0)
return value;
2217 catch(std::runtime_error&) {
2227 double value = (*m_PixelIBLSupport)[
index]->getDouble(
"STAVEMIDRINGOUTERRADIUS") * Gaudi::Units::mm;
2228 if (value > 0)
return value ;
2231 catch(std::runtime_error&) {
2241 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXMIDGAP") * Gaudi::Units::mm;
2245 catch(std::runtime_error&) {
2254 return !(*m_PixelIBLFlex)[
index]->isFieldNull(
"FLEXMIDGAP");
2256 catch(std::runtime_error&) {
2267 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXDOGLEGLENGTH") * Gaudi::Units::mm;
2271 catch(std::runtime_error&) {
2281 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXWINGWIDTH") * Gaudi::Units::mm;
2285 catch(std::runtime_error&) {
2295 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXWINGTHICK") * Gaudi::Units::mm;
2299 catch(std::runtime_error&) {
2309 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXDOGLEGRATIO") * Gaudi::Units::mm;
2313 catch(std::runtime_error&) {
2320 std::string lname =
"FLEXDOGLEGHEIGHT" + std::to_string(iHeight);
2324 double value = (*m_PixelIBLFlex)[
index]->getDouble(lname) * Gaudi::Units::mm;
2328 catch(std::runtime_error&) {
2338 double value = (*m_PixelIBLFlex)[
index]->getDouble(
"FLEXDOGLEGDY") * Gaudi::Units::mm;
2342 catch(std::runtime_error&) {
2349 std::string lname =
"FLEXPP0_Z" + std::to_string(iPos);
2353 double value = (*m_PixelIBLFlex)[
index]->getDouble(lname) * Gaudi::Units::mm;
2357 catch(std::runtime_error&) {
2365 std::string lname =
"FLEXPP0_S"+std::to_string(iPos)+
"RMIN";
2369 double value = (*m_PixelIBLFlex)[
index]->getDouble(lname) * Gaudi::Units::mm;
2373 catch(std::runtime_error&) {
2380 std::string lname =
"FLEXPP0_S"+std::to_string(iPos)+
"RMAX";
2384 double value = (*m_PixelIBLFlex)[
index]->getDouble(lname) * Gaudi::Units::mm;
2388 catch(std::runtime_error&) {
2402 std::string flexTypeIdx = (*m_PixelIBLFlexMaterial)[
index]->getString(
"TYPE");
2403 if(flexTypeIdx.compare(flexType)==0)
2407 std::string matTypeIdx = (*m_PixelIBLFlexMaterial)[
index]->getString(
"MATERIALNAME");
2412 return std::string(
"noMat");
2418 double srvZmin,
double srvZmax)
2425 for(
int ii = 0; ii < numServices; ii++) {
2429 if(srvType==
"simple")
2430 name=(*m_PixelSimpleService)[ii]->getString(
"NAME");
2434 if(name.find(srvName)!=std::string::npos){
2435 double zmin, zmax,
r;
2437 if(srvType==
"simple"){
2438 zmin=(*m_PixelSimpleService)[ii]->getDouble(
"ZMIN")*Gaudi::Units::mm;
2439 zmax=(*m_PixelSimpleService)[ii]->getDouble(
"ZMAX")*Gaudi::Units::mm;
2440 symm=(*m_PixelSimpleService)[ii]->getInt(
"ZSYMM");
2441 r=(*m_PixelSimpleService)[ii]->getDouble(
"RMAX")*Gaudi::Units::mm;
2450 bool bZintervalle =
false;
2451 if( (srvZmin-zmin)*(srvZmin-zmax)<0 || (srvZmax-zmin)*(srvZmax-zmax)<0 ) bZintervalle=
true;
2452 if( symm==1 && ((-srvZmin-zmin)*(-srvZmin-zmax)<0 || (-srvZmax-zmin)*(-srvZmax-zmax)<0) ) bZintervalle=
true;
2461 if(nbSrv<1)
return -1;
2467 double srvZmin,
double srvZmax)
2474 for(
int ii = 0; ii < numServices; ii++) {
2478 if(srvType==
"simple")
2479 name=(*m_PixelSimpleService)[ii]->getString(
"NAME");
2483 if(name.find(srvName)!=std::string::npos){
2485 double zmin, zmax,
r;
2487 if(srvType==
"simple"){
2488 zmin=(*m_PixelSimpleService)[ii]->getDouble(
"ZMIN")*Gaudi::Units::mm;
2489 zmax=(*m_PixelSimpleService)[ii]->getDouble(
"ZMAX")*Gaudi::Units::mm;
2490 symm=(*m_PixelSimpleService)[ii]->getInt(
"ZSYMM");
2491 r=(*m_PixelSimpleService)[ii]->getDouble(
"RMAX")*Gaudi::Units::mm;
2500 bool bZintervalle =
false;
2501 if( (srvZmin-zmin)*(srvZmin-zmax)<0 || (srvZmax-zmin)*(srvZmax-zmax)<0 ) bZintervalle=
true;
2502 if( symm==1 && ((-srvZmin-zmin)*(-srvZmin-zmax)<0 || (-srvZmax-zmin)*(-srvZmax-zmax)<0) ) bZintervalle=
true;
2504 if(bZintervalle &&
r>rmax){
2511 if(nbSrv<1)
return -1;
2535 catch(std::runtime_error&){
2555 return (*
m_PixelStave)[staveIndex]->getDouble(
"MODULETILT")*Gaudi::Units::deg;
2572 zPosType = (*m_PixelStave)[staveIndex]->getInt(
"ZPOSTYPE");
2575 catch(std::runtime_error&){
2591 for (
unsigned int indexTmp = 0; indexTmp <
m_PixelStaveZ->size(); ++indexTmp) {
2592 int eta_module = (*m_PixelStaveZ)[indexTmp]->getInt(
"ETAMODULE");
2593 int type_tmp = (*m_PixelStaveZ)[indexTmp]->getInt(
"TYPE");
2599 msg(MSG::ERROR) <<
"Z position not found for etaModule,type = " << etaModule <<
", " <<
type <<
endmsg;
2615 if (!
ibl() || (*
m_PixelStave)[staveIndex]->isFieldNull(
"STAGGERDIST"))
return 0;
2617 catch(std::runtime_error&) {
2620 return (*
m_PixelStave)[staveIndex]->getDouble(
"STAGGERDIST") * Gaudi::Units::mm;
2627 if (!
ibl() || (*
m_PixelStave)[staveIndex]->isFieldNull(
"FIRSTSTAGGER"))
return 0;
2629 catch(std::runtime_error&) {
2633 int firstStagger = (*m_PixelStave)[staveIndex]->getInt(
"FIRSTSTAGGER");
2635 return firstStagger * (moduleIndex%2 ? -1 : 1);
2640 bool allowSkip =
true;
2644 if (!(*
m_PixelStave)[staveIndex]->isFieldNull(
"NOSKIPZERO")) {
2645 if ((*
m_PixelStave)[staveIndex]->getInt(
"NOSKIPZERO")) allowSkip =
false;
2648 catch(std::runtime_error&){
2664 int etaModule =
index-nModules/2;
2674 int index = etaModule + nModules/2;
2685 if(etaModule < 0)
return 1.;
2718 return (
int) (*m_PixelEndcapGeneral)[0]->getDouble(
"NFRAME");
2776 return (*
m_PixelTMT)[iPart]->getDouble(
"WIDTHX1") * Gaudi::Units::mm;
2782 return (*
m_PixelTMT)[iPart]->getDouble(
"WIDTHX2") * Gaudi::Units::mm;
2788 return (*
m_PixelTMT)[iPart]->getDouble(
"WIDTHY") * Gaudi::Units::mm;
2794 return (*
m_PixelTMT)[iPart]->getDouble(
"BASEX1") * Gaudi::Units::mm;
2800 return (*
m_PixelTMT)[iPart]->getDouble(
"BASEX2") * Gaudi::Units::mm;
2806 return (*
m_PixelTMT)[iPart]->getDouble(
"Y") * Gaudi::Units::mm;
2812 return (*
m_PixelTMT)[iPart]->getDouble(
"Z1") * Gaudi::Units::mm;
2818 return (*
m_PixelTMT)[iPart]->getDouble(
"Z2") * Gaudi::Units::mm;
2824 return (*
m_PixelTMT)[iPart]->getInt(
"PERMODULE");
2833 return (*
m_PixelOmega)[0]->getDouble(
"UPPERBENDX") * Gaudi::Units::mm;
2839 return (*
m_PixelOmega)[0]->getDouble(
"UPPERBENDY") * Gaudi::Units::mm;
2845 return (*
m_PixelOmega)[0]->getDouble(
"UPPERBENDR") * Gaudi::Units::mm;
2851 return (*
m_PixelOmega)[0]->getDouble(
"LOWERBENDX") * Gaudi::Units::mm;
2857 return (*
m_PixelOmega)[0]->getDouble(
"LOWERBENDY") * Gaudi::Units::mm;
2863 return (*
m_PixelOmega)[0]->getDouble(
"LOWERBENDR") * Gaudi::Units::mm;
2869 return (*
m_PixelOmega)[0]->getDouble(
"THICK") * Gaudi::Units::mm;
2875 return (*
m_PixelOmega)[0]->getDouble(
"LENGTH") * Gaudi::Units::mm;
2881 return (*
m_PixelOmega)[0]->getDouble(
"STARTY") * Gaudi::Units::mm;
2887 return (*
m_PixelOmega)[0]->getDouble(
"ENDY") * Gaudi::Units::mm;
2897 return (*
m_PixelAlTube)[0]->getDouble(
"UPPERBENDX") * Gaudi::Units::mm;
2903 return (*
m_PixelAlTube)[0]->getDouble(
"UPPERBENDY") * Gaudi::Units::mm;
2909 return (*
m_PixelAlTube)[0]->getDouble(
"UPPERBENDR") * Gaudi::Units::mm;
2915 return (*
m_PixelAlTube)[0]->getDouble(
"LOWERBENDX") * Gaudi::Units::mm;
2921 return (*
m_PixelAlTube)[0]->getDouble(
"LOWERBENDY") * Gaudi::Units::mm;
2927 return (*
m_PixelAlTube)[0]->getDouble(
"LOWERBENDR") * Gaudi::Units::mm;
2933 return (*
m_PixelAlTube)[0]->getDouble(
"THICK") * Gaudi::Units::mm;
2939 return (*
m_PixelAlTube)[0]->getDouble(
"LENGTH") * Gaudi::Units::mm;
3059 msg(MSG::ERROR) <<
"Unrecognized fluid volume type: " <<
type <<
endmsg;
3068 matType = (*m_PixelFluid)[
index]->getInt(
"MATTYPE");
3085 return (*
m_PixelPigtail)[0]->getDouble(
"THICK") * Gaudi::Units::mm;
3091 return (*
m_PixelPigtail)[0]->getDouble(
"STARTY") * Gaudi::Units::mm;
3097 return (*
m_PixelPigtail)[0]->getDouble(
"ENDY") * Gaudi::Units::mm;
3103 return (*
m_PixelPigtail)[0]->getDouble(
"WIDTHZ") * Gaudi::Units::mm;
3128 return (*
m_PixelPigtail)[0]->getDouble(
"BENDX") * Gaudi::Units::mm;
3134 return (*
m_PixelPigtail)[0]->getDouble(
"BENDY") * Gaudi::Units::mm;
3140 return (*
m_PixelPigtail)[0]->getDouble(
"BENDRMIN") * Gaudi::Units::mm;
3152 return (*
m_PixelPigtail)[0]->getDouble(
"BENDPHIMIN") * Gaudi::Units::deg;
3158 return (*
m_PixelPigtail)[0]->getDouble(
"BENDPHIMAX") * Gaudi::Units::deg;
3164 return (*
m_PixelPigtail)[0]->getDouble(
"ENVLENGTH") * Gaudi::Units::mm;
3226 msg(MSG::ERROR) <<
"ERROR in PixelReadout size. Should not occur!" <<
endmsg;
3245 msg(MSG::ERROR) <<
"ERROR in PixelReadout size. Should not occur!" <<
endmsg;
3368 if (!
ibl())
return 1;
3378 catch(std::runtime_error&) {
3397 testType = (*m_PixelGangedPixels)[i]->getInt(
"TYPE");
3400 catch(std::runtime_error&){
3402 (*m_gangedIndexMap)[testType].push_back(i);
3409 msg(MSG::ERROR) <<
"Ganged pixel type " <<
type <<
" not found." <<
endmsg;
3411 const std::vector<int> &
vec = iter->second;
3412 if (
index < 0 ||
static_cast<unsigned int>(
index) >=
vec.size()) {
3413 msg(MSG::ERROR) <<
"Ganged pixel index " <<
index <<
" for type " <<
type <<
" out of range." <<
endmsg;
3432 if (newIndex >= 0) {
3446 if (newIndex >= 0) {
3502 double pitch = (*m_PixelReadout)[
type]->getDouble(
"PITCHETALONG") * Gaudi::Units::mm;
3518 pitch = (*m_PixelReadout)[
type]->getDouble(
"PITCHETAEND") * Gaudi::Units::mm;
3521 catch(std::runtime_error&){
3580 std::ostringstream field;
3581 field <<
"SUP"<< isup+1 <<
"RMIN";
3586 std::ostringstream field;
3587 field <<
"SUP"<< isup+1 <<
"RMAX";
3595 std::ostringstream prefix;
3596 prefix <<
"SUP"<< isup+1 <<
"THICK";
3604 if (!(*
m_PixelDisk)[0]->isFieldNull(
"SUP_THICK")) {
3605 tck = (*m_PixelDisk)[0]->getDouble(
"SUP_THICK");
3609 catch(std::runtime_error&) {
3614 tck = (*m_PixelDisk)[
m_currentLD]->getDouble(prefix.str());
3618 catch(std::runtime_error&) {
3622 if (!found) tck = (*m_PixelDisk)[
m_currentLD]->getDouble(prefix.str());
3625 return tck *
mmcm();
3638 std::ostringstream prefix;
3639 prefix <<
"SUP"<< isup+1 <<
"MAT";
3646 imat = (*m_PixelDisk)[0]->getInt(
"SUP_MAT");
3650 catch(std::runtime_error&) {
3655 imat = (*m_PixelDisk)[
m_currentLD]->getInt(prefix.str());
3659 catch(std::runtime_error&) {
3663 imat = (*m_PixelDisk)[
m_currentLD]->getInt(prefix.str());
3675 return (*
m_DBMTelescope)[0]->getDouble(
"ANGLE")*Gaudi::Units::deg;
3680 return (*
m_DBMTelescope)[0]->getDouble(
"WIDTH")*Gaudi::Units::mm;
3683 return (*
m_DBMTelescope)[0]->getDouble(
"HEIGHT")*Gaudi::Units::mm;
3686 return (*
m_DBMTelescope)[0]->getDouble(
"LENGTH")*Gaudi::Units::mm;
3691 return (*
m_DBMTelescope)[0]->getDouble(
"CAGE_HEIGHT")*Gaudi::Units::mm;
3694 return (*
m_DBMTelescope)[0]->getDouble(
"CAGE_LENGTH")*Gaudi::Units::mm;
3699 return (*
m_DBMCage)[0]->getDouble(
"ZSPACING")*Gaudi::Units::mm;
3703 return (*
m_DBMCage)[0]->getDouble(
"RADIAL_SPACE_0")*Gaudi::Units::mm;
3705 return (*
m_DBMCage)[0]->getDouble(
"RADIAL_SPACE_1")*Gaudi::Units::mm;
3707 return (*
m_DBMCage)[0]->getDouble(
"RADIAL_SPACE_2")*Gaudi::Units::mm;
3709 msg(MSG::WARNING) <<
"DBMSpacingRadial() is not found" <<
endmsg;
3715 return (*
m_DBMBracket)[0]->getDouble(
"WIDTH")*Gaudi::Units::mm;
3718 return (*
m_DBMBracket)[0]->getDouble(
"HEIGHT")*Gaudi::Units::mm;
3721 return (*
m_DBMBracket)[0]->getDouble(
"THICKNESS")*Gaudi::Units::mm;
3724 return (*
m_DBMBracket)[0]->getDouble(
"TRAPEZBACK_THETA")*Gaudi::Units::deg;
3727 return (*
m_DBMBracket)[0]->getDouble(
"TRAPEZBACK_WIDTH")*Gaudi::Units::mm;
3730 return (*
m_DBMBracket)[0]->getDouble(
"TRAPEZBACK_HEIGHT")*Gaudi::Units::mm;
3733 return (*
m_DBMBracket)[0]->getDouble(
"TRAPEZBACK_ZSHORT")*Gaudi::Units::mm;
3736 return (*
m_DBMBracket)[0]->getDouble(
"WINDOW_WIDTH")*Gaudi::Units::mm;
3739 return (*
m_DBMBracket)[0]->getDouble(
"WINDOW_HEIGHT")*Gaudi::Units::mm;
3742 return (*
m_DBMBracket)[0]->getDouble(
"WINDOW_OFFSET")*Gaudi::Units::mm;
3745 return (*
m_DBMBracket)[0]->getDouble(
"WINDOW_CENTERZ")*Gaudi::Units::mm;
3748 return (*
m_DBMBracket)[0]->getDouble(
"TOPBLOCK_THICK")*Gaudi::Units::mm;
3751 return (*
m_DBMBracket)[0]->getDouble(
"SIDEBLOCK_WIDTH")*Gaudi::Units::mm;
3754 return (*
m_DBMBracket)[0]->getDouble(
"SIDEBLOCK_HEIGHT")*Gaudi::Units::mm;
3757 return (*
m_DBMBracket)[0]->getDouble(
"LOCK_THICK")*Gaudi::Units::mm;
3760 return (*
m_DBMBracket)[0]->getDouble(
"LOCK_HEIGHT")*Gaudi::Units::mm;
3763 return (*
m_DBMBracket)[0]->getDouble(
"COOLINGFIN_ZLONG")*Gaudi::Units::mm;
3766 return (*
m_DBMBracket)[0]->getDouble(
"COOLINGFIN_HEIGHT")*Gaudi::Units::mm;
3769 return (*
m_DBMBracket)[0]->getDouble(
"COOLINGFIN_THICK")*Gaudi::Units::mm;
3772 return (*
m_DBMBracket)[0]->getDouble(
"COOLINGFIN_POS")*Gaudi::Units::mm;
3777 return (*
m_DBMCage)[0]->getDouble(
"SPACING1")*Gaudi::Units::mm;
3782 return (*
m_DBMCage)[0]->getDouble(
"MAINPLATE_WIDTH")*Gaudi::Units::mm;
3785 return (*
m_DBMCage)[0]->getDouble(
"MAINPLATE_HEIGHT")*Gaudi::Units::mm;
3788 return (*
m_DBMCage)[0]->getDouble(
"MAINPLATE_THICK")*Gaudi::Units::mm;
3791 return (*
m_DBMCage)[0]->getDouble(
"MPWINDOW_WIDTH")*Gaudi::Units::mm;
3794 return (*
m_DBMCage)[0]->getDouble(
"MPWINDOW_HEIGHT")*Gaudi::Units::mm;
3797 return (*
m_DBMCage)[0]->getDouble(
"MPWINDOW_POS")*Gaudi::Units::mm;
3801 return (*
m_DBMCage)[0]->getDouble(
"SIDEPLATE_THICK")*Gaudi::Units::mm;
3804 return (*
m_DBMCage)[0]->getDouble(
"SIDEPLATE_HEIGHT")*Gaudi::Units::mm;
3807 return (*
m_DBMCage)[0]->getDouble(
"SIDEPLATE_LENGTH")*Gaudi::Units::mm;
3810 return (*
m_DBMCage)[0]->getDouble(
"SIDEPLATE_POS")*Gaudi::Units::mm;
3815 return (*
m_DBMModule)[0]->getDouble(
"DIAMOND_WIDTH")*Gaudi::Units::mm;
3818 return (*
m_DBMModule)[0]->getDouble(
"DIAMOND_HEIGHT")*Gaudi::Units::mm;
3821 return (*
m_DBMModule)[0]->getDouble(
"DIAMOND_THICK")*Gaudi::Units::mm;
3824 return (*
m_DBMModule)[0]->getDouble(
"FEI4_WIDTH")*Gaudi::Units::mm;
3827 return (*
m_DBMModule)[0]->getDouble(
"FEI4_HEIGHT")*Gaudi::Units::mm;
3830 return (*
m_DBMModule)[0]->getDouble(
"FEI4_THICK")*Gaudi::Units::mm;
3833 return (*
m_DBMModule)[0]->getDouble(
"CERAMIC_WIDTH")*Gaudi::Units::mm;
3836 return (*
m_DBMModule)[0]->getDouble(
"CERAMIC_HEIGHT")*Gaudi::Units::mm;
3839 return (*
m_DBMModule)[0]->getDouble(
"CERAMIC_THICK")*Gaudi::Units::mm;
3842 return (*
m_DBMModule)[0]->getDouble(
"AIR_GAP")*Gaudi::Units::mm;
3845 return (*
m_DBMModule)[0]->getDouble(
"KAPTONZ")*Gaudi::Units::mm;
3850 return (*
m_DBMCage)[0]->getDouble(
"FLEXSUPP_WIDTH")*Gaudi::Units::mm;
3853 return (*
m_DBMCage)[0]->getDouble(
"FLEXSUPP_HEIGHT")*Gaudi::Units::mm;
3856 return (*
m_DBMCage)[0]->getDouble(
"FLEXSUPP_THICK")*Gaudi::Units::mm;
3859 return (*
m_DBMCage)[0]->getDouble(
"FLEXSUPP_OFFSET")*Gaudi::Units::mm;
3864 return (*
m_DBMCage)[0]->getDouble(
"ROD_RADIUS")*Gaudi::Units::mm;
3868 return (*
m_DBMCage)[0]->getDouble(
"ROD2ROD_VERT")*Gaudi::Units::mm;
3871 return (*
m_DBMCage)[0]->getDouble(
"ROD2ROD_HOR")*Gaudi::Units::mm;
3876 return (*
m_DBMTelescope)[0]->getDouble(
"PP0_RIN")*Gaudi::Units::mm;
3879 return (*
m_DBMTelescope)[0]->getDouble(
"PP0_ROUT")*Gaudi::Units::mm;
3882 return (*
m_DBMTelescope)[0]->getDouble(
"PP0_THICK")*Gaudi::Units::mm;
Scalar phi() const
phi method
std::vector< size_t > vec
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
virtual double PixelConnectorWidthY(int index) override
virtual double IBLStaveLength() override
virtual int PixelServiceParentEnvelopeNum(const std::string &type, int index) override
virtual double IBLFlexPP0Rmin(int iPos) override
virtual double PixelChipLength(bool isModule3D=false) override
virtual double IBLStaveFlexWingWidth() override
virtual bool partPresent(const std::string &partName) const override
virtual int PixelServiceRepeat(const std::string &a, int _n) override
virtual double PixelLayerGlobalShift() override
virtual void SetPartsDBM() override
virtual int PixelCableElements() override
virtual double PixelBoardActiveLength(bool isModule3D=false) override
virtual double IBLStaveMechanicalStaveEndBlockFixPoint() override
std::unique_ptr< InDetDD::DistortedMaterialManager > m_distortedMatManager
virtual double PixelECCarbonRMin(std::string) override
virtual double DBMCeramicY() override
virtual double PixelModuleShiftFlag(int) override
virtual double DBMSpacingRadial() override
virtual double PixelPigtailBendPhiMax() override
virtual int DesignCellColumnsPerCircuit(bool isModule3D=false) override
IRDBRecordset_ptr m_PixelFrame
virtual double DBMMPlateWindowPos() override
virtual double DBMTrapezBackTheta() override
virtual InDetDD::SiCommonItems * commonItems() override
virtual double PixelConnectorWidthZ(int index) override
virtual double DBMPP0ROut() override
virtual int NumberOfEmptyRows(bool isModule3D=false) override
virtual double PixelHybridWidth(bool isModule3D=false) override
int GangedTableIndex(int index, int type)
virtual int PixelOmegaGlueTypeNum(int index) override
virtual double PixelBoardLength(bool isModule3D=false) override
virtual double DBMModuleCageZ() override
virtual double PixelChipOffset(bool isModule3D=false) override
virtual double PixelChipThickness(bool isModule3D=false) override
IRDBRecordset_ptr m_PixelStaveZ
virtual std::string versionDescription() const override
virtual double PixelECSiDz1() override
virtual double DBMBrcktWindowX() override
bool getPixelServiceRecordTestField(const std::string &name, const std::string &type, int index)
virtual double PixelFrameElementZMin2(int sectionIndex, int element) override
virtual double PixelDiskZPosition() override
InDetDD::PixelDetectorManager * m_pDDmgr
virtual double IBLStaveMechanicalStaveEndBlockLength() override
virtual double PixelOmegaUpperBendY() override
virtual double PixelCableWidth(int index) override
virtual int PixelServiceShift(const std::string &type, int index) override
virtual double PixelLadderSupportLength() override
virtual double PixelPigtailPosZ() override
virtual bool PixelFrameMirrorSides(int sectionIndex) override
virtual int PixelBiStaveType(int layer, int phi) override
virtual double PixelConnectorWidthX(int index) override
virtual int NPixelSectors() override
virtual double PixelPigtailPosX() override
virtual int PixelModuleServiceNumber() override
virtual void setCommonItems(InDetDD::SiCommonItems *commonItems) override
IRDBRecordset_ptr m_scalingTable
virtual std::string getMaterialName(const std::string &volumeName, int layerdisk=0, int typenum=0) override
virtual double PixelAlTubeUpperBendY() override
virtual int dbVersion() override
virtual bool PixelSimpleEnvelope() override
virtual int PixelEndcapNSupportFrames() override
int getFrameElementIndex(int sectionIndex, int element)
virtual double IBLStaveOmegaMidRadius() override
virtual double PixelPigtailBendX() override
virtual double PixelBoardWidth(bool isModule3D=false) override
virtual int PixelCableLayerNum(int index) override
virtual int PixelFrameSections() override
virtual double PixelOmegaUpperBendX() override
virtual int PixelBarrelMinorVersion() override
virtual double PixelServiceRMin(const std::string &, int) override
virtual double PixelCableWeight(int index) override
virtual double PixelFrameRMaxSide(int sectionIndex) override
virtual int EmptyRows(int index) override
virtual bool DC1Geometry() const override
IRDBRecordset_ptr m_PixelIBLFlexMaterial
double DBMAngle() override
virtual double DBMFEI4Z() override
virtual double PixelTMTBaseX1(int iPart) override
virtual double DesignPitchZLongEnd(bool isModule3D=false) override
virtual double DBMMPlateRod2RodY() override
virtual std::string versionName() const override
virtual int PixelNModule() override
virtual int PixelServiceEnvelopeNum(const std::string &type, int index) override
virtual double PixelLadderCableOffsetX() override
virtual double PixelFluidX(int index) override
virtual double PixelDiskSupportRMin(int isup) override
int getPixelServiceRecordInt(const std::string &name, const std::string &type, int index)
virtual double PixelServiceRMin2(const std::string &, int) override
virtual double PixelConnectorPosX(int index) override
virtual double PixelEndcapRMin() override
virtual double PixelDiskRMin() override
IRDBRecordset_ptr m_PixelBarrelService
virtual double DBMTrapezBackY() override
virtual int PixelFluidType(int index) override
virtual double DBMDiamondY() override
virtual double PixelOmegaUpperBendRadius() override
IRDBRecordset_ptr m_PixelFluid
virtual double IBLServiceGetMinRadialPosition(const std::string &srvName, const std::string &srvType, double srvZmin, double srvZmax) override
virtual double DBMBracketX() override
virtual double PixelLayerRadius() override
virtual int IBLStaveModuleType() override
virtual double PixelEnvelopeRMin(int i) override
virtual double DesignGapZ(bool isModule3D=false) override
virtual double DBMMPlateRod2RodX() override
virtual double DesignRPActiveArea(bool isModule3D=false) override
virtual double PixelModuleServiceOffsetX(int svc) override
virtual double DBMBracketY() override
virtual double IBLStaveFacePlateGreaseThickness() override
virtual double PixelOmegaGlueEndY(int index) override
IRDBRecordset_ptr m_PixelOmegaGlue
virtual InDetMaterialManager * getMaterialManager() override
void addDefaultMaterials()
virtual int PixelFrameNumSideElements(int sectionIndex) override
std::unique_ptr< PixelStaveTypes > m_pixelStaveTypes
virtual double PixelHalfLength() override
virtual double PixelModuleDrDistance() override
virtual double IBLStaveOmegaEndRadius() override
virtual int PixelModuleServiceModuleType(int svc) override
virtual double PixelServicePhiLoc(const std::string &a, int _n) override
virtual double PixelTMTWidthX2(int iPart) override
virtual double DBMBrcktWindowOffset() override
virtual int DesignNumChipsEta(bool isModule3D=false) override
virtual std::string PixelCableLabel(int index) override
virtual double DBMCeramicX() override
IRDBRecordset_ptr m_PixelBarrelGeneral
double CalculateThickness(double, const std::string &)
virtual double DBMBrcktLockY() override
virtual std::string PixelServiceMaterial(const std::string &, int) override
virtual double PixelEnvelopeZ(int i) override
virtual double PixelLadderWidthClearance() override
virtual int moduleType3D() override
virtual double DBMKaptonZ() override
virtual int PixelFluidIndex(int type) override
virtual int PixelEndcapNDisk() override
IRDBRecordset_ptr m_PixelPigtail
virtual double DBMTelescopeZ() override
IRDBRecordset_ptr m_PixelGangedPixels
IRDBRecordset_ptr m_PixelRing
virtual double IBLStaveModuleGap() override
virtual double DBMCoolingSidePlatePos() override
std::unique_ptr< InDetMaterialManager > m_pMatMgr
virtual double PixelFrameElementZMax1(int sectionIndex, int element) override
virtual double DesignPitchRP(bool isModule3D=false) override
virtual double IBLSupportMidRingInnerRadius() override
virtual double IBLSupportMidRingWidth() override
virtual double DBMTelescopeX() override
virtual std::string PixelFrameSideMaterial(int sectionIndex) override
int PixelFrameSectionFromIndex(int sectionIndex)
virtual int GetLD() override
virtual double IBLStaveTubeOuterDiameter() override
virtual std::string PixelServiceShape(const std::string &a, int _n) override
virtual double IBLStaveMechanicalStaveOffset(bool isModule3D=false) override
virtual double PixelOmegaGluePosZ(int index) override
virtual double DBMCoolingSidePlateZ() override
virtual double PixelAlTubeUpperBendRadius() override
virtual double PixelTMTBaseX2(int iPart) override
virtual int PixelModuleIndexFromEta(int etaModule) override
virtual double DBMMPlateWindowHeight() override
IRDBRecordset_ptr m_DBMBracket
virtual double DBMCoolingSidePlateX() override
IRDBRecordset_ptr m_PixelOmega
virtual double PixelServiceWidth(const std::string &a, int _n) override
virtual unsigned int PixelEnvelopeNumPlanes() override
IRDBRecordset_ptr m_PixelIBLFlex
virtual double DesignPitchZ(bool isModule3D=false) override
IRDBRecordset_ptr m_weightTable
virtual double IBLFlexDoglegLength() override
int designType(bool isModule3D=false)
IRDBRecordset_ptr m_PixelConnector
virtual double PixelBarrelHalfLength() override
IRDBRecordset_ptr m_DBMCage
IRDBRecordset_ptr m_PixelEnvelopeService
virtual double IBLFlexDoglegDY() override
virtual int DesignCellRowsPerCircuit(bool isModule3D=false) override
virtual int IBLStaveModuleNumber_AllPlanar() override
virtual double PixelHybridLength(bool isModule3D=false) override
virtual double PixelPigtailEnvelopeLength() override
virtual bool centerModule(int etaModule) override
virtual double PixelEndcapZMax() override
IRDBRecordset_ptr m_staveTypeTable
virtual double DBMFlexSupportZ() override
virtual int DesignCircuitsEta(bool isModule3D=false) override
IRDBRecordset_ptr m_PixelIBLStave
virtual int PixelModuleEtaFromIndex(int index) override
virtual int DesignNumChipsPhi(bool isModule3D=false) override
virtual double DesignGapRP(bool isModule3D=false) override
double getPixelServiceRecordDouble(const std::string &name, const std::string &type, int index)
IRDBRecordset_ptr m_PixelTMT
virtual double IBLSupportMechanicalStaveRingFixPoint() override
virtual double PixelLadderTilt() override
virtual double DBMBrcktSideBlockY() override
virtual double PixelAlTubeWallThickness() override
virtual bool allowSkipEtaZero() override
virtual double DBMCeramicZ() override
virtual double PixelEnvelopeRMax(int i) override
IRDBRecordset_ptr m_dbmWeightTable
virtual double PixelModuleAngleSign(int) override
virtual double DBMBrcktFinPos() override
virtual double PixelServiceRMax2(const std::string &, int) override
virtual double IBLStaveOmegaEndCenterX() override
virtual int DesignDiodeRowsPerCircuit(bool isModule3D=false) override
virtual double DBMBrcktLockZ() override
virtual double PixelBarrelRMin() override
virtual double PixelLadderServicesX() override
std::string getPixelServiceRecordString(const std::string &name, const std::string &type, int index)
virtual double PixelTMTPosY(int iPart) override
virtual double PixelHybridThickness(bool isModule3D=false) override
virtual double PixelModuleServiceOffsetY(int svc) override
virtual double PixelFluidThick1(int index) override
virtual int DesignNumColsPerChip(bool isModule3D=false) override
virtual bool detailedFrame() override
virtual double PixelOmegaLowerBendX() override
virtual double IBLStaveRadius() override
virtual double IBLStaveFlexOffset() override
IRDBRecordset_ptr m_PixelConicalStave
virtual int moduleType() override
virtual double PixelECSiDz2() override
virtual double PixelRMin() override
virtual bool ibl() const override
virtual double DBMMPlateWindowWidth() override
virtual int PixelDiskSupportMaterialTypeNum(int isup) override
IRDBRecordset_ptr m_PixelModule
virtual double IBLSupportRingWidth() override
virtual double DBMModuleCageY() override
virtual std::string PixelModuleServiceName(int svc) override
virtual double PixelModuleServiceLength(int svc) override
virtual double PixelCableZStart(int index) override
virtual std::string IBLFlexMaterial(int iPos, const std::string &flexType) override
virtual double PixelCableZEnd(int index) override
virtual double DBMBrcktFinThick() override
virtual int DesignNumEmptyRowsInGap(bool isModule3D=false) override
virtual double PixelECCarbonThickness(std::string) override
virtual int PixelDiskNumSupports() override
virtual int PixelBarrelMajorVersion() override
virtual double PixelEndcapZMin() override
IRDBRecordset_ptr m_PixelStave
virtual double DesignZActiveArea(bool isModule3D=false) override
virtual std::string PixelFluidMat(int index) override
virtual double DBMBracketZ() override
virtual double PixelModuleStaggerDistance() override
virtual double IBLStaveTubeGlueThickness() override
virtual double DBMFEI4X() override
IRDBRecordset_ptr m_PixelEndcapService
virtual double PixelPigtailStartY() override
virtual int PixelTMTNumParts() override
TMT.
virtual double IBLStaveFacePlateGlueThickness() override
virtual int PixelFluidNumTypes() override
virtual double PixelServiceZMin(const std::string &, int) override
IRDBRecordset_ptr m_PixelFrameSect
virtual double PixelFrameZMin(int sectionIndex) override
virtual double PixelLadderSupportThickness() override
virtual double PixelTMTPosZ2(int iPart) override
virtual double PixelPigtailBendY() override
virtual double IBLSupportRingInnerRadius() override
virtual double DBMAirGap() override
virtual double DBMDiamondX() override
InDetDD::SiCommonItems * m_commonItems
virtual double PixelECCarbonRMax(std::string) override
virtual double PixelOmegaLength() override
virtual double PixelECCablesDistance() override
virtual double PixelChipWidth(bool isModule3D=false) override
virtual bool isEndcap() override
virtual int PixelEndcapMinorVersion() override
IRDBRecordset_ptr m_PixelReadout
virtual double DBMTrapezBackX() override
virtual double IBLStaveOmegaThickness() override
virtual bool DoServicesOnLadder() override
virtual double DBMBrcktTopBlockZ() override
virtual std::string versionLayout() const override
virtual int PixelCableBiStaveNum(int index) override
virtual double PixelBoardThickness(bool isModule3D=false) override
virtual double PixelAlTubeUpperBendX() override
virtual double IBLStaveOmegaMidAngle() override
virtual double PixelFrameElementZMax2(int sectionIndex, int element) override
virtual std::string getLD_Label() override
virtual double PixelPigtailWidthZ() override
std::unique_ptr< InDetDD::PairIndexMap > m_zPositionMap
virtual double PixelAlTubeLowerBendX() override
virtual double DBMMainPlateZ() override
virtual PixelLegacyManager * legacyManager() override
virtual double PixelAlTubeLowerBendRadius() override
virtual int PixelNumOmegaGlueElements() override
virtual int PixelServiceElements(const std::string &) override
virtual double PixelModuleZPosition(int) override
virtual double PixelLadderSupportWidth() override
virtual const PixelID * getIdHelper() override
virtual int DesignReadoutSide(bool isModule3D=false) override
IRDBRecordset_ptr m_DBMTelescope
virtual void SetEndcap() override
virtual double DBMFlexSupportY() override
virtual int PixelEndcapMajorVersion() override
virtual int PixelServiceFrameNum(const std::string &, int) override
virtual int PixelECNSectors2() override
virtual double PixelFluidThick2(int index) override
virtual int DesignCircuitsPhi(bool isModule3D=false) override
virtual double PixelLadderLength() override
virtual double PixelPigtailEndY() override
virtual double PixelTMTWidthY(int iPart) override
virtual double PixelLadderCableOffsetY() override
virtual double PixelOmegaGlueStartX(int index) override
virtual double PixelLadderModuleDeltaZ() override
virtual double DBMBrcktFinLongZ() override
virtual double DBMBrcktWindowCenterZ() override
virtual double DBMBrcktSideBlockX() override
virtual double PixelAlTubeLength() override
virtual double PixelOmegaStartY() override
virtual int PixelFluidOrient(int layer, int phi) override
virtual double DBMTrapezBackShortZ() override
virtual bool IBLFlexAndWingDefined() override
virtual double DBMCoolingSidePlateY() override
virtual double PixelOmegaEndY() override
virtual double DBMMainPlateX() override
virtual int PixelECNSectors1() override
virtual int DesignDiodesEtaTotal(bool isModule3D=false) override
virtual double IBLStaveOmegaEndAngle() override
virtual double PixelFluidY(int index) override
virtual double DBMMainPlateY() override
virtual std::string PixelServiceName(const std::string &, int) override
IRDBRecordset_ptr m_PixelModuleSvc
virtual double PixelPigtailBendPhiMin() override
IRDBRecordset_ptr m_DBMModule
virtual double DBMPP0RIn() override
virtual int PixelFrameNumSides(int sectionIndex) override
IRDBRecordset_ptr m_materialTable
virtual double DBMRodRadius() override
virtual double PixelOmegaGlueThickness(int index) override
virtual double PixelLadderServicesY() override
IRDBRecordset_ptr m_PixelDiskRing
virtual int PixelModuleStaggerSign(int etaModule) override
virtual double DBMFEI4Y() override
virtual double PixelECCablesRMin() override
IRDBRecordset_ptr m_PixelBarrelCable
virtual int PixelStaveAxe() override
virtual double PixelServiceZMax(const std::string &, int) override
virtual double IBLStaveTubeMiddlePos() override
IRDBRecordset_ptr m_PixelSwitches
virtual double PhiOfModuleZero() override
virtual bool isLDPresent() override
virtual double DBMBrcktWindowY() override
virtual double PixelFrameSideWidth(int sectionIndex) override
IRDBRecordset_ptr m_PixelTopLevel
virtual double DBMSpacingZ() override
virtual double PixelModuleAngle() override
virtual double PixelServiceRMax(const std::string &, int) override
virtual double PixelPigtailBendRMax() override
virtual double PixelConnectorPosY(int index) override
virtual InDetDD::DistortedMaterialManager * distortedMatManager() override
virtual void SetBarrel() override
IRDBRecordset_ptr m_PixelEnvelope
virtual bool Alignable() const override
IRDBRecordset_ptr m_PixelEndcapGeneral
virtual double PixelDiskSupportThickness(int isup) override
virtual int PixelModuleServiceFullSize(int svc) override
virtual double IBLSupportMidRingOuterRadius() override
virtual int PixelNumConnectorElements() override
virtual double PixelPigtailFlatWidthZ() override
virtual double PixelTMTPosZ1(int iPart) override
virtual double PixelChipGap(bool isModule3D=false) override
DBPixelGeoManager(PixelGeoModelAthenaComps *athenaComps)
virtual bool InitialLayout() const override
virtual int EmptyRowConnections(int index) override
virtual double IBLStaveOmegaEndCenterY() override
virtual double IBLStaveMechanicalStaveModuleOffset() override
virtual double PixelECCablesRMax() override
virtual double DBMFlexSupportX() override
virtual double PixelRMax() override
virtual InDetDD::PixelDetectorManager * GetPixelDDManager() override
std::unique_ptr< std::map< int, std::vector< int > > > m_gangedIndexMap
virtual double IBLFlexMiddleGap() override
virtual int DesignNumRowsPerChip(bool isModule3D=false) override
virtual bool isDBM() override
virtual double PixelFrameElementZMin1(int sectionIndex, int element) override
virtual int IBLStaveModuleNumber() override
virtual double PixelBarrelRMax() override
virtual IRDBRecordset_ptr getPixelServiceRecordset(const std::string &type) override
virtual double IBLStaveFlexWidth() override
virtual const GeoTrf::Transform3D & partTransform(const std::string &partName) const override
virtual double IBLFlexDoglegHeight(int iHeight) override
virtual double IBLStaveFacePlateThickness() override
virtual double DBMDiamondZ() override
double PixelModuleZPositionTabulated(int etaModule, int type)
virtual double IBLStaveTubeInnerDiameter() override
virtual std::string PixelFrameCornerMaterial(int sectionIndex) override
virtual double PixelFluidWidth(int index) override
virtual double PixelECCablesThickness() override
virtual double DBMPP0Thick() override
virtual double DBMSpace() override
virtual double PixelFluidZ1(int index) override
virtual int PixelServiceLD(const std::string &, int) override
virtual double PixelOmegaLowerBendRadius() override
virtual int DesignDiodeColumnsPerCircuit(bool isModule3D=false) override
IRDBRecordset_ptr m_PixelAlTube
virtual double IBLStaveFlexBaseThickness() override
virtual double IBLFlexPP0Rmax(int iPos) override
virtual double IBLFlexDoglegRatio() override
virtual double PixelOmegaLowerBendY() override
virtual double PixelAlTubeLowerBendY() override
IRDBRecordset_ptr m_PixelSimpleService
virtual int PixelStaveLayout() override
virtual double IBLServiceGetMaxRadialPosition(const std::string &srvName, const std::string &srvType, double srvZmin, double srvZmax) override
virtual double IBLStaveMechanicalStaveEndBlockOmegaOverlap() override
virtual double PixelPigtailBendRMin() override
virtual GeoTrf::Vector3D IBLStaveRotationAxis() override
virtual double IBLStaveMechanicalStaveWidth() override
std::unique_ptr< PixelMaterialMap > m_materialMap
virtual double PixelFrameRMinSide(int sectionIndex) override
IRDBRecordset_ptr m_PixelDisk
std::unique_ptr< PixelLegacyManager > m_legacyManager
virtual double PixelPigtailThickness() override
virtual bool DoServices() override
virtual double PixelCableThickness(int index) override
virtual int DesignDiodesPhiTotal(bool isModule3D=false) override
virtual bool oldFrame() override
virtual double PixelLadderBentStaveAngle() override
virtual double IBLStaveOmegaGlueThickness() override
virtual double PixelConnectorPosZ(int index) override
virtual double PixelFluidZ2(int index) override
virtual bool PixelServiceZsymm(const std::string &, int) override
virtual double PixelDiskSupportRMax(int isup) override
IRDBRecordset_ptr m_PixelCommon
virtual bool PixelTMTPerModule(int iPart) override
bool isInnermostPixelLayer()
virtual double IBLStaveFlexWingThick() override
virtual double PixelModuleServiceThick(int svc) override
IRDBRecordset_ptr m_PixelLayer
virtual double PixelOmegaGlueStartY(int index) override
virtual double DesignPitchZLong(bool isModule3D=false) override
IRDBRecordset_ptr m_PixelIBLGlueGrease
virtual double PixelCableStackOffset(int index) override
virtual double DBMBrcktFinHeight() override
std::unique_ptr< std::map< int, std::vector< int > > > m_frameElementMap
virtual void SetDC1Geometry(bool flag) override
virtual int PixelBarrelNLayer() override
virtual double PixelOmegaGlueLength(int index) override
virtual double PixelOmegaWallThickness() override
virtual double PixelModuleServiceOffsetZ(int svc) override
virtual std::string PixelModuleServiceMaterial(int svc) override
virtual int PixelStaveIndex(int layer) override
virtual bool isBarrel() override
virtual double IBLFlexPP0Z(int iPos) override
virtual double DBMTelescopeY() override
virtual double PixelModuleServiceWidth(int svc) override
virtual int PixelBentStaveNModule() override
virtual double PixelLadderThicknessClearance() override
IRDBRecordset_ptr m_PixelIBLSupport
double m_defaultLengthUnit
virtual double DBMFlexSupportOffset() override
virtual double IBLStaveFlexLayerThickness() override
virtual double PixelLadderThickness() override
virtual double PixelTMTWidthX1(int iPart) override
virtual double IBLSupportRingOuterRadius() override
virtual double PixelFramePhiStart(int sectionIndex) override
std::unique_ptr< TopLevelPlacements > m_placements
virtual double PixelEndcapRMax() override
virtual int PixelECCarbonMaterialTypeNum(std::string) override
virtual double IBLStaveOmegaMidCenterX() override
virtual double PixelFrameZMax(int sectionIndex) override
virtual void SetCurrentLD(int i) override
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
const std::string & tag() const
Return version tag.
const std::string & node() const
Return the version node.
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
virtual std::string getChildTag(const std::string &childNode, const std::string &parentTag, const std::string &parentNode, const std::string &connName="ATLASDD")=0
Gets the tag name for the node by giving its parent node tag.
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
const StoreGateSvc * detStore() const
IRDBAccessSvc * rdbAccessSvc()
const IGeoDbTagSvc * geoDbTagSvc() const
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
Class to hold various Athena components.
const PixelID * getIdHelper() const
PixelGeoModelAthenaComps * athenaComps()
PixelGeometryManager(PixelGeoModelAthenaComps *athenaComps)
bool msgLvl(MSG::Level lvl) const
This is an Identifier helper class for the Pixel subdetector.
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
std::string description
glabal timer - how long have I taken so far?
=============================================================================
hold the test vectors and ease the comparison