ATLAS Offline Software
Loading...
Searching...
No Matches
PixelGeoDC2::GeoPixelSubDisk Class Reference

#include <PixelDetectorDC1DC2.h>

Inheritance diagram for PixelGeoDC2::GeoPixelSubDisk:
Collaboration diagram for PixelGeoDC2::GeoPixelSubDisk:

Public Member Functions

 GeoPixelSubDisk (InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
virtual ~GeoPixelSubDisk ()=default
 GeoPixelSubDisk (const GeoPixelSubDisk &)=delete
GeoPixelSubDiskoperator= (const GeoPixelSubDisk &)=delete
virtual GeoVPhysVol * Build () override
double Thickness ()
double RMax ()
double RMin ()

Protected Attributes

PixelGeometryManagerm_gmt_mgr {}
StoredMaterialManagerm_mat_mgr {}
InDetDD::PixelDetectorManagerm_DDmgr {}
const double m_epsilon {}

Private Attributes

GeoPixelSiCrystalm_theSensor
GeoIntrusivePtr< GeoLogVol > m_theSubDisk

Detailed Description

Definition at line 334 of file PixelDetectorDC1DC2.h.

Constructor & Destructor Documentation

◆ GeoPixelSubDisk() [1/2]

GeoPixelSubDisk::GeoPixelSubDisk ( InDetDD::PixelDetectorManager * ddmgr,
PixelGeometryManager * mgr,
GeoPixelSiCrystal & theSensor )

Definition at line 1351 of file PixelDetectorDC1DC2.cxx.

1354 : GeoVPixelFactory (ddmgr, mgr),
1355 m_theSensor(theSensor)
1356{
1357 //
1358 // Define the log volume in the constructor, so I do it only once.
1359 //
1360
1361 //
1362 // Dimensions from class methods.
1363 //
1364 double rmin = RMin();
1365 double rmax = RMax();
1366 double halflength = Thickness()/2.;
1367 const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air");
1368 const GeoTubs* SDTubs = new GeoTubs(rmin,rmax,halflength,-180.*Gaudi::Units::deg/m_gmt_mgr->PixelECNSectors1()+0.000005,360.*Gaudi::Units::deg/m_gmt_mgr->PixelECNSectors1()-0.00001);
1369 m_theSubDisk = new GeoLogVol("SubDiskLog",SDTubs,air);
1370
1371}
GeoIntrusivePtr< GeoLogVol > m_theSubDisk
StoredMaterialManager * m_mat_mgr
PixelGeometryManager * m_gmt_mgr
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)

◆ ~GeoPixelSubDisk()

virtual PixelGeoDC2::GeoPixelSubDisk::~GeoPixelSubDisk ( )
virtualdefault

◆ GeoPixelSubDisk() [2/2]

PixelGeoDC2::GeoPixelSubDisk::GeoPixelSubDisk ( const GeoPixelSubDisk & )
delete

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelSubDisk::Build ( )
overridevirtual

Implements PixelGeoDC2::GeoVPixelFactory.

Definition at line 1374 of file PixelDetectorDC1DC2.cxx.

1374 {
1375 GeoFullPhysVol* SDPhys = new GeoFullPhysVol(m_theSubDisk);
1376 //
1377 // Place the Si Crystal
1378 //
1379 double xpos = RMin()+m_gmt_mgr->PixelBoardLength()/2.;
1380 GeoNameTag* tag = new GeoNameTag("SiCrystal");
1381 GeoTrf::Transform3D rm = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*GeoTrf::RotateY3D(90.*Gaudi::Units::deg);
1382 GeoTrf::Translation3D pos(xpos,0.,0.);
1383 GeoAlignableTransform* xformsi = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm));
1384 SDPhys->add(tag);
1385 SDPhys->add(new GeoIdentifierTag(200) );
1386 SDPhys->add(xformsi);
1387 SDPhys->add(m_theSensor.Build() );
1388 //
1389 // Place the Hybrid
1390 //
1391 GeoPixelHybrid ph (m_DDmgr, m_gmt_mgr);
1392 tag = new GeoNameTag("Hybrid");
1393 double zpos = 0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelHybridThickness())+m_epsilon/2.;
1394 pos = GeoTrf::Translation3D(xpos,0.,zpos);
1395 GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm) );
1396 SDPhys->add(tag);
1397 SDPhys->add(xform);
1398 SDPhys->add(ph.Build() );
1399//
1400// Place the Chip
1401//
1402 GeoPixelChip pc (m_DDmgr, m_gmt_mgr);
1403 tag = new GeoNameTag("Chip");
1404 zpos = -0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelChipThickness())-m_gmt_mgr->PixelChipGap();
1405 pos = GeoTrf::Translation3D(xpos,0.,zpos);
1406 xform = new GeoTransform(GeoTrf::Transform3D(pos*rm) );
1407 SDPhys->add(tag);
1408 SDPhys->add(xform);
1409 SDPhys->add(pc.Build() );
1410 return SDPhys;
1411}
InDetDD::PixelDetectorManager * m_DDmgr

◆ operator=()

GeoPixelSubDisk & PixelGeoDC2::GeoPixelSubDisk::operator= ( const GeoPixelSubDisk & )
delete

◆ RMax()

double GeoPixelSubDisk::RMax ( )

Definition at line 1418 of file PixelDetectorDC1DC2.cxx.

1418 {
1419 return RMin()+sqrt(pow(m_gmt_mgr->PixelBoardLength(),2)+pow(m_gmt_mgr->PixelBoardWidth(),2));
1420}
constexpr int pow(int base, int exp) noexcept

◆ RMin()

double GeoPixelSubDisk::RMin ( )

Definition at line 1414 of file PixelDetectorDC1DC2.cxx.

1414 {
1415 return m_gmt_mgr->PixelDiskRMin()-0.5*(m_gmt_mgr->PixelBoardLength()-m_gmt_mgr->PixelBoardActiveLen());
1416}

◆ Thickness()

double GeoPixelSubDisk::Thickness ( )

Definition at line 1422 of file PixelDetectorDC1DC2.cxx.

1422 {
1423 //
1424 // This is the sum of the Thickness of the board + twice the maximum
1425 // b/w the thickness of the hybrid and that of the electronics
1426 // twice for symmetric placement.
1427 //
1428
1429 return m_gmt_mgr->PixelBoardThickness()+2*std::max(m_gmt_mgr->PixelHybridThickness(),m_gmt_mgr->PixelChipThickness())+2*m_epsilon;
1430}

Member Data Documentation

◆ m_DDmgr

InDetDD::PixelDetectorManager* PixelGeoDC2::GeoVPixelFactory::m_DDmgr {}
protectedinherited

Definition at line 53 of file PixelDetectorDC1DC2.h.

53{};

◆ m_epsilon

const double PixelGeoDC2::GeoVPixelFactory::m_epsilon {}
protectedinherited

Definition at line 54 of file PixelDetectorDC1DC2.h.

54{};

◆ m_gmt_mgr

PixelGeometryManager* PixelGeoDC2::GeoVPixelFactory::m_gmt_mgr {}
protectedinherited

Definition at line 51 of file PixelDetectorDC1DC2.h.

51{};

◆ m_mat_mgr

StoredMaterialManager* PixelGeoDC2::GeoVPixelFactory::m_mat_mgr {}
protectedinherited

Definition at line 52 of file PixelDetectorDC1DC2.h.

52{};

◆ m_theSensor

GeoPixelSiCrystal& PixelGeoDC2::GeoPixelSubDisk::m_theSensor
private

Definition at line 347 of file PixelDetectorDC1DC2.h.

◆ m_theSubDisk

GeoIntrusivePtr<GeoLogVol> PixelGeoDC2::GeoPixelSubDisk::m_theSubDisk
private

Definition at line 348 of file PixelDetectorDC1DC2.h.


The documentation for this class was generated from the following files: