42{
43 GeoFullPhysVol* Phys{nullptr};
45 double safety = 0.001;
46
47
48 double rmin = 45.*Gaudi::Units::mm;
49 double rmax = 150.*Gaudi::Units::mm;
50 double halflength =
m_gmt_mgr->DBMTelescopeZ()/2.;
51 GeoTube * Shape = new GeoTube(rmin,rmax,halflength);
52 const GeoMaterial* air =
m_mat_mgr->getMaterial(
"std::Air");
53 const GeoLogVol* Log = new GeoLogVol("OutsideDBM",Shape,air);
54 Phys = new GeoFullPhysVol(Log);
55
56
58 GeoVPhysVol* pp0BoardPhys = pp0Board.Build();
59 GeoTrf::Translate3D pp0Pos(0., 0., -halflength +
m_gmt_mgr->DBMPP0Thick()/2. + safety);
60 GeoTransform* pp0xform = new GeoTransform(pp0Pos);
61 GeoNameTag* pp0tag = new GeoNameTag("DBM_PP0");
62 Phys->add(pp0tag);
63 Phys->add(pp0xform);
64 Phys->add(pp0BoardPhys);
65 }
66
67
69 for(
int i=0;
i<4;
i++)
70 {
73
74
77
78
80 dbm.Build();
81 }
82 else {
83 GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(
m_module[i].at(5)*Gaudi::Units::deg)
84 * GeoTrf::RotateY3D(
m_module[i].at(4)*Gaudi::Units::deg)
85 * GeoTrf::RotateX3D(
m_module[i].at(3)*Gaudi::Units::deg);
87 GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm));
88
89 GeoNameTag*
tag =
new GeoNameTag(
"DBM Module");
90 GeoVPhysVol* dbmModPhys = dbm.Build();
91 Phys->add(tag);
92 Phys->add(new GeoIdentifierTag(i));
93 Phys->add(xform);
94 Phys->add(dbmModPhys);
95 }
96 }
97
98
99
100
101 if(
m_DDmgr->numerology().numEndcapsDBM()==0){
102
103 int numDisk=3;
104 int numPhiModules=4;
105 m_DDmgr->numerology().setNumDisksDBM(numDisk);
106 m_DDmgr->numerology().setNumBarrelDBM(0);
107 m_DDmgr->numerology().addEndcapDBM(4);
108 m_DDmgr->numerology().addEndcapDBM(-4);
109 for(int disk=0; disk<numDisk; disk++){
110 m_DDmgr->numerology().setNumPhiModulesForDiskRingDBM(disk, 0, numPhiModules);
111 }
112 }
113
117 }
118 else {
119 return Phys;
120 }
121}
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
GeoModelIO::ReadGeoModel * m_sqliteReader
InDetDD::PixelDetectorManager * m_DDmgr
InDetMaterialManager * m_mat_mgr