6#include "GeoModelKernel/GeoBox.h"
7#include "GeoModelKernel/GeoLogVol.h"
8#include "GeoModelKernel/GeoPhysVol.h"
9#include "GeoModelKernel/GeoMaterial.h"
16 GeoModelIO::ReadGeoModel* sqliteReader,
17 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
18 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
31 int nentries =
m_gmt_mgr->PixelCableElements();
32 int biStaveType =
m_gmt_mgr->PixelBiStaveType(layer, phiSector);
34 for (
int i = 0; i < nentries; i++) {
40 int cableBiStaveNum =
m_gmt_mgr->PixelCableBiStaveNum(i);
41 if (
m_gmt_mgr->PixelCableLayerNum(i) == layer) {
42 if (!cableBiStaveNum || ((cableBiStaveNum%2) == biStaveType%2)) {
53 std::cout <<
"ERROR: GeoPixelCableCurrent, current element not set." << std::endl;
61 double zstart =
m_gmt_mgr->PixelCableZStart(tableIndex);
62 double zend =
m_gmt_mgr->PixelCableZEnd(tableIndex);
63 double length = std::abs(zend - zstart);
65 double thickness =
m_gmt_mgr->PixelCableThickness(tableIndex);
66 double weight =
m_gmt_mgr->PixelCableWeight(tableIndex);
70 const GeoMaterial* cableMat =
m_mat_mgr->getMaterial(matName);
75 thickness = weight / (cableMat->getDensity() *
length *
width);
78 const GeoBox* cableBox =
new GeoBox(0.5*thickness,0.5*
width,0.5*
length);
79 std::string logName =
"Cable";
82 logName = logName+o.str();
85 GeoLogVol* theCable =
new GeoLogVol(logName,cableBox,cableMat);
86 GeoPhysVol* cablePhys =
new GeoPhysVol(theCable);
94 double zstart =
m_gmt_mgr->PixelCableZStart(tableIndex);
95 double zend =
m_gmt_mgr->PixelCableZEnd(tableIndex);
96 return 0.5*(zend + zstart);
101 return m_gmt_mgr->PixelCableStackOffset(tableIndex);
virtual GeoVPhysVol * Build() override
GeoPixelCable(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)
void fillElements(int layer, int phiSector)
std::vector< int > m_elements
PixelGeometryManager * m_gmt_mgr
InDetMaterialManager * m_mat_mgr
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)
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
std::string label(const std::string &format, int i)