ATLAS Offline Software
GeoPixelChip.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 Chip 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 "GeoPixelChip.h"
15 #include "GeoModelKernel/GeoBox.h"
16 #include "GeoModelKernel/GeoLogVol.h"
17 #include "GeoModelKernel/GeoPhysVol.h"
18 #include "GeoModelKernel/GeoMaterial.h"
19 
20 GeoVPhysVol* GeoPixelChip::Build() {
21  //
22  // Dimensions
23  //
25  double thickness = m_gmt_mgr->PixelChipThickness(m_isModule3D);
27  std::string LogName = "ChipBrl";
28  if(m_gmt_mgr->isEndcap() ) LogName = "ChipEC";
29  //std::cout << "Chip Thick = " << thickness << std::endl;
30  const GeoBox* chipBox = new GeoBox(thickness/2.,width/2.,length/2.);
31 
32  std::string matName = m_gmt_mgr->getMaterialName("Chip",0,m_gmt_mgr->moduleType());
33  if(m_isModule3D)matName = m_gmt_mgr->getMaterialName("Chip3D",0,m_gmt_mgr->moduleType());
34 
35  const GeoMaterial* chipMat = m_mat_mgr->getMaterialForVolume(matName,chipBox->volume());
36 
37  GeoLogVol* theChip = new GeoLogVol(LogName,chipBox,chipMat);
38  GeoPhysVol* chipPhys = new GeoPhysVol(theChip);
39 
40  //std::cout<<"chip volume " << chipBox->volume() << " density " << chipMat->getDensity() << std::endl;
41  return chipPhys;
42 }
GeoPixelChip::m_isModule3D
bool m_isModule3D
Definition: GeoPixelChip.h:25
PixelGeometryManager::PixelChipThickness
virtual double PixelChipThickness(bool isModule3D=false)=0
PixelGeometryManager::PixelChipWidth
virtual double PixelChipWidth(bool isModule3D=false)=0
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: GeoVPixelFactory.h:43
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
PixelGeometryManager::isEndcap
virtual bool isEndcap()=0
PixelGeometryManager::PixelChipLength
virtual double PixelChipLength(bool isModule3D=false)=0
GeoPixelChip::Build
virtual GeoVPhysVol * Build() override
Definition: GeoPixelChip.cxx:20
GeoVPixelFactory::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition: GeoVPixelFactory.h:44
PixelGeometryManager::moduleType
virtual int moduleType()=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
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
GeoPixelChip.h