ATLAS Offline Software
Public Member Functions | Protected Attributes | List of all members
PixelGeoDC2::GeoPixelEnvelope Class Reference

#include <PixelDetectorDC1DC2.h>

Inheritance diagram for PixelGeoDC2::GeoPixelEnvelope:
Collaboration diagram for PixelGeoDC2::GeoPixelEnvelope:

Public Member Functions

virtual GeoVPhysVol * Build () override
 
 GeoVPixelFactory (InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
 

Protected Attributes

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

Detailed Description

Definition at line 188 of file PixelDetectorDC1DC2.h.

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelEnvelope::Build ( )
overridevirtual

Implements PixelGeoDC2::GeoVPixelFactory.

Definition at line 543 of file PixelDetectorDC1DC2.cxx.

543  {
544  //
545  // create the External volume where I'll put all the pixel detector
546  //
547  double rmin = m_gmt_mgr->PixelRMin();
548  double rmax = m_gmt_mgr->PixelRMax();
549  double halflength = m_gmt_mgr->PixelHalfLength();
550  //std::cout << "Material Manager " << m_mat_mgr << std::endl;
551  const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air");
552  const GeoTube* envelopeTube = new GeoTube(rmin,rmax,halflength);
553  const GeoLogVol* envelopeLog = new GeoLogVol("Pixel",envelopeTube,air);
554  GeoFullPhysVol* envelopePhys = new GeoFullPhysVol(envelopeLog);
555  //
556  // Add the Barrel:
557  //
559  m_gmt_mgr->SetBarrel();
561  GeoNameTag* tag = new GeoNameTag("Barrel");
562  GeoVPhysVol* barrelPhys = brl.Build() ;
563  envelopePhys->add(tag);
564  envelopePhys->add(new GeoIdentifierTag(0));
565  envelopePhys->add(barrelPhys );
566  if(m_gmt_mgr->DoServices() ) {
567  //
568  // Add the Barrel services outside the barrel volume
569  //
570  GeoPixelServices brlsvc = GeoPixelServices(m_DDmgr, m_gmt_mgr, "/Pixel");
571  for(int ii =0; ii< brlsvc.NCylinders(); ii++) {
572  brlsvc.SetCylinder(ii);
573  GeoNameTag* tag = new GeoNameTag("Outside Barrel Service");
574  GeoTrf::Translate3D pos(0.,0.,brlsvc.ZPos() );
575  GeoTransform* xform = new GeoTransform(pos);
576  envelopePhys->add(tag);
577  envelopePhys->add(new GeoIdentifierTag(ii) );
578  envelopePhys->add(xform);
579  envelopePhys->add(brlsvc.Build() );
580  }
581  }
582  //
583  // Add the EndCaps
584  //
587  m_gmt_mgr->SetEndcap();
588  m_gmt_mgr->SetPos();
590  double zpos = (m_gmt_mgr->PixelEndcapZMax()+m_gmt_mgr->PixelEndcapZMin())/2.;
591  GeoTrf::Translate3D pos(0.,0.,zpos);
592  GeoTransform* xform = new GeoTransform(pos);
593  tag = new GeoNameTag("EndCap 1");
594  envelopePhys->add(tag);
595  envelopePhys->add(new GeoIdentifierTag(2));
596  envelopePhys->add(xform);
597  envelopePhys->add(pec.Build() );
598  m_gmt_mgr->SetNeg();
599  GeoTrf::RotateX3D rm(180.*Gaudi::Units::deg);
600  xform = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translation3D(0.,0.,-zpos)*rm));
601  tag = new GeoNameTag("EndCap 2");
602  envelopePhys->add(tag);
603  envelopePhys->add(new GeoIdentifierTag(-2));
604  envelopePhys->add(xform);
605  envelopePhys->add(pec.Build() );
606  if(m_gmt_mgr->DoServices() ) {
607  //
608  // Add the Endcap services outside the EC volume
609  //
611  for(int ii =0; ii< ecsvc.NCylinders(); ii++) {
612  ecsvc.SetCylinder(ii);
613  GeoNameTag* tag = new GeoNameTag("Outside Endcap Service");
614  GeoTrf::Translate3D pos(0.,0.,ecsvc.ZPos() );
615  GeoTransform* xform = new GeoTransform(pos);
616  envelopePhys->add(tag);
617  envelopePhys->add(xform);
618  envelopePhys->add(new GeoIdentifierTag(ii) );
619  envelopePhys->add(ecsvc.Build() );
620  }
621  }
622  return envelopePhys;
623 
624  //
625  // Want other stuff?
626  //
627  // GeoPixelLadder brl;
628  // GeoPixelTubeCables brl;
629  // GeoPixelModule brl;
630 
631 
632 }

◆ GeoVPixelFactory()

GeoVPixelFactory::GeoVPixelFactory

Definition at line 45 of file PixelDetectorDC1DC2.cxx.

1551  :
1552  m_gmt_mgr (mgr),
1554  m_DDmgr (ddmgr),
1555  m_epsilon(0.0001)
1556 {
1557 }

Member Data Documentation

◆ m_DDmgr

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

Definition at line 53 of file PixelDetectorDC1DC2.h.

◆ m_epsilon

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

Definition at line 54 of file PixelDetectorDC1DC2.h.

◆ m_gmt_mgr

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

Definition at line 51 of file PixelDetectorDC1DC2.h.

◆ m_mat_mgr

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

Definition at line 52 of file PixelDetectorDC1DC2.h.


The documentation for this class was generated from the following files:
PixelGeoDC2::PixelGeometryManager::DoServices
virtual bool DoServices()=0
PixelGeoDC2::GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: PixelDetectorDC1DC2.h:51
InDetDD::SiDetectorManager::numerology
const SiNumerology & numerology() const
Access Numerology.
Definition: SiDetectorManager.h:128
PixelGeoDC2::GeoVPixelFactory::m_DDmgr
InDetDD::PixelDetectorManager * m_DDmgr
Definition: PixelDetectorDC1DC2.h:53
PixelGeoDC2::GeoVPixelFactory::m_epsilon
const double m_epsilon
Definition: PixelDetectorDC1DC2.h:54
PixelGeoDC2::GeoPixelServices::Build
virtual GeoVPhysVol * Build() override
Definition: PixelDetectorDC1DC2.cxx:1135
InDetDD::SiNumerology::addEndcap
void addEndcap(int id)
Definition: SiNumerology.cxx:102
deg
#define deg
Definition: SbPolyhedron.cxx:17
PixelGeoDC2::GeoVPixelFactory::m_mat_mgr
StoredMaterialManager * m_mat_mgr
Definition: PixelDetectorDC1DC2.h:52
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
PixelGeoDC2::PixelGeometryManager::SetNeg
virtual void SetNeg()=0
PixelGeoDC2::PixelGeometryManager::getMaterialManager
virtual StoredMaterialManager * getMaterialManager()=0
PixelGeoDC2::PixelGeometryManager::SetPos
virtual void SetPos()=0
PixelGeoDC2::PixelGeometryManager::SetBarrel
virtual void SetBarrel()=0
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
PixelGeoDC2::PixelGeometryManager::SetEndcap
virtual void SetEndcap()=0
PixelGeoDC2::PixelGeometryManager::PixelEndcapZMin
virtual double PixelEndcapZMin()=0
PixelGeoDC2::GeoPixelBarrel
Definition: PixelDetectorDC1DC2.h:68
PixelGeoDC2::GeoPixelServices::NCylinders
int NCylinders()
Definition: PixelDetectorDC1DC2.h:290
PixelGeoDC2::GeoPixelServices::ZPos
double ZPos()
Definition: PixelDetectorDC1DC2.h:292
PixelGeoDC2::PixelGeometryManager::PixelRMax
virtual double PixelRMax()=0
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
PixelGeoDC2::PixelGeometryManager::PixelEndcapZMax
virtual double PixelEndcapZMax()=0
PixelGeoDC2::GeoPixelServices
Definition: PixelDetectorDC1DC2.h:284
PixelGeoDC2::GeoPixelEndCap
Definition: PixelDetectorDC1DC2.h:176
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
PixelGeoDC2::GeoPixelServices::SetCylinder
void SetCylinder(int n)
Definition: PixelDetectorDC1DC2.h:291
PixelGeoDC2::PixelGeometryManager::PixelHalfLength
virtual double PixelHalfLength()=0
PixelGeoDC2::PixelGeometryManager::PixelRMin
virtual double PixelRMin()=0
InDetDD::SiNumerology::addBarrel
void addBarrel(int id)
Definition: SiNumerology.cxx:97