ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
ITk::PixelDetectorTool Class Reference

#include <PixelDetectorTool.h>

Inheritance diagram for ITk::PixelDetectorTool:
Collaboration diagram for ITk::PixelDetectorTool:

Public Member Functions

 PixelDetectorTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~PixelDetectorTool ()=default
 
virtual StatusCode create () override final
 
virtual StatusCode clear () override final
 
virtual GeoVDetectorManager * manager ()
 The Detector Node corresponding to this tool. More...
 
virtual const GeoVDetectorManager * manager () const
 
virtual StatusCode registerCallback ATLAS_NOT_THREAD_SAFE () override
 
virtual StatusCode align (IOVSVC_CALLBACK_ARGS) override
 

Protected Member Functions

bool isAvailable (const std::string &versionNode, const std::string &tableNode) const
 
std::string getBlob (const std::string &versionNode, const std::string &tableNode) const
 
StatusCode createBaseTool ()
 
GeoModelIO::ReadGeoModel * getSqliteReader () const
 
const GeoVPhysVol * createTopVolume (GeoPhysVol *worldVol, GmxInterface &interface, const std::string &versionNode, const std::string &tableNode, const std::string &containingDetector="", const std::string &envelopeName="", const GeoModelIO::ReadGeoModel *sqlreader=nullptr) const
 

Protected Attributes

Gaudi::Property< std::string > m_gmxFilename {this, "GmxFilename", "", "The name of the local file to read the geometry from"}
 
Gaudi::Property< std::string > m_detectorName {this, "DetectorName", "ITkStrip", ""}
 
ServiceHandle< IRDBAccessSvcm_rdbAccessSvc {this, "RDBAccessSvc", "RDBAccessSvc", ""}
 
ServiceHandle< IRDBAccessSvcm_sqliteReadSvc {this, "SqliteReadSvc", "SqliteReadSvc", ""}
 
ServiceHandle< IGeoDbTagSvcm_geoDbTagSvc {this, "GeoDbTagSvc", "GeoDbTagSvc", ""}
 
Gaudi::Property< std::string > m_dtdName {this, "OverrideDtdName", "", "Override standard .dtd file from GeoModelXml"}
 
Gaudi::Property< bool > m_deduplicateLogVol
 
Gaudi::Property< bool > m_deduplicatePhysVol
 
Gaudi::Property< bool > m_deduplicateShape
 
Gaudi::Property< bool > m_deduplicateTransf
 
GeoVDetectorManager * m_detector
 

Private Member Functions

void doNumerology (InDetDD::PixelDetectorManager *manager)
 
void createVolume (GeoPhysVol *worldVol, GmxInterface &interface, const std::string &versionNode, const std::string &tableNode) const
 

Private Attributes

const InDetDD::PixelDetectorManagerm_detManager {}
 
std::unique_ptr< InDetDD::SiCommonItemsm_commonItems {}
 
WaferTree m_moduleTree
 
Gaudi::Property< bool > m_alignable {this, "Alignable", false, ""}
 
Gaudi::Property< std::string > m_alignmentFolderName {this, "AlignmentFolderName", "/Indet/Align", ""}
 
ServiceHandle< IGeometryDBSvcm_geometryDBSvc {this,"GeometryDBSvc","InDetGeometryDBSvc",""}
 
Gaudi::Property< std::string > m_clobOutputFileName {this, "ClobOutputName", "", "Name of file to dump CLOB content to"}
 

Detailed Description

Definition at line 30 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

Constructor & Destructor Documentation

◆ PixelDetectorTool()

PixelDetectorTool::PixelDetectorTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 22 of file ml/src/PixelDetectorTool.cxx.

26 {
27 }

◆ ~PixelDetectorTool()

virtual ITk::PixelDetectorTool::~PixelDetectorTool ( )
virtualdefault

Member Function Documentation

◆ align()

StatusCode GeoModelTool::align ( IOVSVC_CALLBACK_ARGS  )
overridevirtualinherited

Reimplemented in ALFA_DetectorTool, HGTD_DetectorTool, TRT_DetectorTool, LArDetectorToolNV, PixelDetectorTool, and SCT_DetectorTool.

Definition at line 33 of file GeoModelTool.cxx.

34 {
35  return StatusCode::SUCCESS;
36 }

◆ ATLAS_NOT_THREAD_SAFE()

virtual StatusCode registerCallback GeoModelTool::ATLAS_NOT_THREAD_SAFE ( )
overridevirtualinherited

◆ clear()

StatusCode PixelDetectorTool::clear ( )
finaloverridevirtual

Reimplemented from GeoModelTool.

Definition at line 120 of file ml/src/PixelDetectorTool.cxx.

121 {
123  if (proxy) {
124  proxy->reset();
125  m_detManager = nullptr;
126  }
127  return StatusCode::SUCCESS;
128 }

◆ create()

StatusCode PixelDetectorTool::create ( )
finaloverridevirtual

Definition at line 30 of file ml/src/PixelDetectorTool.cxx.

31 {
32  // retrieve the common stuff
34 
35  GeoModelExperiment *theExpt = nullptr;
36  ATH_CHECK(detStore()->retrieve(theExpt, "ATLAS"));
37  const PixelID *idHelper = nullptr;
38  ATH_CHECK(detStore()->retrieve(idHelper, "PixelID"));
39 
40  m_commonItems = std::make_unique<InDetDD::SiCommonItems>(idHelper);
41 
42  GeoModelIO::ReadGeoModel* sqlreader = getSqliteReader();
43 
44  // If we are not taking the geo from sqlite, check the availability of tables
45  // (or that we have a local geometry)
46  std::string node{"Pixel"};
47  std::string table{"PIXXDD"};
48 
49  if(!sqlreader){
50  if (!isAvailable(node, table)) {
51  ATH_MSG_INFO("Trying new " << m_detectorName.value() << " database location.");
52  node = "InnerDetector";
53  table = "PixelXDD";
54  if (!isAvailable(node, table)) {
55  ATH_MSG_ERROR("No ITk Pixel geometry found. ITk Pixel can not be built.");
56  return StatusCode::FAILURE;
57  }
58  }
59  }
60  //
61  // Create the detector manager
62  //
63  // The * converts a ConstPVLink to a ref to a GeoVPhysVol
64  // The & takes the address of the GeoVPhysVol
65  GeoPhysVol *world = &*theExpt->getPhysVol();
66  auto *manager = new InDetDD::PixelDetectorManager(&*detStore(), m_detectorName, "PixelID");
67  const std::string topFolder(m_alignmentFolderName);
68  manager->addFolder(topFolder);
69  if (m_alignable) {
71  manager->addAlignFolderType(alignFolderType);
72  manager->addChannel(topFolder +"/ID", 2, InDetDD::global);
73  manager->addChannel(topFolder +"/PIX", 1, InDetDD::global);
74  manager->addChannel(topFolder +"/PIXB1", 0, InDetDD::local);
75  manager->addChannel(topFolder +"/PIXB2", 0, InDetDD::local);
76  manager->addChannel(topFolder +"/PIXB3", 0, InDetDD::local);
77  manager->addChannel(topFolder +"/PIXB4", 0, InDetDD::local);
78  manager->addChannel(topFolder +"/PIXEA1", 0, InDetDD::local);
79  manager->addChannel(topFolder +"/PIXEA2", 0, InDetDD::local);
80  manager->addChannel(topFolder +"/PIXEA3", 0, InDetDD::local);
81  manager->addChannel(topFolder +"/PIXEC1", 0, InDetDD::local);
82  manager->addChannel(topFolder +"/PIXEC2", 0, InDetDD::local);
83  manager->addChannel(topFolder +"/PIXEC3", 0, InDetDD::local);
84  }
86 
87  // Load the geometry, create the volume,
88  // node,table are the location in the DB to look for the clob
89  // empty strings are the (optional) containing detector and envelope names
90  // allowed to pass a null sqlreader ptr - it will be used to steer the source of the geometry
91  const GeoVPhysVol* topVolume = createTopVolume(world, gmxInterface, node, table,"","",sqlreader);
92  if(sqlreader){
93  ATH_MSG_INFO("Building Pixel Readout Geometry from SQLite using "<<m_geoDbTagSvc->getParamSvcName());
94  gmxInterface.buildReadoutGeometryFromSqlite(m_sqliteReadSvc.operator->(),sqlreader);
95  }
96  if (topVolume) { //see that a valid pointer is returned
97  manager->addTreeTop(topVolume);
99  manager->initNeighbours();
100  } else {
101  ATH_MSG_FATAL("Could not find the Top Volume!!!");
102  return StatusCode::FAILURE;
103  }
104 
105  // set the manager
107 
108  ATH_CHECK(detStore()->record(m_detManager, m_detManager->getName()));
109  theExpt->addManager(m_detManager);
110 
111  // Create a symLink to the SiDetectorManager base class so it can be accessed as either SiDetectorManager or
112  // PixelDetectorManager
113  const InDetDD::SiDetectorManager *siDetManager = m_detManager;
114  ATH_CHECK(detStore()->symLink(m_detManager, siDetManager));
115 
116  return StatusCode::SUCCESS;
117 }

◆ createBaseTool()

StatusCode GeoModelXmlTool::createBaseTool ( )
protectedinherited

Definition at line 26 of file GeoModelXmlTool.cxx.

27 {
28  ATH_CHECK(m_geoDbTagSvc.retrieve());
29  ATH_CHECK(m_rdbAccessSvc.retrieve());
30  ATH_CHECK(m_sqliteReadSvc.retrieve());
31 
32  return StatusCode::SUCCESS;
33 }

◆ createTopVolume()

const GeoVPhysVol * GeoModelXmlTool::createTopVolume ( GeoPhysVol *  worldVol,
GmxInterface &  interface,
const std::string &  versionNode,
const std::string &  tableNode,
const std::string &  containingDetector = "",
const std::string &  envelopeName = "",
const GeoModelIO::ReadGeoModel *  sqlreader = nullptr 
) const
protectedinherited

Definition at line 35 of file GeoModelXmlTool.cxx.

36 {
37  //If we have a valid sqlreader pointer, it means the volume should already exist,
38  // so we don't need to create it
39  if(!sqlreader) createVolume(world, gmxInterface, vNode, tableName);
40  else ATH_MSG_INFO("Using geometry from .sqlite file for"<<m_detectorName);
41 
42  unsigned int nChildren = world->getNChildVols();
43 
44  const GeoVPhysVol * envVol = nullptr;
45  const GeoVPhysVol * topVol = nullptr;
46 
47  bool foundEnvelope = false;
48  bool foundContainingDetector = false;
49  // find the appropriate volume in the hierarchy, to allow it to be set as the topVolume in
50  // our detectorManager
51  std::string detectorName = m_detectorName;
52  //if a containingDetector is set, which the detector we are dealing with will sit inside, look for that first.
53  // Otherwise its just the name of the detector we are dealing with we look for
54  if(containingDetector!="") detectorName = containingDetector;
55 
56  for (int iChild = nChildren - 1; iChild>=0; --iChild) {
57  if (world->getNameOfChildVol(iChild) == detectorName) {
58  // The * converts from a ConstPVLink to a reference to a GeoVPhysVol;
59  // the & takes its address.
60  envVol = &*world->getChildVol(iChild);
61  foundContainingDetector = true;
62  if(envelopeName=="") {topVol = envVol;break;}
63  unsigned int nGrandchildren = envVol->getNChildVols();
64  for (int iGchild = nGrandchildren - 1; iGchild>=0; --iGchild) {
65  if (envVol->getNameOfChildVol(iGchild) == envelopeName) {
66  topVol = &*(envVol->getChildVol(iGchild));
67  foundEnvelope = true;
68  break;
69  }
70  }
71  }
72  }
73  if(containingDetector!="" && !foundContainingDetector) ATH_MSG_ERROR("Couldn't find the containing detector "<<containingDetector<<" in the world hierarchy!");
74  else if(envelopeName!="" && !foundEnvelope) ATH_MSG_ERROR("Couldn't find the envelope volume "<<envelopeName<<" in the world hierarchy!");
75  return topVol;
76 }

◆ createVolume()

void GeoModelXmlTool::createVolume ( GeoPhysVol *  worldVol,
GmxInterface &  interface,
const std::string &  versionNode,
const std::string &  tableNode 
) const
privateinherited

Definition at line 107 of file GeoModelXmlTool.cxx.

107  {
108  int flags{};
109  std::string gmxInput;
110 
111  if (m_gmxFilename.empty()) {
112  ATH_MSG_INFO("Getting " << m_detectorName.value() << " GeoModelXml description from the geometry database");
113  flags = 0x1; // Lowest bit ==> string; next bit implies gzip'd but we decided not to gzip
114  // how to propagate these to here best...?
115  gmxInput = getBlob(vNode,tableName);
116  if (gmxInput.empty()) { // Invalid blob?
117  std::string errMessage("GeoModelXmlTool::createTopVolume: Empty response received from the database.");
118  throw std::runtime_error(errMessage);
119  }
120  } else {
121  flags = 0;
122  gmxInput = PathResolver::find_file(m_gmxFilename, "DATAPATH");
123  ATH_MSG_INFO("Getting " << m_detectorName.value() << " GeoModelXml description from file "<<gmxInput);
124  if (gmxInput.empty()) { // File not found
125  std::string errMessage("GeoModelXmlTool::createTopVolume: Unable to find file " + m_gmxFilename +
126  " with PathResolver; check filename and DATAPATH environment variable");
127  throw std::runtime_error(errMessage);
128  }
129  }
130 
131  // Use the DTD from GeoModel
132  if (m_gmxFilename.empty()) {
133  std::string replacementName = "GeoModelXml/";
134  //now, work out the specific dtd version in the input .gmx
135  std::string startdelim = "SYSTEM \"";
136  std::string enddelim = "\" [";
137  unsigned startpos = gmxInput.find(startdelim) + startdelim.length();
138  unsigned endpos = gmxInput.find(enddelim);
139  std::string searchName = gmxInput.substr(startpos,(endpos - startpos));
140  if(searchName=="geomodel.dtd") replacementName+="geomodel_v0.dtd"; //used in xml for initial geometry tags - special case
141  else replacementName+=searchName;
142  ATH_MSG_DEBUG("Searching for "<<searchName<<" and replacing it with "<<replacementName);
143  size_t chars = searchName.length();
144  size_t index = gmxInput.find(searchName);
145  if(m_dtdName!="") replacementName=m_dtdName; //allow overriding of dtd version
146  if (index != std::string::npos) {
147  std::string dtdFile = PathResolver::find_file(replacementName, "DATAPATH");
148  ATH_MSG_DEBUG("dtdFile = " << dtdFile);
149  gmxInput.replace(index,chars, dtdFile);
150  } else {
151  throw std::runtime_error("GeoModelXmlTool::createTopVolume: Did not find valid .dtd in the gmx input string.");
152  }
153  }
154 
155  // optionally dump to local file for examination
156  if (m_clobOutputFileName != "") {
157  std::ofstream out(m_clobOutputFileName);
158  if (m_gmxFilename.empty()) {
159  out << gmxInput;
160  } else {
161  std::ifstream in(gmxInput);
162  out << in.rdbuf();
163  }
164  out.close();
165  }
166  gmxInterface.enableLogVolDeDuplication(m_deduplicateLogVol);
167  gmxInterface.enablePhysVolDeDuplication(m_deduplicatePhysVol);
168  gmxInterface.enableShapeDeDuplication(m_deduplicateShape);
169  gmxInterface.enableTransformDeDuplication(m_deduplicateTransf);
170 
171  Gmx2Geo gmx2Geo(gmxInput, world, gmxInterface, flags);
172 }

◆ doNumerology()

void PixelDetectorTool::doNumerology ( InDetDD::PixelDetectorManager manager)
private

Definition at line 130 of file ml/src/PixelDetectorTool.cxx.

131 {
132  ATH_MSG_INFO( "\n\nPixel Numerology:\n===============\n\nNumber of parts is " << m_moduleTree.nParts() );
134 
135  bool barrelDone = false;
136  for (int b = -1; b <= 1; ++b) {
137  if (m_moduleTree.count(b)) {
138  msg(MSG::INFO) << " Found barrel with index " << b << std::endl;
139  n.addBarrel(b);
140  if (!barrelDone) {
141  n.setNumLayers(m_moduleTree[b].nLayers());
142  msg(MSG::INFO) << " Number of barrel layers = " << n.numLayers() << std::endl;
143  for (LayerDisk::iterator l = m_moduleTree[b].begin(); l != m_moduleTree[b].end(); ++l) {
144  n.setNumEtaModulesForLayer(l->first, l->second.nEtaModules());
145  // All staves within a layer are assumed identical, so we can just look at the first eta
146  n.setNumPhiModulesForLayer(l->first, l->second.begin()->second.nPhiModules());
147  msg(MSG::INFO) << " layer = " << l->first << " has " << n.numEtaModulesForLayer(l->first) <<
148  " etaModules each with " << n.numPhiModulesForLayer(l->first) << " phi modules" << std::endl;
149  }
150  barrelDone = true;
151  }
152  }
153 
154  }
155 
156  bool endcapDone = false;
157  for (int ec = -2; ec <= 2; ec += 4) {
158  if (m_moduleTree.count(ec)) {
159  msg(MSG::INFO) << " Found endcap with index " << ec << std::endl;
160  n.addEndcap(ec);
161  if (!endcapDone) {
162  n.setNumDiskLayers(m_moduleTree[ec].nLayers());
163  msg(MSG::INFO) << " Number of endcap layers = " << n.numDiskLayers() << std::endl;
164  for (LayerDisk::iterator l = m_moduleTree[ec].begin(); l != m_moduleTree[ec].end(); ++l) {
165  n.setNumDisksForLayer(l->first, l->second.nEtaModules());
166  msg(MSG::INFO) << " Layer " << l->first << " has " << n.numDisksForLayer(l->first) << " disks" << std::endl;
167  for (EtaModule::iterator eta = l->second.begin(); eta != l->second.end(); ++eta) {
168  n.setNumPhiModulesForLayerDisk(l->first, eta->first, eta->second.nPhiModules());
169  msg(MSG::DEBUG) << " Disk " << eta->first << " has " <<
170  n.numPhiModulesForLayerDisk(l->first, eta->first) << " phi modules" << std::endl;
171  }
172  }
173  endcapDone = true;
174  }
175  }
176  }
177 
178  msg(MSG::INFO) << endmsg;
179 
180  int totalWafers = 0;
181  for (BarrelEndcap::iterator bec = m_moduleTree.begin(); bec != m_moduleTree.end(); ++bec) {
182  for (LayerDisk::iterator ld = bec->second.begin(); ld != bec->second.end(); ++ld) {
183  for (EtaModule::iterator eta = ld->second.begin(); eta != ld->second.end(); ++eta) {
184  for (PhiModule::iterator phi = eta->second.begin(); phi != eta->second.end(); ++phi) {
185  for (Side::iterator side =phi->second.begin(); side != phi->second.end(); ++side) {
186  totalWafers++;
187  }
188  }
189  }
190  }
191  }
192  ATH_MSG_INFO("Total number of wafers added is " << totalWafers);
193  const PixelID *pixelIdHelper = dynamic_cast<const PixelID *> (m_commonItems->getIdHelper());
194  ATH_MSG_INFO("Total number of wafer identifiers is " << pixelIdHelper->wafer_hash_max());
195 
196  // Used in digitization to create one vector big enough to hold all pixels
197  n.setMaxNumEtaCells(1);
198  for (int d = 0; d < manager->numDesigns(); ++d) {
199  n.setMaxNumPhiCells(manager->getPixelDesign(d)->rows());
200  n.setMaxNumEtaCells(manager->getPixelDesign(d)->columns());
201  }
202  ATH_MSG_INFO("Max. eta cells is " << n.maxNumEtaCells());
203  ATH_MSG_INFO("Max. phi cells is " << n.maxNumPhiCells());
204 
205  manager->numerology() = n;
206 
207  ATH_MSG_INFO("End of numerology\n");
208 }

◆ getBlob()

std::string GeoModelXmlTool::getBlob ( const std::string &  versionNode,
const std::string &  tableNode 
) const
protectedinherited

Definition at line 94 of file GeoModelXmlTool.cxx.

95 {
96  DecodeVersionKey versionKey(&*m_geoDbTagSvc, vNode);
97  const IRDBRecordset_ptr recordSet = m_rdbAccessSvc->getRecordsetPtr(tableName, versionKey.tag(), versionKey.node());
98  if (!recordSet || recordSet->size() == 0) {
99  ATH_MSG_FATAL("Unable to obtain " << vNode << " recordSet");
100  throw std::runtime_error("Unable to obtain recordSet");
101  }
102  const IRDBRecord *record = (*recordSet)[0];
103  std::string clobString = record->getString("XMLCLOB");
104  return clobString;
105 }

◆ getSqliteReader()

GeoModelIO::ReadGeoModel * GeoModelXmlTool::getSqliteReader ( ) const
protectedinherited

Definition at line 174 of file GeoModelXmlTool.cxx.

174  {
175  return m_geoDbTagSvc->getSqliteReader();
176 }

◆ isAvailable()

bool GeoModelXmlTool::isAvailable ( const std::string &  versionNode,
const std::string &  tableNode 
) const
protectedinherited

Definition at line 78 of file GeoModelXmlTool.cxx.

79 {
80  if (m_gmxFilename.empty()) {
81  DecodeVersionKey versionKey(&*m_geoDbTagSvc, vNode);
82  const std::string& versionTag = versionKey.tag();
83  const std::string& versionNode = versionKey.node();
84  const std::string version = m_rdbAccessSvc->getChildTag(tableName, versionTag, versionNode);
85  if (version.empty()) {
86  return false;
87  }
88  ATH_MSG_INFO("Using " << version << " from " << versionNode << " tag " << versionTag);
89  }
90 
91  return true;
92 }

◆ manager() [1/2]

GeoVDetectorManager * GeoModelTool::manager ( )
virtualinherited

The Detector Node corresponding to this tool.

Definition at line 21 of file GeoModelTool.cxx.

21  {
22  return m_detector;
23 }

◆ manager() [2/2]

const GeoVDetectorManager * GeoModelTool::manager ( ) const
virtualinherited

Definition at line 24 of file GeoModelTool.cxx.

24  {
25  return m_detector;
26 }

Member Data Documentation

◆ m_alignable

Gaudi::Property<bool> ITk::PixelDetectorTool::m_alignable {this, "Alignable", false, ""}
private

Definition at line 42 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_alignmentFolderName

Gaudi::Property<std::string> ITk::PixelDetectorTool::m_alignmentFolderName {this, "AlignmentFolderName", "/Indet/Align", ""}
private

Definition at line 44 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_clobOutputFileName

Gaudi::Property<std::string> GeoModelXmlTool::m_clobOutputFileName {this, "ClobOutputName", "", "Name of file to dump CLOB content to"}
privateinherited

Definition at line 60 of file GeoModelXmlTool.h.

◆ m_commonItems

std::unique_ptr<InDetDD::SiCommonItems> ITk::PixelDetectorTool::m_commonItems {}
private

Definition at line 39 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_deduplicateLogVol

Gaudi::Property<bool> GeoModelXmlTool::m_deduplicateLogVol
protectedinherited
Initial value:
{this, "enableLogVolDeduplication", false,
"Remove duplications of equivalent logical volumes"}

Definition at line 48 of file GeoModelXmlTool.h.

◆ m_deduplicatePhysVol

Gaudi::Property<bool> GeoModelXmlTool::m_deduplicatePhysVol
protectedinherited
Initial value:
{this, "enablePhysVolDeduplication", false,
"Remove duplications of equivalent physical volumes"}

Definition at line 50 of file GeoModelXmlTool.h.

◆ m_deduplicateShape

Gaudi::Property<bool> GeoModelXmlTool::m_deduplicateShape
protectedinherited
Initial value:
{this, "enableShapeDeduplication", false,
"Remove duplications of equivalent shapes"}

Definition at line 52 of file GeoModelXmlTool.h.

◆ m_deduplicateTransf

Gaudi::Property<bool> GeoModelXmlTool::m_deduplicateTransf
protectedinherited
Initial value:
{this, "enableTransDeduplication", false,
"Remove duplications of equivalent transform nodes"}

Definition at line 54 of file GeoModelXmlTool.h.

◆ m_detector

GeoVDetectorManager* GeoModelTool::m_detector
protectedinherited

Definition at line 36 of file GeoModelTool.h.

◆ m_detectorName

Gaudi::Property<std::string> GeoModelXmlTool::m_detectorName {this, "DetectorName", "ITkStrip", ""}
protectedinherited

Definition at line 42 of file GeoModelXmlTool.h.

◆ m_detManager

const InDetDD::PixelDetectorManager* ITk::PixelDetectorTool::m_detManager {}
private

Definition at line 38 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_dtdName

Gaudi::Property<std::string> GeoModelXmlTool::m_dtdName {this, "OverrideDtdName", "", "Override standard .dtd file from GeoModelXml"}
protectedinherited

Definition at line 46 of file GeoModelXmlTool.h.

◆ m_geoDbTagSvc

ServiceHandle<IGeoDbTagSvc> GeoModelXmlTool::m_geoDbTagSvc {this, "GeoDbTagSvc", "GeoDbTagSvc", ""}
protectedinherited

Definition at line 45 of file GeoModelXmlTool.h.

◆ m_geometryDBSvc

ServiceHandle< IGeometryDBSvc > ITk::PixelDetectorTool::m_geometryDBSvc {this,"GeometryDBSvc","InDetGeometryDBSvc",""}
private

Definition at line 47 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_gmxFilename

Gaudi::Property<std::string> GeoModelXmlTool::m_gmxFilename {this, "GmxFilename", "", "The name of the local file to read the geometry from"}
protectedinherited

Definition at line 41 of file GeoModelXmlTool.h.

◆ m_moduleTree

WaferTree ITk::PixelDetectorTool::m_moduleTree
private

Definition at line 40 of file ml/PixelGeoModelXml/PixelDetectorTool.h.

◆ m_rdbAccessSvc

ServiceHandle<IRDBAccessSvc> GeoModelXmlTool::m_rdbAccessSvc {this, "RDBAccessSvc", "RDBAccessSvc", ""}
protectedinherited

Definition at line 43 of file GeoModelXmlTool.h.

◆ m_sqliteReadSvc

ServiceHandle<IRDBAccessSvc> GeoModelXmlTool::m_sqliteReadSvc {this, "SqliteReadSvc", "SqliteReadSvc", ""}
protectedinherited

Definition at line 44 of file GeoModelXmlTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
GeoModelXmlTool::m_rdbAccessSvc
ServiceHandle< IRDBAccessSvc > m_rdbAccessSvc
Definition: GeoModelXmlTool.h:43
GeoModelExperiment::getPhysVol
GeoPhysVol * getPhysVol()
Destructor.
Definition: GeoModelExperiment.cxx:21
GeoModelXmlTool::createBaseTool
StatusCode createBaseTool()
Definition: GeoModelXmlTool.cxx:26
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
InDetDD::ITk::PixelGmxInterface
Definition: PixelGmxInterface.h:31
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
index
Definition: index.py:1
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
hist_file_dump.d
d
Definition: hist_file_dump.py:137
IRDBRecord::getString
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
GeoModelExperiment
Definition: GeoModelExperiment.h:32
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
GeoModelXmlTool::m_clobOutputFileName
Gaudi::Property< std::string > m_clobOutputFileName
Definition: GeoModelXmlTool.h:60
GeoModelXmlTool::isAvailable
bool isAvailable(const std::string &versionNode, const std::string &tableNode) const
Definition: GeoModelXmlTool.cxx:78
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
InDetDD::static_run1
@ static_run1
Definition: InDetDD_Defs.h:19
InDetDD::global
@ global
Definition: InDetDD_Defs.h:16
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ITk::PixelDetectorTool::doNumerology
void doNumerology(InDetDD::PixelDetectorManager *manager)
Definition: ml/src/PixelDetectorTool.cxx:130
GeoModelXmlTool::createTopVolume
const GeoVPhysVol * createTopVolume(GeoPhysVol *worldVol, GmxInterface &interface, const std::string &versionNode, const std::string &tableNode, const std::string &containingDetector="", const std::string &envelopeName="", const GeoModelIO::ReadGeoModel *sqlreader=nullptr) const
Definition: GeoModelXmlTool.cxx:35
GeoModelXmlTool::m_detectorName
Gaudi::Property< std::string > m_detectorName
Definition: GeoModelXmlTool.h:42
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
GeoModelXmlTool::getSqliteReader
GeoModelIO::ReadGeoModel * getSqliteReader() const
Definition: GeoModelXmlTool.cxx:174
GeoModelTool::manager
virtual GeoVDetectorManager * manager()
The Detector Node corresponding to this tool.
Definition: GeoModelTool.cxx:21
GeoModelXmlTool::m_gmxFilename
Gaudi::Property< std::string > m_gmxFilename
Definition: GeoModelXmlTool.h:41
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
ClassID_traits
Default, invalid implementation of ClassID_traits.
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:40
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ITk::PixelDetectorTool::m_detManager
const InDetDD::PixelDetectorManager * m_detManager
Definition: ml/PixelGeoModelXml/PixelDetectorTool.h:38
GeoModelXmlTool::createVolume
void createVolume(GeoPhysVol *worldVol, GmxInterface &interface, const std::string &versionNode, const std::string &tableNode) const
Definition: GeoModelXmlTool.cxx:107
GeoModelXmlTool::m_dtdName
Gaudi::Property< std::string > m_dtdName
Definition: GeoModelXmlTool.h:46
GeoModelXmlTool::m_deduplicatePhysVol
Gaudi::Property< bool > m_deduplicatePhysVol
Definition: GeoModelXmlTool.h:50
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
InDetDD::local
@ local
Definition: InDetDD_Defs.h:16
ITk::PixelDetectorTool::m_commonItems
std::unique_ptr< InDetDD::SiCommonItems > m_commonItems
Definition: ml/PixelGeoModelXml/PixelDetectorTool.h:39
GeoModelXmlTool::m_deduplicateShape
Gaudi::Property< bool > m_deduplicateShape
Definition: GeoModelXmlTool.h:52
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
GeoModelTool::m_detector
GeoVDetectorManager * m_detector
Definition: GeoModelTool.h:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
ITk::PixelDetectorTool::m_alignmentFolderName
Gaudi::Property< std::string > m_alignmentFolderName
Definition: ml/PixelGeoModelXml/PixelDetectorTool.h:44
python.ext.table_printer.table
list table
Definition: table_printer.py:81
PixelID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: PixelID.cxx:912
InDetDD::SiNumerology
Definition: SiNumerology.h:27
GeoModelExperiment::addManager
void addManager(const GeoVDetectorManager *)
Definition: GeoModelExperiment.cxx:40
get_generator_info.version
version
Definition: get_generator_info.py:33
GeoModelXmlTool::getBlob
std::string getBlob(const std::string &versionNode, const std::string &tableNode) const
Definition: GeoModelXmlTool.cxx:94
GeoModelXmlTool::m_deduplicateLogVol
Gaudi::Property< bool > m_deduplicateLogVol
Definition: GeoModelXmlTool.h:48
ITk::PixelDetectorTool::m_alignable
Gaudi::Property< bool > m_alignable
Definition: ml/PixelGeoModelXml/PixelDetectorTool.h:42
GeoModelXmlTool::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: GeoModelXmlTool.h:45
IRDBRecord
IRDBRecord is one record in the IRDBRecordset object.
Definition: IRDBRecord.h:27
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
GeoModelXmlTool::m_sqliteReadSvc
ServiceHandle< IRDBAccessSvc > m_sqliteReadSvc
Definition: GeoModelXmlTool.h:44
DEBUG
#define DEBUG
Definition: page_access.h:11
InDetDD::SiDetectorManager
Definition: SiDetectorManager.h:60
BarrelEndcap::nParts
int nParts() const
Definition: WaferTree.h:69
PixelID
Definition: PixelID.h:67
SG::DataProxy
Definition: DataProxy.h:44
GeoModelXmlTool::m_deduplicateTransf
Gaudi::Property< bool > m_deduplicateTransf
Definition: GeoModelXmlTool.h:54
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
InDetDD::AlignFolderType
AlignFolderType
Definition: InDetDD_Defs.h:19
geometry_dat_to_json.ld
ld
Definition: geometry_dat_to_json.py:14
node
Definition: memory_hooks-stdcmalloc.h:74
ITk::PixelDetectorTool::m_moduleTree
WaferTree m_moduleTree
Definition: ml/PixelGeoModelXml/PixelDetectorTool.h:40
GeoModelXmlTool::GeoModelXmlTool
GeoModelXmlTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: GeoModelXmlTool.cxx:19