ATLAS Offline Software
GeoPixelHybrid.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //
6 // This class builds one Hybrid to be placed in one module
7 //
8 // The information on which layer to build is retrieved by the Geometry Manager
9 //
10 // Contained by: PixelModule_log
11 //
12 // Contains: nothing
13 //
14 #include "GeoPixelHybrid.h"
15 #include "GeoModelKernel/GeoBox.h"
16 #include "GeoModelKernel/GeoLogVol.h"
17 #include "GeoModelKernel/GeoPhysVol.h"
18 #include "GeoModelKernel/GeoMaterial.h"
19 
20 GeoVPhysVol* GeoPixelHybrid::Build() {
21  //
22  // Dimensions
23  //
25  double thickness = m_gmt_mgr->PixelHybridThickness(m_isModule3D);
27 
28  const GeoBox* hybridBox = new GeoBox(thickness/2.,width/2.,length/2.);
29  std::string matName = m_gmt_mgr->getMaterialName("Hybrid",0,m_gmt_mgr->moduleType());
30  if(m_isModule3D)matName = m_gmt_mgr->getMaterialName("Hybrid3D",0,m_gmt_mgr->moduleType());
31 
32  const GeoMaterial* hybridMat = m_mat_mgr->getMaterialForVolume(matName,hybridBox->volume());
33  std::string logName = "HybridEC";
34  if(m_gmt_mgr->isBarrel() ) logName = "HybridBrl";
35  GeoLogVol* theHybrid = new GeoLogVol(logName,hybridBox,hybridMat);
36  GeoPhysVol* hybridPhys = new GeoPhysVol(theHybrid);
37 
38  return hybridPhys;
39 }
GeoPixelHybrid.h
PixelGeometryManager::PixelHybridWidth
virtual double PixelHybridWidth(bool isModule3D=false)=0
PixelGeometryManager::PixelHybridThickness
virtual double PixelHybridThickness(bool isModule3D=false)=0
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: GeoVPixelFactory.h:43
PixelGeometryManager::isBarrel
virtual bool isBarrel()=0
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::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition: GeoVPixelFactory.h:44
GeoPixelHybrid::m_isModule3D
bool m_isModule3D
Definition: GeoPixelHybrid.h:24
PixelGeometryManager::moduleType
virtual int moduleType()=0
PixelGeometryManager::PixelHybridLength
virtual double PixelHybridLength(bool isModule3D=false)=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
GeoPixelHybrid::Build
virtual GeoVPhysVol * Build() override
Definition: GeoPixelHybrid.cxx:20
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26