|
ATLAS Offline Software
|
Go to the documentation of this file.
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"
68 :
InDetDD::DetectorFactoryBase(athenaComps),
69 m_sqliteReader (sqliteReader)
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);
155 GeoFullPhysVol *barrelPV = (*m_mapFPV)[
"SCT_Barrel"];
156 GeoAlignableTransform * barrelTransform = (*m_mapAXF)[
"SCT_Barrel"];
167 if (forwardPlusPresent) {
176 idFwdPlus.setBarrelEC(2);
178 sctForwardPlus.
build(idFwdPlus);
180 GeoFullPhysVol *forwardPlusPV = (*m_mapFPV)[
"SCT_ForwardPlus"];
181 GeoAlignableTransform * fwdGeoTransformPlus = (*m_mapAXF)[
"SCT_ForwardPlus"];
193 if (forwardMinusPresent) {
202 idFwdMinus.setBarrelEC(-2);
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);
bool m_useDynamicAlignFolders
bool partPresent(const std::string &partName) const
const SiNumerology & numerology() const
Access Numerology.
std::shared_ptr< FPVMap > m_mapFPV
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
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.
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
void setVersion(const Version &version)
std::map< std::string, GeoFullPhysVol * > FPVMap
MsgStream & msg(MSG::Level lvl) const
int cells() const
number of readout stips within module side:
void addAlignFolderType(const AlignFolderType alignfolder)
std::shared_ptr< AXFMap > m_mapAXF
void setCommonItems(std::unique_ptr< const SiCommonItems > &&commonItems)
Set SiCommonItems.
InDetDD::SCT_DetectorManager * m_detectorManager
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition of the abstract IRDBAccessSvc interface.
StoreGateSvc * detStore()
void addFolder(const std::string &key)
void setMaxNumPhiCells(int cells)
void addTreeTop(const PVConstLink &vol)
Add tree top.
const Version & getVersion() const
Get version information.
void addGlobalFolder(const std::string &key)
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
const SCT_ModuleSideDesign * getSCT_Design(int i) const
Access to module design, casts to SCT_ModuleSideDesign.
virtual const InDetDD::SCT_DetectorManager * getDetectorManager() const override
GeoModelIO::ReadGeoModel * m_sqliteReader
virtual void create(GeoPhysVol *world) override
Class to hold various Athena components.
const SCT_ID * getIdHelper() const
std::map< std::string, GeoAlignableTransform * > AXFMap
Definition of the abstract IRDBRecord interface.
std::string fullDescription() const
Full Description For example, Version: SCT-DC1-00, Name: DC1, Layout: Final, Code Version: 2....
virtual bool isFieldNull(const std::string &fieldName) const =0
Check if the field value is NULL.
IRDBRecord is one record in the IRDBRecordset object.
SCT_DetectorFactoryLite(GeoModelIO::ReadGeoModel *sqliteReader, SCT_GeoModelAthenaComps *athenaComps, const SCT_Options &options)
IRDBAccessSvc * rdbAccessSvc()
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms. No access to these, they will be changed by manager:
Definition of the abstract IRDBRecordset interface.
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
virtual GeoVPhysVol * build(SCT_Identifier id)
std::unique_ptr< SCT_DataBase > m_db
std::unique_ptr< SCT_GeometryManager > m_geometryManager
std::string description
glabal timer - how long have I taken so far?
virtual void initNeighbours() override
Initialize the neighbours. This can only be done when all elements are built.