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 541 of file PixelDetectorDC1DC2.cxx.

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

◆ GeoVPixelFactory()

GeoVPixelFactory::GeoVPixelFactory

Definition at line 45 of file PixelDetectorDC1DC2.cxx.

1537  :
1538  m_gmt_mgr (mgr),
1540  m_DDmgr (ddmgr),
1541  m_epsilon(0.0001)
1542 {
1543 }

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:126
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:1133
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:18
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:24
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