16#include "GeoModelRead/ReadGeoModel.h"
17#include "GeoModelKernel/GeoVolumeCursor.h"
18#include "GeoModelKernel/GeoAlignableTransform.h"
19#include "GeoModelKernel/GeoDefinitions.h"
20#include "GeoModelKernel/GeoIdentifierTag.h"
21#include "GeoModelKernel/GeoLogVol.h"
22#include "GeoModelKernel/GeoMaterial.h"
23#include "GeoModelKernel/GeoNameTag.h"
24#include "GeoModelKernel/GeoPhysVol.h"
25#include "GeoModelKernel/GeoShape.h"
26#include "GeoModelKernel/GeoShapeShift.h"
27#include "GeoModelKernel/GeoShapeUnion.h"
28#include "GeoModelKernel/GeoTransform.h"
29#include "GeoModelKernel/GeoTube.h"
30#include "GeoModelKernel/GeoVPhysVol.h"
55#include "GaudiKernel/ISvcLocator.h"
56#include "GaudiKernel/SystemOfUnits.h"
74 m_db = std::make_unique<SCT_DataBase>(athenaComps);
77 std::unique_ptr<InDetDD::SiCommonItems> commonItems{std::make_unique<InDetDD::SiCommonItems>(athenaComps->
getIdHelper())};
94 std::string layout =
"Final";
102 std::string versionName = switches->
getString(
"VERSIONNAME");
103 int versionMajorNumber = 3;
104 int versionMinorNumber = 6;
105 int versionPatchNumber = 0;
122 msg(MSG::INFO) <<
"Building SCT Detector." <<
endmsg;
126 int oldPrecision = std::cout.precision(6);
131 std::string barrelLabel =
"Barrel";
132 std::string forwardPlusLabel =
"EndcapA";
133 std::string forwardMinusLabel =
"EndcapC";
135 bool barrelPresent = sctGeneral->
partPresent(barrelLabel);
136 bool forwardPlusPresent = sctGeneral->
partPresent(forwardPlusLabel);
137 bool forwardMinusPresent = sctGeneral->
partPresent(forwardMinusLabel);
144 msg(MSG::DEBUG) <<
"Building the SCT Barrel." <<
endmsg;
155 GeoFullPhysVol *barrelPV = (*m_mapFPV)[
"SCT_Barrel"];
156 GeoAlignableTransform * barrelTransform = (*m_mapAXF)[
"SCT_Barrel"];
160 m_detectorManager->addAlignableTransform(3,
id.getWaferId(), barrelTransform, barrelPV);
167 if (forwardPlusPresent) {
169 msg(MSG::DEBUG) <<
"Building the SCT Endcap A (positive z)." <<
endmsg;
178 sctForwardPlus.
build(idFwdPlus);
180 GeoFullPhysVol *forwardPlusPV = (*m_mapFPV)[
"SCT_ForwardPlus"];
181 GeoAlignableTransform * fwdGeoTransformPlus = (*m_mapAXF)[
"SCT_ForwardPlus"];
193 if (forwardMinusPresent) {
195 msg(MSG::DEBUG) <<
"Building the SCT Endcap C (negative z)." <<
endmsg;
204 sctForwardMinus.
build(idFwdMinus);
206 GeoFullPhysVol *forwardMinusPV = (*m_mapFPV)[
"SCT_ForwardMinus"];
207 GeoAlignableTransform * fwdGeoTransformMinus = (*m_mapAXF)[
"SCT_ForwardMinus"];
241 if (forwardPlusPresent) {
252 if (forwardMinusPresent) {
279 if (forwardPlusPresent) {
290 if (forwardMinusPresent) {
304 std::cout.precision(oldPrecision);
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
IRDBRecord is one record in the IRDBRecordset object.
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
virtual bool isFieldNull(const std::string &fieldName) const =0
Check if the field value is NULL.
DetectorFactoryBase(InDetDD::AthenaComps *athenaComps)
IRDBAccessSvc * rdbAccessSvc()
StoreGateSvc * detStore()
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 ...
Class to hold version information consisting of tag, name layout and description as strings,...
virtual GeoVPhysVol * build(SCT_Identifier id)
bool m_useDynamicAlignFolders
std::unique_ptr< SCT_GeometryManager > m_geometryManager
virtual void create(GeoPhysVol *world) override
SCT_DetectorFactoryLite(GeoModelIO::ReadGeoModel *sqliteReader, SCT_GeoModelAthenaComps *athenaComps, const SCT_Options &options)
std::map< std::string, GeoAlignableTransform * > AXFMap
InDetDD::SCT_DetectorManager * m_detectorManager
std::shared_ptr< AXFMap > m_mapAXF
std::unique_ptr< SCT_DataBase > m_db
std::shared_ptr< FPVMap > m_mapFPV
virtual const InDetDD::SCT_DetectorManager * getDetectorManager() const override
GeoModelIO::ReadGeoModel * m_sqliteReader
std::map< std::string, GeoFullPhysVol * > FPVMap
virtual GeoVPhysVol * build(SCT_Identifier id)
bool partPresent(const std::string &partName) const
Class to hold various Athena components.
const SCT_ID * getIdHelper() const
std::string description
glabal timer - how long have I taken so far?