|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   12 #include "GeoModelKernel/GeoTube.h" 
   13 #include "GeoModelKernel/GeoLogVol.h" 
   14 #include "GeoModelKernel/GeoNameTag.h" 
   15 #include "GeoModelKernel/GeoIdentifierTag.h" 
   16 #include "GeoModelKernel/GeoFullPhysVol.h" 
   17 #include "GeoModelKernel/GeoMaterial.h" 
   18 #include "GeoModelKernel/GeoTransform.h" 
   19 #include "GeoModelKernel/GeoAlignableTransform.h" 
   20 #include "GaudiKernel/SystemOfUnits.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)
 
   48   std::ostringstream ostr; 
 
   50   const GeoLogVol* theDisk{
nullptr};
 
   59     const GeoTube* diskTube = 
new GeoTube(rmin,rmax,halflength);
 
   60     theDisk = 
new GeoLogVol(
"Disk"+ostr.str(),diskTube,air);
 
   66   GeoFullPhysVol* diskPhys = 
m_sqliteReader==
nullptr ? 
new GeoFullPhysVol(theDisk) : 
nullptr;
 
  138   for (
int ii = 0; ii <  pixelECNSectors1*2; ii++) {
 
  146     if(pixelECNSectors1>0) phiId = (
m_gmt_mgr->
GetSide()>0) ? ii : (3*pixelECNSectors1-ii-1)%(pixelECNSectors1*2);
 
  160     int diskSide = (ii%2) ? +1 : -1; 
 
  172     GeoAlignableTransform* xform = 
new GeoAlignableTransform(GeoTrf::Translate3D(
pos.x(),
pos.y(),
pos.z())*rm);
 
  173     GeoVPhysVol * modulePhys = psd.
Build();
 
  174     std::ostringstream nameTag; 
 
  175     nameTag << 
"ModuleEC" << phiId;
 
  176     GeoNameTag * 
tag = 
new GeoNameTag(nameTag.str());
 
  178     diskPhys->add(
new GeoIdentifierTag(phiId));
 
  179     diskPhys->add(xform);
 
  180     diskPhys->add(modulePhys);
 
  189     diskPhys=(*m_mapFPV)[
key];
 
  198       GeoTransform* xform = 
new GeoTransform( GeoTrf::Translate3D(0, 0, pds.
ZPos()) );
 
  199       diskPhys->add(xform);
 
  200       diskPhys->add(pds.
Build() );
 
  206   xMat.
add(diskPhys,
"PixelDisc");
 
  209   xMat.
add(diskPhys,
"PixelDisc"+ostr.str());
 
  211     xMat.
add(diskPhys,
"PixelDiscA");
 
  212     xMat.
add(diskPhys,
"PixelDiscA"+ostr.str());
 
  214     xMat.
add(diskPhys,
"PixelDiscC");
 
  215     xMat.
add(diskPhys,
"PixelDiscC"+ostr.str());
 
  249   tck += 2.*zClearance;
 
  
void setNumRingsForDisk(int disk, int nRings)
virtual InDetDD::DistortedMaterialManager * distortedMatManager()=0
virtual GeoVPhysVol * Build() override
virtual double PixelChipThickness(bool isModule3D=false)=0
virtual double PixelBoardActiveLength(bool isModule3D=false)=0
virtual double PixelECCarbonRMin(std::string)=0
virtual void SetEta(int eta)=0
virtual double PixelECCarbonRMax(std::string)=0
const SiNumerology & numerology() const
Access Numerology.
virtual GeoVPhysVol * Build() override
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
virtual double PixelChipGap(bool isModule3D=false)=0
std::string to_string(const SectorProjector proj)
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
GeoModelIO::ReadGeoModel * m_sqliteReader
virtual double PixelHybridThickness(bool isModule3D=false)=0
InDetDD::PixelDetectorManager * m_DDmgr
PixelGeometryManager * m_gmt_mgr
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
virtual double PixelBoardThickness(bool isModule3D=false)=0
Eigen::Affine3d Transform3D
virtual void SetPhi(int phi)=0
virtual double PixelECSiDz1()=0
virtual bool isEndcap()=0
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms.
void setNumPhiModulesForDiskRing(int disk, int ring, int nPhiModules)
InDetMaterialManager * m_mat_mgr
Eigen::Matrix< double, 3, 1 > Vector3D
virtual GeoVPhysVol * Build() override
GeoPixelDisk(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 double PixelECSiDz2()=0
This is the base class for all the pieces of the Pixel detector.
virtual int PixelECNSectors1()=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 int dbVersion()=0
virtual double PixelDiskRMin()=0