ATLAS Offline Software
Loading...
Searching...
No Matches
GeoPixelSimpleStaveSupport.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// Build simple stave support as a box
6// This is built one time per layer.
7
8#include <utility>
9
11#include "GeoModelKernel/GeoBox.h"
12#include "GeoModelKernel/GeoLogVol.h"
13#include "GeoModelKernel/GeoPhysVol.h"
14#include "GeoModelKernel/GeoMaterial.h"
15
16
17
20 GeoModelIO::ReadGeoModel* sqliteReader,
21 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
22 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
23 : GeoPixelStaveSupport(ddmgr, mgr, sqliteReader, std::move(mapFPV), std::move(mapAX)),
24 m_transform(GeoTrf::Transform3D::Identity())
25{
27}
28
30
31 double thickness = m_gmt_mgr->PixelLadderSupportThickness();
32 double width = m_gmt_mgr->PixelLadderSupportWidth();
33 double length = m_gmt_mgr->PixelLadderSupportLength();
34 double xOffset = m_gmt_mgr->PixelLadderServicesX();
35 double yOffset = m_gmt_mgr->PixelLadderServicesY();
36 int staveIndex = m_gmt_mgr->PixelStaveIndex(m_gmt_mgr->GetLD());
37
38 GeoBox * shape = new GeoBox(0.5*thickness, 0.5*width, 0.5*length);
39 std::string matName = m_gmt_mgr->getMaterialName("StaveSupport", m_gmt_mgr->GetLD(), staveIndex);
40 const GeoMaterial* material = m_mat_mgr->getMaterialForVolume(matName,shape->volume());
41 GeoLogVol* logVol = new GeoLogVol("StaveSupport",shape,material);
42
43 m_transform = GeoTrf::Translate3D(xOffset,yOffset,0);
44
45 m_thicknessP = xOffset + 0.5*thickness;
46 m_thicknessN = -xOffset + 0.5*thickness;
47
48 return new GeoPhysVol(logVol);
49}
50
Eigen::Affine3d Transform3D
double length(const pvec &v)
const double width
GeoPixelSimpleStaveSupport(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 GeoVPhysVol * Build() override
PixelGeometryManager * m_gmt_mgr
InDetMaterialManager * m_mat_mgr
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
STL namespace.