ATLAS Offline Software
Loading...
Searching...
No Matches
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
20GeoVPhysVol* GeoPixelChip::Build() {
21 //
22 // Dimensions
23 //
24 double length = m_gmt_mgr->PixelChipLength(m_isModule3D);
25 double thickness = m_gmt_mgr->PixelChipThickness(m_isModule3D);
26 double width = m_gmt_mgr->PixelChipWidth(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 return chipPhys;
41}
double length(const pvec &v)
const double width
virtual GeoVPhysVol * Build() override
PixelGeometryManager * m_gmt_mgr
InDetMaterialManager * m_mat_mgr