|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include "GeoModelKernel/GeoBox.h"
14 #include "GeoModelKernel/GeoTube.h"
15 #include "GeoModelKernel/GeoSimplePolygonBrep.h"
16 #include "GeoModelKernel/GeoLogVol.h"
17 #include "GeoModelKernel/GeoPhysVol.h"
18 #include "GeoModelKernel/GeoMaterial.h"
19 #include "GeoModelKernel/GeoNameTag.h"
20 #include "GaudiKernel/SystemOfUnits.h"
29 GeoModelIO::ReadGeoModel* sqliteReader,
30 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
31 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
37 m_ringPosition (
"AC"),
38 m_ringName (
"staveRing")
43 const std::string& ringPos)
57 bool isBLayer =
false;
80 double endBlockPosition = totalStaveLength*0.5+endBlockFixingPoint;
81 double ringPosition = -ringWidth*0.5+fixingPoint;
94 GeoLogVol * logVol =
nullptr;
95 if(ring_material_weight)
96 logVol =
new GeoLogVol(
m_ringName,ring_tube,ring_material_weight);
99 logVol =
new GeoLogVol(
m_ringName,ring_tube,ring_material);
101 GeoPhysVol * logVolPV =
new GeoPhysVol(logVol);
102 m_gmt_mgr->
msg(MSG::INFO) <<
"Build detailed stave ring support - logVol : "<<logVol->getName()<<
endmsg;
117 GeoLogVol *logVol=
nullptr;
118 if(ring_material_weight)
119 logVol =
new GeoLogVol(
m_ringName,ring_tube,ring_material_weight);
122 logVol =
new GeoLogVol(
m_ringName,ring_tube,ring_material);
125 GeoPhysVol * logVolPV =
new GeoPhysVol(logVol);
127 m_gmt_mgr->
msg(MSG::INFO) <<
"Build detailed stave ring support - logVol : "<<logVol->getName()<<
endmsg;
std::string m_ringPosition
virtual double IBLSupportMidRingOuterRadius()=0
virtual double IBLSupportRingInnerRadius()=0
MsgStream & msg(MSG::Level lvl) const
GeoPixelStaveRing(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)
virtual double IBLSupportMidRingWidth()=0
GeoVPhysVol * SetParametersAndBuild(const std::string &, const std::string &)
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
virtual double IBLSupportRingOuterRadius()=0
GeoModelIO::ReadGeoModel * m_sqliteReader
virtual double IBLSupportMidRingInnerRadius()=0
InDetDD::PixelDetectorManager * m_DDmgr
PixelGeometryManager * m_gmt_mgr
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
virtual double IBLServiceGetMaxRadialPosition(const std::string &srvName, const std::string &srvType, double srvZmin, double srvZmax)=0
const GeoMaterial * getMaterialForVolume(const std::string &materialName, double volume, const std::string &newName="")
Create and get material with a density calculated to give weight in predefined weight table.
virtual double IBLSupportRingWidth()=0
virtual double IBLStaveLength()=0
InDetMaterialManager * m_mat_mgr
virtual double IBLSupportMechanicalStaveRingFixPoint()=0
virtual GeoVPhysVol * Build() override
virtual double IBLStaveMechanicalStaveEndBlockFixPoint()=0
This is the base class for all the pieces of the Pixel detector.
const GeoMaterial * getMaterial(const std::string &materialName)
Get material. First looks for locally defined material and if not found looks in GeoModel material ma...