![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #include "GeoModelKernel/GeoTube.h"
10 #include "GeoModelKernel/GeoLogVol.h"
11 #include "GeoModelKernel/GeoNameTag.h"
12 #include "GeoModelKernel/GeoIdentifierTag.h"
13 #include "GeoModelKernel/GeoPhysVol.h"
14 #include "GeoModelKernel/GeoFullPhysVol.h"
15 #include "GeoModelKernel/GeoMaterial.h"
16 #include "GeoModelKernel/GeoTransform.h"
17 #include "GeoModelKernel/GeoAlignableTransform.h"
19 #include "Identifier/Identifier.h"
28 GeoModelIO::ReadGeoModel* sqliteReader,
29 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
30 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
33 m_pixServices(pixServices)
38 GeoFullPhysVol* ecPhys{
nullptr};
47 const GeoTube* ecTube =
new GeoTube(rmin,rmax,halflength);
48 const GeoLogVol* ecLog =
new GeoLogVol(
"EndCap",ecTube,air);
49 ecPhys =
new GeoFullPhysVol(ecLog);
66 for(
int idisk = 0; idisk < ndisks; idisk++) {
87 std::ostringstream nameTag;
88 nameTag <<
"Disk" << idisk;
89 GeoNameTag *
tag =
new GeoNameTag(nameTag.str());
90 GeoAlignableTransform* xform =
new GeoAlignableTransform(GeoTrf::TranslateZ3D(zdisk));
92 GeoVPhysVol * diskPhys = pd->
Build();
94 ecPhys->add(
new GeoIdentifierTag(idisk));
96 ecPhys->add(diskPhys);
107 GeoTransform * xformCablesPlus =
new GeoTransform(GeoTrf::TranslateZ3D(zdisk+dz));
108 ecPhys->add(xformCablesPlus);
109 ecPhys->add(pecc->
Build() );
110 GeoTransform * xformCablesMinus =
new GeoTransform(GeoTrf::TranslateZ3D(zdisk-dz));
111 ecPhys->add(xformCablesMinus);
112 ecPhys->add(pecc->
Build() );
124 std::ostringstream ename;
125 ename <<
"EndCap" << region;
126 ecPhys = (*m_mapFPV)[ename.str()];
141 xMat.
add(ecPhys,
"PixelEndcap",endcapZOffset);
143 xMat.
add(ecPhys,
"PixelEndcapA",endcapZOffset);
145 xMat.
add(ecPhys,
"PixelEndcapC",endcapZOffset);
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
virtual InDetDD::DistortedMaterialManager * distortedMatManager()=0
virtual double PixelDiskZPosition()=0
virtual void SetEta(int eta)=0
const SiNumerology & numerology() const
Access Numerology.
virtual double PixelEndcapZMax()=0
MsgStream & msg(MSG::Level lvl) const
virtual GeoVPhysVol * Build() override
virtual double PixelEndcapRMin()=0
bool msgLvl(MSG::Level lvl) const
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
GeoModelIO::ReadGeoModel * m_sqliteReader
virtual GeoVPhysVol * Build() override
void buildAndPlace(const std::string ®ion, GeoPhysVol *parent, double zcenter=0)
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
InDetDD::PixelDetectorManager * m_DDmgr
PixelGeometryManager * m_gmt_mgr
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
virtual GeoVPhysVol * Build() override
virtual int PixelEndcapNDisk()=0
virtual double PixelECCablesDistance()=0
GeoPixelServices * m_pixServices
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms.
void setNumDisks(int nDisks)
std::string to_string(const DetectorType &type)
virtual double PixelEndcapRMax()=0
virtual void SetCurrentLD(int i)=0
InDetMaterialManager * m_mat_mgr
virtual double PixelEndcapZMin()=0
InDetDD::VolumeBuilder * getServMatBuilder()
This is the base class for all the pieces of the Pixel detector.
GeoPixelEndCap(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, GeoPixelServices *pixServices)
virtual const PixelID * getIdHelper()=0
const GeoMaterial * getMaterial(const std::string &materialName)
Get material. First looks for locally defined material and if not found looks in GeoModel material ma...
virtual bool isLDPresent()=0
InDetDD::VolumeBuilder * getBuilder()