![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
22 #include "GeoModelRead/ReadGeoModel.h"
23 #include "GeoModelKernel/GeoVolumeCursor.h"
24 #include "GeoModelKernel/GeoAlignableTransform.h"
25 #include "GeoModelKernel/GeoDefinitions.h"
26 #include "GeoModelKernel/GeoIdentifierTag.h"
27 #include "GeoModelKernel/GeoLogVol.h"
28 #include "GeoModelKernel/GeoMaterial.h"
29 #include "GeoModelKernel/GeoNameTag.h"
30 #include "GeoModelKernel/GeoPhysVol.h"
31 #include "GeoModelKernel/GeoShape.h"
32 #include "GeoModelKernel/GeoShapeShift.h"
33 #include "GeoModelKernel/GeoShapeUnion.h"
34 #include "GeoModelKernel/GeoTransform.h"
35 #include "GeoModelKernel/GeoTube.h"
36 #include "GeoModelKernel/GeoVPhysVol.h"
64 #include "GaudiKernel/ISvcLocator.h"
65 #include "GaudiKernel/SystemOfUnits.h"
77 :
InDetDD::DetectorFactoryBase(athenaComps),
78 m_sqliteReader (sqliteReader),
79 m_useDynamicAlignFolders(false)
85 m_db = std::make_unique<SCT_DataBase>(athenaComps);
91 std::unique_ptr<InDetDD::SiCommonItems> commonItems{std::make_unique<InDetDD::SiCommonItems>(athenaComps->
getIdHelper())};
109 std::string layout =
"Final";
118 std::string versionName = switches->
getString(
"VERSIONNAME");
119 int versionMajorNumber = 3;
120 int versionMinorNumber = 6;
121 int versionPatchNumber = 0;
133 m_mapFPV = std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> (
new std::map<std::string, GeoFullPhysVol*> (
m_sqliteReader->getPublishedNodes<std::string, GeoFullPhysVol*>(
"SCT")));
135 m_mapAX = std::shared_ptr< std::map<std::string, GeoAlignableTransform*>> (
new std::map<std::string, GeoAlignableTransform *> (
m_sqliteReader->getPublishedNodes<std::string, GeoAlignableTransform*>(
"SCT")));
151 msg(MSG::INFO) <<
"Building SCT Detector." <<
endmsg;
155 int oldPrecision = std::cout.precision(6);
160 std::string barrelLabel =
"Barrel";
161 std::string forwardPlusLabel =
"EndcapA";
162 std::string forwardMinusLabel =
"EndcapC";
164 bool barrelPresent = sctGeneral->
partPresent(barrelLabel);
165 bool forwardPlusPresent = sctGeneral->
partPresent(forwardPlusLabel);
166 bool forwardMinusPresent = sctGeneral->
partPresent(forwardMinusLabel);
184 GeoFullPhysVol *barrelPV = (*m_mapFPV)[
"SCT_Barrel"];
185 GeoAlignableTransform * barrelTransform = (*m_mapAX)[
"SCT_Barrel"];
196 if (forwardPlusPresent) {
205 idFwdPlus.setBarrelEC(2);
207 sctForwardPlus.
build(idFwdPlus);
209 GeoFullPhysVol *forwardPlusPV = (*m_mapFPV)[
"SCT_ForwardPlus"];
210 GeoAlignableTransform * fwdGeoTransformPlus = (*m_mapAX)[
"SCT_ForwardPlus"];
222 if (forwardMinusPresent) {
231 idFwdMinus.setBarrelEC(-2);
233 sctForwardMinus.
build(idFwdMinus);
235 GeoFullPhysVol *forwardMinusPV = (*m_mapFPV)[
"SCT_ForwardMinus"];
236 GeoAlignableTransform * fwdGeoTransformMinus = (*m_mapAX)[
"SCT_ForwardMinus"];
270 if (forwardPlusPresent) {
281 if (forwardMinusPresent) {
308 if (forwardPlusPresent) {
319 if (forwardMinusPresent) {
333 std::cout.precision(oldPrecision);
bool m_useDynamicAlignFolders
bool partPresent(const std::string &partName) const
std::unique_ptr< SCT_MaterialManager > m_materials
const SiNumerology & numerology() const
Access Numerology.
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)
const std::string & node() const
Return the version node.
MsgStream & msg(MSG::Level lvl) const
int cells() const
number of readout stips within module side:
void addAlignFolderType(const AlignFolderType alignfolder)
void setCommonItems(std::unique_ptr< const SiCommonItems > &&commonItems)
Set SiCommonItems.
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
InDetDD::SCT_DetectorManager * m_detectorManager
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition of the abstract IRDBAccessSvc interface.
virtual std::string getChildTag(const std::string &childNode, const std::string &parentTag, const std::string &parentNode, const std::string &connName="ATLASDD")=0
Gets the tag name for the node by giving its parent node tag.
StoreGateSvc * detStore()
void addFolder(const std::string &key)
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
void setMaxNumPhiCells(int cells)
const Version & getVersion() const
Get version information.
const std::string & tag() const
Return version tag.
void addGlobalFolder(const std::string &key)
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
virtual ~SCT_DetectorFactoryLite()
void addTreeTop(PVConstLink vol)
Add tree top.
const SCT_ModuleSideDesign * getSCT_Design(int i) const
Access to module design, casts to SCT_ModuleSideDesign.
const IGeoDbTagSvc * geoDbTagSvc() const
GeoModelIO::ReadGeoModel * m_sqliteReader
Class to hold various Athena components.
const SCT_ID * getIdHelper() const
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)
virtual void create(GeoPhysVol *world)
std::unique_ptr< SCT_DataBase > m_db
std::unique_ptr< SCT_GeometryManager > m_geometryManager
virtual const InDetDD::SCT_DetectorManager * getDetectorManager() const
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.