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

#include <PixelDetectorDC1DC2.h>

Inheritance diagram for PixelGeoDC2::GeoPixelEndCap:
Collaboration diagram for PixelGeoDC2::GeoPixelEndCap:

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 176 of file PixelDetectorDC1DC2.h.

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelEndCap::Build ( )
overridevirtual

Implements PixelGeoDC2::GeoVPixelFactory.

Definition at line 451 of file PixelDetectorDC1DC2.cxx.

451  {
452 
453  //
454  // create the Barrel Mother volume
455  //
456  double rmin = m_gmt_mgr->PixelEndcapRMin();
457  double rmax = m_gmt_mgr->PixelEndcapRMax();
458  double halflength = (m_gmt_mgr->PixelEndcapZMax()-m_gmt_mgr->PixelEndcapZMin())/2.;
459  const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air");
460  const GeoTube* ecTube = new GeoTube(rmin,rmax,halflength);
461  const GeoLogVol* ecLog = new GeoLogVol("EndCapLog",ecTube,air);
462  GeoPhysVol* ecPhys = new GeoPhysVol(ecLog);
463 
464  // Set numerology
466 
467  //
468  // Place the disks and cables on both sides
469  //
472  for(int ii = 0; ii < m_gmt_mgr->PixelEndcapNDisk(); ii++) {
473  m_gmt_mgr->SetCurrentLD(ii);
474  if(m_gmt_mgr->isLDPresent()) {
475  //
476  // The position is given w.r.t to the center of the detector!
477  //
478  // position of the endcap
479  double ecz = (m_gmt_mgr->PixelEndcapZMax()+m_gmt_mgr->PixelEndcapZMin())/2.;
480  //position of the disk
481  double zdisk = m_gmt_mgr->PixelDiskPosition()-ecz;
482  // place the disk
483  GeoTrf::Translate3D pos(0.,0.,zdisk);
484  GeoNameTag* tag = new GeoNameTag("Disk");
485  GeoAlignableTransform* xform = new GeoAlignableTransform(pos);
486  GeoVPhysVol * diskPhys = pd.Build();
487  ecPhys->add(tag);
488  ecPhys->add(new GeoIdentifierTag(ii));
489  ecPhys->add(xform);
490  ecPhys->add(diskPhys);
491 
492  // Store the alignable transform
493  int brl_ec = 2*m_gmt_mgr->GetSide();
494  Identifier id = m_gmt_mgr->getIdHelper()->wafer_id(brl_ec,ii,0,0);
495  m_DDmgr->addAlignableTransform(1, id, xform, diskPhys);
496 
497  //
498  // place the cables twice for the two active parts
499  //
500  double dz = pd.Thickness()/2. + m_gmt_mgr->PixelECCablesDistance() ;
501  pos = GeoTrf::Translate3D(0.,0.,zdisk+dz);
502  tag = new GeoNameTag("ECCables");
503  GeoTransform * xformCablesPlus = new GeoTransform(pos);
504  ecPhys->add(tag);
505  ecPhys->add(xformCablesPlus);
506  ecPhys->add(pecc.Build() );
507  pos = GeoTrf::Translate3D(0.,0.,zdisk-dz);
508  tag = new GeoNameTag("ECCables");
509  GeoTransform * xformCablesMinus = new GeoTransform(pos);
510  ecPhys->add(tag);
511  ecPhys->add(xformCablesMinus);
512  ecPhys->add(pecc.Build() );
513  } else {
514  if(m_gmt_mgr->msgLvl(MSG::DEBUG)) m_gmt_mgr->msg(MSG::DEBUG) << "Disk " << ii << " not built" << endmsg;
515 
516  }
517  }
518  if(m_gmt_mgr->DoServices() ) {
519  //
520  // Add the Endcap services inide the EC volume
521  //
522  GeoPixelServices ecsvc = GeoPixelServices(m_DDmgr, m_gmt_mgr, "/Pixel/PixelEndcap");
523  for(int ii =0; ii< ecsvc.NCylinders(); ii++) {
524  ecsvc.SetCylinder(ii);
525  GeoNameTag* tag = new GeoNameTag("Outside Endcap Service");
526  GeoTrf::Translate3D pos(0.,0.,ecsvc.ZPos() );
527  GeoTransform* xform = new GeoTransform(pos);
528  ecPhys->add(tag);
529  ecPhys->add(xform);
530  ecPhys->add(ecsvc.Build() );
531  }
532  }
533  return ecPhys;
534 }

◆ 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::PixelGeometryManager::PixelEndcapRMin
virtual double PixelEndcapRMin()=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
PixelGeoDC2::PixelGeometryManager::PixelECCablesDistance
virtual double PixelECCablesDistance()=0
PixelGeoDC2::GeoVPixelFactory::m_mat_mgr
StoredMaterialManager * m_mat_mgr
Definition: PixelDetectorDC1DC2.h:52
makeDTCalibBlob_pickPhase.pd
pd
Definition: makeDTCalibBlob_pickPhase.py:342
PixelGeoDC2::PixelGeometryManager::PixelEndcapNDisk
virtual int PixelEndcapNDisk()=0
PixelGeoDC2::PixelGeometryManager::SetCurrentLD
virtual void SetCurrentLD(int i)=0
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:360
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
PixelGeoDC2::PixelGeometryManager::GetSide
virtual int GetSide()=0
PixelGeoDC2::PixelGeometryManager::isLDPresent
virtual bool isLDPresent()=0
AthMessaging::msgLvl
bool msgLvl(const MSG::Level lvl) const
Test the output level.
Definition: AthMessaging.h:151
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
PixelGeoDC2::PixelGeometryManager::getIdHelper
virtual const PixelID * getIdHelper()=0
PixelGeoDC2::PixelGeometryManager::getMaterialManager
virtual StoredMaterialManager * getMaterialManager()=0
PixelGeoDC2::PixelGeometryManager::PixelEndcapZMin
virtual double PixelEndcapZMin()=0
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
InDetDD::PixelDetectorManager::addAlignableTransform
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms.
Definition: PixelDetectorManager.cxx:274
InDetDD::SiNumerology::setNumDisks
void setNumDisks(int nDisks)
Definition: SiNumerology.cxx:41
PixelGeoDC2::GeoPixelServices::NCylinders
int NCylinders()
Definition: PixelDetectorDC1DC2.h:290
PixelGeoDC2::GeoPixelServices::ZPos
double ZPos()
Definition: PixelDetectorDC1DC2.h:292
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
PixelGeoDC2::GeoPixelDisk
Definition: PixelDetectorDC1DC2.h:115
PixelGeoDC2::GeoPixelECCable
Definition: PixelDetectorDC1DC2.h:158
DEBUG
#define DEBUG
Definition: page_access.h:11
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
PixelGeoDC2::PixelGeometryManager::PixelEndcapZMax
virtual double PixelEndcapZMax()=0
PixelGeoDC2::GeoPixelServices
Definition: PixelDetectorDC1DC2.h:284
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
PixelGeoDC2::GeoPixelServices::SetCylinder
void SetCylinder(int n)
Definition: PixelDetectorDC1DC2.h:291
PixelGeoDC2::PixelGeometryManager::PixelDiskPosition
virtual double PixelDiskPosition()=0
PixelGeoDC2::PixelGeometryManager::PixelEndcapRMax
virtual double PixelEndcapRMax()=0
Identifier
Definition: IdentifierFieldParser.cxx:14