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 12 of file GeoPixelPigtail.cxx.

17  : GeoVPixelFactory (ddmgr, mgr, sqliteReader, mapFPV, mapAX)
18 {
19 }

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelPigtail::Build ( )
overridevirtual

Implements GeoVPixelFactory.

Definition at line 21 of file GeoPixelPigtail.cxx.

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

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:64
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:9
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