ATLAS Offline Software
GeoPixelECCable.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 
7 #include "GeoPixelECCable.h"
8 #include "GeoModelKernel/GeoTube.h"
9 #include "GeoModelKernel/GeoLogVol.h"
10 #include "GeoModelKernel/GeoPhysVol.h"
11 #include "GeoModelKernel/GeoMaterial.h"
12 
15  GeoModelIO::ReadGeoModel* sqliteReader,
16  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
17  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
18  : GeoVPixelFactory (ddmgr, mgr, sqliteReader, std::move(mapFPV), std::move(mapAX) )
19 {}
20 
21 
22 GeoVPhysVol* GeoPixelECCable::Build( ) {
23  //
24  // Dimensions
25  //
26  double rmin = m_gmt_mgr->PixelECCablesRMin();
27  double rmax = m_gmt_mgr->PixelECCablesRMax();
28  double thickness = m_gmt_mgr->PixelECCablesThickness();
29  const GeoTube* cableTube = new GeoTube(rmin,rmax,thickness/2.);
30  std::string matName = m_gmt_mgr->getMaterialName("DiskCable", m_gmt_mgr->GetLD());
31  const GeoMaterial* cableMat = m_mat_mgr->getMaterialForVolume(matName, cableTube->volume());
32  std::ostringstream ostr; ostr << m_gmt_mgr->GetLD();
33  const GeoLogVol* theECCable = new GeoLogVol("ECCable"+ostr.str(),cableTube,cableMat);
34 
35  GeoPhysVol* cablePhys = new GeoPhysVol(theECCable);
36  return cablePhys;
37 }
38 
PixelGeometryManager
Definition: PixelGeometryManager.h:28
GeoPixelECCable::Build
virtual GeoVPhysVol * Build() override
Definition: GeoPixelECCable.cxx:22
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: GeoVPixelFactory.h:43
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
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
GeoPixelECCable.h
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
GeoVPixelFactory::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition: GeoVPixelFactory.h:44
PixelGeometryManager::PixelECCablesThickness
virtual double PixelECCablesThickness()=0
GeoPixelECCable::GeoPixelECCable
GeoPixelECCable(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: GeoPixelECCable.cxx:13
PixelGeometryManager::PixelECCablesRMax
virtual double PixelECCablesRMax()=0
GeoVPixelFactory
This is the base class for all the pieces of the Pixel detector.
Definition: GeoVPixelFactory.h:31
PixelGeometryManager::getMaterialName
virtual std::string getMaterialName(const std::string &volumeName, int layerdisk=0, int typenum=0)=0
PixelGeometryManager::PixelECCablesRMin
virtual double PixelECCablesRMin()=0
PixelGeometryManager::GetLD
virtual int GetLD()=0