ATLAS Offline Software
Public Member Functions | Protected Attributes | List of all members
GeoPixelPigtail Class Reference

#include <GeoPixelPigtail.h>

Inheritance diagram for GeoPixelPigtail:
Collaboration diagram for GeoPixelPigtail:

Public Member Functions

 GeoPixelPigtail (InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX)
 
virtual GeoVPhysVol * Build () override
 

Protected Attributes

PixelGeometryManagerm_gmt_mgr
 
InDetMaterialManagerm_mat_mgr
 
InDetDD::PixelDetectorManagerm_DDmgr
 
GeoModelIO::ReadGeoModel * m_sqliteReader
 
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
 
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
 
const double m_epsilon
 

Detailed Description

Definition at line 11 of file GeoPixelPigtail.h.

Constructor & Destructor Documentation

◆ GeoPixelPigtail()

GeoPixelPigtail::GeoPixelPigtail ( InDetDD::PixelDetectorManager ddmgr,
PixelGeometryManager mgr,
GeoModelIO::ReadGeoModel *  sqliteReader,
std::shared_ptr< std::map< std::string, GeoFullPhysVol * >>  mapFPV,
std::shared_ptr< std::map< std::string, GeoAlignableTransform * >>  mapAX 
)

Definition at line 14 of file GeoPixelPigtail.cxx.

19  : GeoVPixelFactory (ddmgr, mgr, sqliteReader, std::move(mapFPV), std::move(mapAX))
20 {
21 }

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelPigtail::Build ( )
overridevirtual

Implements GeoVPixelFactory.

Definition at line 23 of file GeoPixelPigtail.cxx.

23  {
24  //this block was originally in the c'tor
25  const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air");
27  double rmin = m_gmt_mgr->PixelPigtailBendRMin();
28  double rmax = m_gmt_mgr->PixelPigtailBendRMax();
30  double dphi = m_gmt_mgr->PixelPigtailBendPhiMax() - phi;
32  double posZ = m_gmt_mgr->PixelPigtailPosZ();
33 
34  double rminEps = rmin-m_epsilon;
35  double rmaxEps = rmax+m_epsilon;
36  const GeoTubs* tubs = new GeoTubs(rminEps,rmaxEps,0.5*length,phi,dphi);
37  GeoLogVol * thePigtail = new GeoLogVol("PigtailCylEnv",tubs,air);
38  //
39  GeoPhysVol* pigtailPhys = new GeoPhysVol(thePigtail);
40  for (int iModule = 0; iModule<m_gmt_mgr->PixelNModule(); iModule++) {
41  int moduleEta = m_gmt_mgr->PixelModuleEtaFromIndex(iModule);
42  double zShift = m_gmt_mgr->PixelModuleZPosition(moduleEta);
43  std::string logName = "PigtailCyl";
44  const GeoTubs* tubs = new GeoTubs(rmin,rmax,0.5*width,phi,dphi);
45  std::string matName = m_gmt_mgr->getMaterialName("PigtailCyl", m_gmt_mgr->GetLD());
46  const GeoMaterial* cyliMat = m_mat_mgr->getMaterialForVolume(matName,tubs->volume());
47  GeoLogVol* theTubs = new GeoLogVol(logName,tubs,cyliMat);
48  GeoPhysVol* pigtailPart = new GeoPhysVol(theTubs);
49 
50  double zpos = posZ + zShift;
51  GeoTransform* xform = new GeoTransform(GeoTrf::TranslateZ3D(zpos));
52  pigtailPhys->add(xform);
53  pigtailPhys->add(pigtailPart);
54  }
55  return pigtailPhys;
56 }

Member Data Documentation

◆ m_DDmgr

InDetDD::PixelDetectorManager* GeoVPixelFactory::m_DDmgr
protectedinherited

Definition at line 45 of file GeoVPixelFactory.h.

◆ m_epsilon

const double GeoVPixelFactory::m_epsilon
protectedinherited

Definition at line 49 of file GeoVPixelFactory.h.

◆ m_gmt_mgr

PixelGeometryManager* GeoVPixelFactory::m_gmt_mgr
protectedinherited

Definition at line 43 of file GeoVPixelFactory.h.

◆ m_mapAX

std::shared_ptr<std::map<std::string, GeoAlignableTransform*> > GeoVPixelFactory::m_mapAX
protectedinherited

Definition at line 48 of file GeoVPixelFactory.h.

◆ m_mapFPV

std::shared_ptr<std::map<std::string, GeoFullPhysVol*> > GeoVPixelFactory::m_mapFPV
protectedinherited

Definition at line 47 of file GeoVPixelFactory.h.

◆ m_mat_mgr

InDetMaterialManager* GeoVPixelFactory::m_mat_mgr
protectedinherited

Definition at line 44 of file GeoVPixelFactory.h.

◆ m_sqliteReader

GeoModelIO::ReadGeoModel* GeoVPixelFactory::m_sqliteReader
protectedinherited

Definition at line 46 of file GeoVPixelFactory.h.


The documentation for this class was generated from the following files:
PixelGeometryManager::PixelPigtailBendPhiMin
virtual double PixelPigtailBendPhiMin()=0
PixelGeometryManager::PixelPigtailBendRMax
virtual double PixelPigtailBendRMax()=0
PixelGeometryManager::PixelPigtailEnvelopeLength
virtual double PixelPigtailEnvelopeLength()=0
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
PixelGeometryManager::PixelPigtailWidthZ
virtual double PixelPigtailWidthZ()=0
PixelGeometryManager::PixelPigtailBendRMin
virtual double PixelPigtailBendRMin()=0
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: GeoVPixelFactory.h:43
PixelGeometryManager::PixelModuleEtaFromIndex
virtual int PixelModuleEtaFromIndex(int index)=0
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
PixelGeometryManager::PixelPigtailBendPhiMax
virtual double PixelPigtailBendPhiMax()=0
beamspotman.posZ
posZ
Definition: beamspotman.py:1624
InDetMaterialManager::getMaterialForVolume
const GeoMaterial * getMaterialForVolume(const std::string &materialName, double volume, const std::string &newName="")
Create and get material with a density calculated to give weight in predefined weight table.
Definition: InDetMaterialManager.cxx:460
GeoVPixelFactory::GeoVPixelFactory
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX)
Definition: GeoVPixelFactory.cxx:11
PixelGeometryManager::PixelNModule
virtual int PixelNModule()=0
GeoVPixelFactory::m_epsilon
const double m_epsilon
Definition: GeoVPixelFactory.h:49
GeoVPixelFactory::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition: GeoVPixelFactory.h:44
PixelGeometryManager::PixelPigtailPosZ
virtual double PixelPigtailPosZ()=0
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
PixelGeometryManager::getMaterialName
virtual std::string getMaterialName(const std::string &volumeName, int layerdisk=0, int typenum=0)=0
InDetMaterialManager::getMaterial
const GeoMaterial * getMaterial(const std::string &materialName)
Get material. First looks for locally defined material and if not found looks in GeoModel material ma...
Definition: InDetMaterialManager.cxx:96
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
PixelGeometryManager::PixelModuleZPosition
virtual double PixelModuleZPosition(int)=0
PixelGeometryManager::GetLD
virtual int GetLD()=0