14#include "GeoModelRead/ReadGeoModel.h"
15#include "GeoModelKernel/GeoBox.h"
16#include "GeoModelKernel/GeoLogVol.h"
17#include "GeoModelKernel/GeoFullPhysVol.h"
18#include "GeoModelKernel/GeoMaterial.h"
26#include "GaudiKernel/SystemOfUnits.h"
34 GeoModelIO::ReadGeoModel* sqliteReader,
35 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
36 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
54 if (parameters->sensorNumWafers() == 2) {
55 m_length = parameters->sensorLength() + parameters->sensorDistCenterToCenter();
57 m_length = parameters->sensorLength();
59 m_width = parameters->sensorWidth();
89 double stripPitch = parameters->sensorStripPitch();
90 double stripLength = parameters->sensorStripLength();
91 int crystals = parameters->sensorNumWafers();
92 double distCenterToCenter = parameters->sensorDistCenterToCenter();
99 int cells = parameters->sensorNumReadoutStrips();
103 double totalDeadLength = distCenterToCenter - stripLength;
105 double xEtaStripPatternCenter = 0;
106 double xPhiStripPatternCenter = 0;
109 bool swapStripReadout =
false;
112 int readoutSide = +1;
115 std::unique_ptr<SCT_BarrelModuleSideDesign> design = std::make_unique<SCT_BarrelModuleSideDesign>(
m_thickness,
124 xEtaStripPatternCenter,
125 xPhiStripPatternCenter,
149 GeoFullPhysVol * sensor;
152 std::string key=
"Sensor_Side#"+std::to_string(
id.getSide())+
"_"+std::to_string(
id.getBarrelEC())+
"_"+std::to_string(
id.getLayerDisk())+
"_"+std::to_string(
id.getEtaModule())+
"_"+std::to_string(
id.getPhiModule());
154 sensor=(*m_mapFPV)[key];
182 std::cout <<
"WARNING!!!!: No SCT id helper and so no elements being produced." << std::endl;
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
const AtlasDetectorID * getIdHelper() const
Class to hold geometrical description of a silicon detector element.
const std::string & getName() const
InDetDD::SCT_DetectorManager * m_detectorManager
SCT_GeometryManager * m_geometryManager
SCT_MaterialManager * m_materials
virtual GeoVPhysVol * build(SCT_Identifier id)
const GeoMaterial * m_material
const InDetDD::SiDetectorDesign * m_design
virtual const GeoLogVol * preBuild()
std::atomic_bool m_noElementWarning
SCT_Sensor(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX)
SCT_UniqueComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr, GeoModelIO::ReadGeoModel *sqliteReader=nullptr, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV=nullptr, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX=nullptr)
const GeoLogVol * m_logVolume
GeoModelIO::ReadGeoModel * m_sqliteReader