ATLAS Offline Software
SCT_DetectorFactoryLite.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //
6 // SCT_DetectorFactoryLite: This is the top level node
7 //
8 
9 
11 
13 
15 
16 //
17 // GeoModel include files:
18 //
21 
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"
37 
41 
42 
46 
50 
59 
61 
62 #include "StoreGate/StoreGateSvc.h"
63 
64 #include "GaudiKernel/ISvcLocator.h"
65 #include "GaudiKernel/SystemOfUnits.h"
66 
67 #include <iomanip>
68 #include <iostream>
69 #include <string>
70 
73 
74 SCT_DetectorFactoryLite::SCT_DetectorFactoryLite(GeoModelIO::ReadGeoModel *sqliteReader,
75  SCT_GeoModelAthenaComps * athenaComps,
76  const SCT_Options & options)
77  : InDetDD::DetectorFactoryBase(athenaComps),
78  m_sqliteReader (sqliteReader),
79  m_useDynamicAlignFolders(false)
80 {
81 
82  // Create the detector manager
84  // Create the database
85  m_db = std::make_unique<SCT_DataBase>(athenaComps);
86 
87  // Create the material manager
88  m_materials=nullptr;
89 
90  // Create the Si common items
91  std::unique_ptr<InDetDD::SiCommonItems> commonItems{std::make_unique<InDetDD::SiCommonItems>(athenaComps->getIdHelper())};
92 
93  // Create the geometry manager.
94  m_geometryManager = std::make_unique<SCT_GeometryManager>(m_db.get());
95  m_geometryManager->setOptions(options);
96  m_geometryManager->setCommonItems(commonItems.get());
97 
98  // Add SiCommonItems to SCT_DetectorManager to hold and delete it.
99  m_detectorManager->setCommonItems(std::move(commonItems));
100 
101  m_useDynamicAlignFolders = options.dynamicAlignFolders();
102  // Set Version information
103  // Get the geometry tag
104  DecodeVersionKey versionKey(geoDbTagSvc(),"SCT");
105  IRDBRecordset_ptr switchSet
106  = rdbAccessSvc()->getRecordsetPtr("SctSwitches", versionKey.tag(), versionKey.node());
107  const IRDBRecord *switches = (*switchSet)[0];
108 
109  std::string layout = "Final";
110  std::string description;
111  if (!switches->isFieldNull("LAYOUT")) {
112  layout = switches->getString("LAYOUT");
113  }
114  if (!switches->isFieldNull("DESCRIPTION")) {
115  description = switches->getString("DESCRIPTION");
116  }
117  std::string versionTag = rdbAccessSvc()->getChildTag("SCT", versionKey.tag(), versionKey.node());
118  std::string versionName = switches->getString("VERSIONNAME");
119  int versionMajorNumber = 3;
120  int versionMinorNumber = 6;
121  int versionPatchNumber = 0;
122  InDetDD::Version version(versionTag,
123  versionName,
124  layout,
125  description,
126  versionMajorNumber,
127  versionMinorNumber,
128  versionPatchNumber);
130 
131  if (sqliteReader) {
132 
133  m_mapFPV = std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> (new std::map<std::string, GeoFullPhysVol*> (m_sqliteReader->getPublishedNodes<std::string, GeoFullPhysVol*>("SCT")));
134 
135  m_mapAX = std::shared_ptr< std::map<std::string, GeoAlignableTransform*>> (new std::map<std::string, GeoAlignableTransform *> (m_sqliteReader->getPublishedNodes<std::string, GeoAlignableTransform*>("SCT")));
136 
137  }
138 
139 }
140 
141 
143 {
144  // NB the detector manager (m_detectorManager)is stored in the detector store by the
145  // Tool and so we don't delete it.
146 }
147 
149 {
150 
151  msg(MSG::INFO) << "Building SCT Detector." << endmsg;
152  msg(MSG::INFO) << " " << m_detectorManager->getVersion().fullDescription() << endmsg;
153 
154  // Change precision.
155  int oldPrecision = std::cout.precision(6);
156 
157  // The tree tops get added to world.
158  const SCT_GeneralParameters * sctGeneral = m_geometryManager->generalParameters();
159 
160  std::string barrelLabel = "Barrel";
161  std::string forwardPlusLabel = "EndcapA";
162  std::string forwardMinusLabel = "EndcapC";
163 
164  bool barrelPresent = sctGeneral->partPresent(barrelLabel);
165  bool forwardPlusPresent = sctGeneral->partPresent(forwardPlusLabel);
166  bool forwardMinusPresent = sctGeneral->partPresent(forwardMinusLabel);
167 
168  //
169  // The Barrel
170  //
171  if (barrelPresent) {
172 
173  msg(MSG::DEBUG) << "Building the SCT Barrel." << endmsg;
174 
176 
177  // Create the SCT Barrel
178  SCT_Barrel sctBarrel("SCT_Barrel", m_detectorManager, m_geometryManager.get(), nullptr, m_sqliteReader, m_mapFPV, m_mapAX);
179 
180  SCT_Identifier id{m_geometryManager->athenaComps()->getIdHelper()};
181  id.setBarrelEC(0);
182  //GeoVPhysVol * barrelPV =
183  sctBarrel.build(id);
184  GeoFullPhysVol *barrelPV = (*m_mapFPV)["SCT_Barrel"];
185  GeoAlignableTransform * barrelTransform = (*m_mapAX)["SCT_Barrel"];
186  m_detectorManager->addTreeTop(barrelPV);
187 
188  // Store alignable transform
189  m_detectorManager->addAlignableTransform(3, id.getWaferId(), barrelTransform, barrelPV);
190 
191  }
192 
193  //
194  // The Positive Z Endcap (EndcapA)
195  //
196  if (forwardPlusPresent) {
197 
198  msg(MSG::DEBUG) << "Building the SCT Endcap A (positive z)." << endmsg;
199 
201 
202  // Create the Forward
203  SCT_Forward sctForwardPlus("SCT_ForwardA", +2, m_detectorManager, m_geometryManager.get(), nullptr, m_sqliteReader, m_mapFPV, m_mapAX);
204  SCT_Identifier idFwdPlus{m_geometryManager->athenaComps()->getIdHelper()};
205  idFwdPlus.setBarrelEC(2);
206  //GeoVPhysVol * forwardPlusPV =
207  sctForwardPlus.build(idFwdPlus);
208 
209  GeoFullPhysVol *forwardPlusPV = (*m_mapFPV)["SCT_ForwardPlus"];
210  GeoAlignableTransform * fwdGeoTransformPlus = (*m_mapAX)["SCT_ForwardPlus"];
211 
212  m_detectorManager->addTreeTop(forwardPlusPV);
213 
214  // Store alignable transform
215  m_detectorManager->addAlignableTransform(3, idFwdPlus.getWaferId(), fwdGeoTransformPlus, forwardPlusPV);
216  }
217 
218  //
219  // The Negative Z Endcap (EndcapC)
220  //
221 
222  if (forwardMinusPresent) {
223 
224  msg(MSG::DEBUG) << "Building the SCT Endcap C (negative z)." << endmsg;
225 
227 
228  SCT_Forward sctForwardMinus("SCT_ForwardC", -2, m_detectorManager, m_geometryManager.get(), nullptr, m_sqliteReader, m_mapFPV, m_mapAX);
229 
230  SCT_Identifier idFwdMinus{m_geometryManager->athenaComps()->getIdHelper()};
231  idFwdMinus.setBarrelEC(-2);
232  //GeoVPhysVol * forwardMinusPV =
233  sctForwardMinus.build(idFwdMinus);
234 
235  GeoFullPhysVol *forwardMinusPV = (*m_mapFPV)["SCT_ForwardMinus"];
236  GeoAlignableTransform * fwdGeoTransformMinus = (*m_mapAX)["SCT_ForwardMinus"];
237  m_detectorManager->addTreeTop(forwardMinusPV);
238 
239 
240  // Store alignable transform
241  m_detectorManager->addAlignableTransform(3, idFwdMinus.getWaferId(), fwdGeoTransformMinus, forwardMinusPV);
242  }
243 
244  // Set the neighbours
246 
247  // Set maximum number of strips in numerology.
248  for (int iDesign = 0; iDesign < m_detectorManager->numDesigns(); iDesign++) {
250  }
251 
252  // Register the keys and the level corresponding to the key
253  // and whether it expects a global or local shift.
254  // level 0: sensor, level 1: module, level 2, layer/disc, level 3: whole barrel/enccap
255 
256 
258 
260  m_detectorManager->addFolder("/Indet/Align");
261  m_detectorManager->addChannel("/Indet/Align/ID",3,InDetDD::global);
262  m_detectorManager->addChannel("/Indet/Align/SCT",2,InDetDD::global);
263 
264  if (barrelPresent) {
265  m_detectorManager->addChannel("/Indet/Align/SCTB1",1,InDetDD::local);
266  m_detectorManager->addChannel("/Indet/Align/SCTB2",1,InDetDD::local);
267  m_detectorManager->addChannel("/Indet/Align/SCTB3",1,InDetDD::local);
268  m_detectorManager->addChannel("/Indet/Align/SCTB4",1,InDetDD::local);
269  }
270  if (forwardPlusPresent) {
271  m_detectorManager->addChannel("/Indet/Align/SCTEA1",1,InDetDD::local);
272  m_detectorManager->addChannel("/Indet/Align/SCTEA2",1,InDetDD::local);
273  m_detectorManager->addChannel("/Indet/Align/SCTEA3",1,InDetDD::local);
274  m_detectorManager->addChannel("/Indet/Align/SCTEA4",1,InDetDD::local);
275  m_detectorManager->addChannel("/Indet/Align/SCTEA5",1,InDetDD::local);
276  m_detectorManager->addChannel("/Indet/Align/SCTEA6",1,InDetDD::local);
277  m_detectorManager->addChannel("/Indet/Align/SCTEA7",1,InDetDD::local);
278  m_detectorManager->addChannel("/Indet/Align/SCTEA8",1,InDetDD::local);
279  m_detectorManager->addChannel("/Indet/Align/SCTEA9",1,InDetDD::local);
280  }
281  if (forwardMinusPresent) {
282  m_detectorManager->addChannel("/Indet/Align/SCTEC1",1,InDetDD::local);
283  m_detectorManager->addChannel("/Indet/Align/SCTEC2",1,InDetDD::local);
284  m_detectorManager->addChannel("/Indet/Align/SCTEC3",1,InDetDD::local);
285  m_detectorManager->addChannel("/Indet/Align/SCTEC4",1,InDetDD::local);
286  m_detectorManager->addChannel("/Indet/Align/SCTEC5",1,InDetDD::local);
287  m_detectorManager->addChannel("/Indet/Align/SCTEC6",1,InDetDD::local);
288  m_detectorManager->addChannel("/Indet/Align/SCTEC7",1,InDetDD::local);
289  m_detectorManager->addChannel("/Indet/Align/SCTEC8",1,InDetDD::local);
290  m_detectorManager->addChannel("/Indet/Align/SCTEC9",1,InDetDD::local);
291  }
292  }
293 
294  else {
296  m_detectorManager->addGlobalFolder("/Indet/AlignL1/ID");
297  m_detectorManager->addGlobalFolder("/Indet/AlignL2/SCT");
298  m_detectorManager->addChannel("/Indet/AlignL1/ID",3,InDetDD::global);
299  m_detectorManager->addChannel("/Indet/AlignL2/SCT",2,InDetDD::global);
300  m_detectorManager->addFolder("/Indet/AlignL3");
301 
302  if (barrelPresent) {
303  m_detectorManager->addChannel("/Indet/AlignL3/SCTB1",1,InDetDD::local);
304  m_detectorManager->addChannel("/Indet/AlignL3/SCTB2",1,InDetDD::local);
305  m_detectorManager->addChannel("/Indet/AlignL3/SCTB3",1,InDetDD::local);
306  m_detectorManager->addChannel("/Indet/AlignL3/SCTB4",1,InDetDD::local);
307  }
308  if (forwardPlusPresent) {
309  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA1",1,InDetDD::local);
310  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA2",1,InDetDD::local);
311  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA3",1,InDetDD::local);
312  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA4",1,InDetDD::local);
313  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA5",1,InDetDD::local);
314  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA6",1,InDetDD::local);
315  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA7",1,InDetDD::local);
316  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA8",1,InDetDD::local);
317  m_detectorManager->addChannel("/Indet/AlignL3/SCTEA9",1,InDetDD::local);
318  }
319  if (forwardMinusPresent) {
320  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC1",1,InDetDD::local);
321  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC2",1,InDetDD::local);
322  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC3",1,InDetDD::local);
323  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC4",1,InDetDD::local);
324  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC5",1,InDetDD::local);
325  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC6",1,InDetDD::local);
326  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC7",1,InDetDD::local);
327  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC8",1,InDetDD::local);
328  m_detectorManager->addChannel("/Indet/AlignL3/SCTEC9",1,InDetDD::local);
329  }
330  }
331 
332  // Return precision to its original value
333  std::cout.precision(oldPrecision);
334 
335 }
336 
337 
339 {
340  return m_detectorManager;
341 }
342 
343 
SCT_Barrel.h
SCT_DetectorFactoryLite::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: SCT_DetectorFactoryLite.h:60
SCT_GeneralParameters::partPresent
bool partPresent(const std::string &partName) const
Definition: SCT_GeneralParameters.cxx:37
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_DetectorFactoryLite::m_materials
std::unique_ptr< SCT_MaterialManager > m_materials
Definition: SCT_DetectorFactoryLite.h:59
InDetDD::SiDetectorManager::numerology
const SiNumerology & numerology() const
Access Numerology.
Definition: SiDetectorManager.h:126
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_Identifier.h
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
IRDBAccessSvc::getRecordsetPtr
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.
SCT_GeoModelAthenaComps.h
InDetDD::timedependent_run2
@ timedependent_run2
Definition: InDetDD_Defs.h:19
SCT_ModuleSideDesign.h
SCT_MaterialManager.h
SCT_DataBase.h
InDetDD::SiDetectorManager::numDesigns
int numDesigns() const
Definition: SiDetectorManager.cxx:140
IRDBRecord::getString
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
InDetDD::SiNumerology::addEndcap
void addEndcap(int id)
Definition: SiNumerology.cxx:102
StoredAlignX.h
InDetDD::InDetDetectorManager::setVersion
void setVersion(const Version &version)
Definition: InDetDetectorManager.cxx:43
InDetDD::Version
Definition: Version.h:24
DecodeVersionKey::node
const std::string & node() const
Return the version node.
Definition: DecodeVersionKey.cxx:99
InDetDD::static_run1
@ static_run1
Definition: InDetDD_Defs.h:19
InDetDD::global
@ global
Definition: InDetDD_Defs.h:16
InDetDD::DetectorFactoryBase::msg
MsgStream & msg(MSG::Level lvl) const
Definition: InDetDetectorFactoryBase.h:37
InDetDD::SCT_ModuleSideDesign::cells
int cells() const
number of readout stips within module side:
Definition: SCT_ModuleSideDesign.h:228
InDetDD::InDetDetectorManager::addAlignFolderType
void addAlignFolderType(const AlignFolderType alignfolder)
Definition: InDetDetectorManager.cxx:81
SCT_Forward.h
InDetDD::SiDetectorManager::setCommonItems
void setCommonItems(std::unique_ptr< const SiCommonItems > &&commonItems)
Set SiCommonItems.
Definition: SiDetectorManager.cxx:151
SCT_Options
Definition: SCT_Options.h:12
SCT_DetectorFactoryLite::m_mapAX
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
Definition: SCT_DetectorFactoryLite.h:63
SCT_GeneralParameters.h
SCT_DetectorFactoryLite::m_detectorManager
InDetDD::SCT_DetectorManager * m_detectorManager
Definition: SCT_DetectorFactoryLite.h:56
Version.h
InDetDD_Defs.h
SCT_Barrel::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Barrel.cxx:94
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
IRDBAccessSvc::getChildTag
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.
InDetDD::DetectorFactoryBase::detStore
StoreGateSvc * detStore()
Definition: InDetDetectorFactoryBase.h:27
SCT_Barrel
Definition: SCT_Barrel.h:17
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
SiCommonItems.h
AlignableTransformContainer.h
InDetDD::InDetDetectorManager::addFolder
void addFolder(const std::string &key)
Definition: InDetDetectorManager.cxx:66
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
InDetDD::SiNumerology::setMaxNumPhiCells
void setMaxNumPhiCells(int cells)
Definition: SiNumerology.cxx:86
SCT_DetectorFactoryLite.h
InDetDD::InDetDetectorManager::getVersion
const Version & getVersion() const
Get version information.
Definition: InDetDetectorManager.cxx:33
DecodeVersionKey::tag
const std::string & tag() const
Return version tag.
Definition: DecodeVersionKey.cxx:93
InDetDD::InDetDetectorManager::addGlobalFolder
void addGlobalFolder(const std::string &key)
Definition: InDetDetectorManager.cxx:76
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
SCT_DetectorFactoryLite::m_mapFPV
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
Definition: SCT_DetectorFactoryLite.h:62
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
SCT_GeneralParameters
Definition: SCT_GeneralParameters.h:16
SCT_DetectorFactoryLite::~SCT_DetectorFactoryLite
virtual ~SCT_DetectorFactoryLite()
Definition: SCT_DetectorFactoryLite.cxx:142
InDetDD::local
@ local
Definition: InDetDD_Defs.h:16
InDetDD::SCT_DetectorManager::addTreeTop
void addTreeTop(PVConstLink vol)
Add tree top.
Definition: SCT_DetectorManager.cxx:60
InDetDD::SCT_DetectorManager::getSCT_Design
const SCT_ModuleSideDesign * getSCT_Design(int i) const
Access to module design, casts to SCT_ModuleSideDesign.
Definition: SCT_DetectorManager.cxx:300
InDetDD::DetectorFactoryBase::geoDbTagSvc
const IGeoDbTagSvc * geoDbTagSvc() const
Definition: InDetDetectorFactoryBase.h:30
InDetDD::SiCommonItems
Definition: SiCommonItems.h:45
StoredMaterialManager.h
DecodeVersionKey.h
SCT_DetectorFactoryLite::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition: SCT_DetectorFactoryLite.h:55
get_generator_info.version
version
Definition: get_generator_info.py:33
SCT_GeoModelAthenaComps
Class to hold various Athena components.
Definition: SCT_GeoModelAthenaComps.h:14
SCT_GeoModelAthenaComps::getIdHelper
const SCT_ID * getIdHelper() const
Definition: SCT_GeoModelAthenaComps.cxx:19
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
InDetDD::Version::fullDescription
std::string fullDescription() const
Full Description For example, Version: SCT-DC1-00, Name: DC1, Layout: Final, Code Version: 2....
Definition: Version.cxx:90
SCT_Forward
Definition: SCT_Forward.h:18
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
IRDBRecord::isFieldNull
virtual bool isFieldNull(const std::string &fieldName) const =0
Check if the field value is NULL.
IRDBRecord
IRDBRecord is one record in the IRDBRecordset object.
Definition: IRDBRecord.h:27
SCT_DetectorFactoryLite::SCT_DetectorFactoryLite
SCT_DetectorFactoryLite(GeoModelIO::ReadGeoModel *sqliteReader, SCT_GeoModelAthenaComps *athenaComps, const SCT_Options &options)
Definition: SCT_DetectorFactoryLite.cxx:74
InDetDD::DetectorFactoryBase::rdbAccessSvc
IRDBAccessSvc * rdbAccessSvc()
Definition: InDetDetectorFactoryBase.h:32
InDetDD::SCT_DetectorManager::addAlignableTransform
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: SCT_DetectorManager.cxx:264
DEBUG
#define DEBUG
Definition: page_access.h:11
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
InDetDD::InDetDetectorManager::addChannel
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
Definition: InDetDetectorManager.cxx:56
StoreGateSvc.h
SCT_Forward::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Forward.cxx:131
SCT_GeometryManager.h
SCT_DetectorFactoryLite::create
virtual void create(GeoPhysVol *world)
Definition: SCT_DetectorFactoryLite.cxx:148
SCT_DetectorFactoryLite::m_db
std::unique_ptr< SCT_DataBase > m_db
Definition: SCT_DetectorFactoryLite.h:58
IGeoDbTagSvc.h
SCT_DetectorFactoryLite::m_geometryManager
std::unique_ptr< SCT_GeometryManager > m_geometryManager
Definition: SCT_DetectorFactoryLite.h:57
InDetDD::SiNumerology::addBarrel
void addBarrel(int id)
Definition: SiNumerology.cxx:97
SCT_DetectorFactoryLite::getDetectorManager
virtual const InDetDD::SCT_DetectorManager * getDetectorManager() const
Definition: SCT_DetectorFactoryLite.cxx:338
StoredPhysVol.h
description
std::string description
glabal timer - how long have I taken so far?
Definition: hcg.cxx:88
InDetDD::SCT_DetectorManager::initNeighbours
virtual void initNeighbours() override
Initialize the neighbours. This can only be done when all elements are built.
Definition: SCT_DetectorManager.cxx:112