ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
GeoModelSvc Class Reference

#include <GeoModelSvc.h>

Inheritance diagram for GeoModelSvc:
Collaboration diagram for GeoModelSvc:

Public Member Functions

 GeoModelSvc (const std::string &name, ISvcLocator *svc)
 
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE () override
 
virtual StatusCode finalize () override
 
virtual void tagInfoUpdated () override final
 Callback from TagInfoMgr on TagInfo change. More...
 
StatusCode compareTags ()
 
virtual const IGeoModelToolgetTool (std::string toolName) const override
 
virtual StatusCode clear () override
 

Private Member Functions

virtual const std::string & atlasVersion () const override
 
virtual const std::string & inDetVersionOverride () const override
 
virtual const std::string & pixelVersionOverride () const override
 
virtual const std::string & SCT_VersionOverride () const override
 
virtual const std::string & TRT_VersionOverride () const override
 
virtual const std::string & LAr_VersionOverride () const override
 
virtual const std::string & tileVersionOverride () const override
 
virtual const std::string & muonVersionOverride () const override
 
virtual const std::string & caloVersionOverride () const override
 
virtual const std::string & magFieldVersionOverride () const override
 
virtual const std::string & cavernInfraVersionOverride () const override
 
virtual const std::string & forwardDetectorsVersionOverride () const override
 
virtual const std::string & inDetVersion () const override
 
virtual const std::string & pixelVersion () const override
 
virtual const std::string & SCT_Version () const override
 
virtual const std::string & TRT_Version () const override
 
virtual const std::string & LAr_Version () const override
 
virtual const std::string & tileVersion () const override
 
virtual const std::string & muonVersion () const override
 
virtual const std::string & caloVersion () const override
 
virtual const std::string & magFieldVersion () const override
 
virtual const std::string & cavernInfraVersion () const override
 
virtual const std::string & forwardDetectorsVersion () const override
 
virtual GeoModel::GeoConfig geoConfig () const override
 
virtual const bool & isEmecStandard () const override
 
StatusCode geoInit ()
 
StatusCode fillTagInfo () const
 

Private Attributes

ToolHandleArray< IGeoModelToolm_detectorTools {this,"DetectorTools",{}}
 
ISvcLocator * m_pSvcLocator {nullptr}
 
ServiceHandle< StoreGateSvcm_detStore {this,"DetectorStore","DetectorStore",""}
 
ServiceHandle< ITagInfoMgrm_tagInfoMgr {this,"TagInfoMgr","TagInfoMgr",""}
 
ServiceHandle< IGeoDbTagSvcm_geoDbTagSvc {this,"GeoDbTagSvc","GeoDbTagSvc",""}
 
Gaudi::Property< std::string > m_atlasVersion {this,"AtlasVersion","","ATLAS Geometry Tag"}
 
Gaudi::Property< std::string > m_inDetVersionOverride {this,"InDetVersionOverride","","Overrider for InDet version"}
 
Gaudi::Property< std::string > m_pixelVersionOverride {this,"PixelVersionOverride","","Overrider for Pixel version"}
 
Gaudi::Property< std::string > m_sctVersionOverride {this,"SCT_VersionOverride","","Overrider for SCT version"}
 
Gaudi::Property< std::string > m_trtVersionOverride {this,"TRT_VersionOverride","","Overrider for TRT version"}
 
Gaudi::Property< std::string > m_larVersionOverride {this,"LAr_VersionOverride","","Overrider for LAr version"}
 
Gaudi::Property< std::string > m_tileVersionOverride {this,"TileVersionOverride","","Overrider for Tile version"}
 
Gaudi::Property< std::string > m_muonVersionOverride {this,"MuonVersionOverride","","Overrider for Muon version"}
 
Gaudi::Property< std::string > m_caloVersionOverride {this,"CaloVersionOverride","","Overrider for Calo version"}
 
Gaudi::Property< std::string > m_bFieldVersionOverride {this,"MagFieldVersionOverride","","Overrider for MagField version"}
 
Gaudi::Property< std::string > m_cavInfraVersionOverride {this,"CavernInfraVersionOverride","","Overrider for CavernInfra version"}
 
Gaudi::Property< std::string > m_forDetVersionOverride {this,"ForwardDetectorsVersionOverride","","Overrider for Forward Detectors version"}
 
Gaudi::Property< bool > m_callBackON {this,"AlignCallbacks",true,"Read alignment in callbacks"}
 
Gaudi::Property< bool > m_ignoreTagDifference {this,"IgnoreTagDifference",false,"Ignore TagInfo and configuration tag diffs"}
 
Gaudi::Property< bool > m_useTagInfo {this,"UseTagInfo",true,"Use TagInfo"}
 
Gaudi::Property< bool > m_statisticsToFile {this,"StatisticsToFile",false,"Generate GeoModelStatistics file in the run directory"}
 
Gaudi::Property< int > m_supportedGeometry {this,"SupportedGeometry",0,"Supported geometry flag is set in jobOpt and is equal to major release version"}
 
Gaudi::Property< bool > m_ignoreTagSupport {this,"IgnoreTagSupport",false,"Skip checking if the geometry tag is supported/obsolete"}
 
Gaudi::Property< bool > m_emecStandard {this,"EMECStandard",false,"Activate the EMEC construction from standard Geant4 Shapes: G4GenericTrap"}
 
Gaudi::Property< bool > m_sqliteDb {this,"SQLiteDB",false,"Activate GeoModel initialization from SQLite"}
 
Gaudi::Property< std::string > m_sqliteDbFullPath {this,"SQLiteDBFullPath","","Explicit setting of full path to SQLiteDB. For testing purposes only"}
 
std::unique_ptr< GeoModelIO::ReadGeoModel > m_sqliteReader {}
 
std::unique_ptr< GMDBManager > m_sqliteDbManager {}
 

Detailed Description

Definition at line 26 of file GeoModelSvc.h.

Constructor & Destructor Documentation

◆ GeoModelSvc()

GeoModelSvc::GeoModelSvc ( const std::string &  name,
ISvcLocator *  svc 
)

Definition at line 30 of file GeoModelSvc.cxx.

31  : base_class(name,svc)
33 {
34 }

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

virtual StatusCode initialize GeoModelSvc::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ atlasVersion()

virtual const std::string& GeoModelSvc::atlasVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 87 of file GeoModelSvc.h.

87 {return m_atlasVersion;}

◆ caloVersion()

virtual const std::string& GeoModelSvc::caloVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 107 of file GeoModelSvc.h.

107 {return m_geoDbTagSvc->caloVersion();}

◆ caloVersionOverride()

virtual const std::string& GeoModelSvc::caloVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 95 of file GeoModelSvc.h.

95 {return m_caloVersionOverride;}

◆ cavernInfraVersion()

virtual const std::string& GeoModelSvc::cavernInfraVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 109 of file GeoModelSvc.h.

109 {return m_geoDbTagSvc->cavernInfraVersion();}

◆ cavernInfraVersionOverride()

virtual const std::string& GeoModelSvc::cavernInfraVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 97 of file GeoModelSvc.h.

◆ clear()

StatusCode GeoModelSvc::clear ( )
overridevirtual

Definition at line 564 of file GeoModelSvc.cxx.

565 {
566  ATH_MSG_DEBUG("In clear()");
567 
568  // Call clear() for all tools
569  for (ToolHandle<IGeoModelTool>& tool : m_detectorTools) {
570  if(tool->clear().isFailure()) {
571  ATH_MSG_ERROR("clear() failed for the tool: " << tool->name());
572  return StatusCode::FAILURE;
573  } else {
574  ATH_MSG_DEBUG(tool->name() << " tool released");
575  }
576  }
577 
578  // Delete GeoModelExperiment - cascade delete of the entire GeoModel tree
579  std::vector<std::string> sgkeysExp;
580  m_detStore->keys<GeoModelExperiment>(sgkeysExp);
581  for (const std::string& key : sgkeysExp) {
583  if(proxy) {
584  proxy->reset();
585  ATH_MSG_DEBUG(key << " GeoModel experiment released");
586  }
587  }
588 
589  // Release stored material manager
590  std::vector<std::string> sgkeysMat;
591  m_detStore->keys<StoredMaterialManager>(sgkeysMat);
592  for (const std::string& key : sgkeysMat) {
594  if(proxy) {
595  proxy->reset();
596  ATH_MSG_DEBUG(key << " material manager released");
597  }
598  }
599 
600  return StatusCode::SUCCESS;
601 }

◆ compareTags()

StatusCode GeoModelSvc::compareTags ( )

Definition at line 321 of file GeoModelSvc.cxx.

322 {
323  bool tagsMatch = true;
324 
325  ATH_MSG_DEBUG("in compareTags()");
326 
327  // Get tags from TagInfoMgr
328  const ITagInfoMgr::NameTagPairVec pairs = m_tagInfoMgr->getInputTags();
329  for( const auto& pair : pairs ) {
330  std::string tagPairName = pair.first;
331  if(tagPairName=="GeoAtlas") {
332  // ** Two possible cases need to be taken into account
333  // **
334  // ** 1. The retrieved ATLAS tag is following naming schema ATLAS-...-XX-YY-ZZ
335  // ** where '...' can be anything, it may also containg one or more '-'.
336  // ** If this is the case, then we need to check whether the job option tag
337  // ** is also following the same schema and they have the same 'ATLAS-...-XX' part
338  // **
339  // ** 2. The retrieved ATLAS tag is not following the schema mentioned above
340  // ** If this is the case, we just need to check the exact match
341  std::vector<std::string> tokensTagInfo, tokensJobOpt;
342 
343  // Parse Tag Info tag
344  std::string::size_type startpos = 0;
345  std::string currStr = pair.second;
346  for(std::string::size_type endpos=currStr.find('-'); endpos!=std::string::npos; endpos=currStr.find('-',startpos)) {
347  tokensTagInfo.push_back(currStr.substr(startpos,endpos-startpos));
348  startpos = endpos+1;
349  }
350  tokensTagInfo.push_back(currStr.substr(startpos));
351 
352  size_t tokensTagInfoSize = tokensTagInfo.size();
353  bool tagInfoFollowsTheScheme = (tokensTagInfoSize>=5
354  && tokensTagInfo[tokensTagInfoSize-1].size()==2
355  && tokensTagInfo[tokensTagInfoSize-2].size()==2
356  && tokensTagInfo[tokensTagInfoSize-3].size()==2);
357 
358  if(tagInfoFollowsTheScheme) {
359  // Parse Job Options tag
360  startpos = 0;
361  currStr = m_atlasVersion;
362  for(std::string::size_type endpos=currStr.find('-'); endpos!=std::string::npos; endpos=currStr.find('-',startpos)) {
363  tokensJobOpt.push_back(currStr.substr(startpos,endpos-startpos));
364  startpos = endpos+1;
365  }
366  tokensJobOpt.push_back(currStr.substr(startpos));
367 
368  size_t tokensJobOptSize = tokensJobOpt.size();
369  bool jobOptFollowsTheScheme = (tokensJobOptSize>=5
370  && tokensJobOpt[tokensJobOptSize-1].size()==2
371  && tokensJobOpt[tokensJobOptSize-2].size()==2
372  && tokensJobOpt[tokensJobOptSize-3].size()==2);
373  if(jobOptFollowsTheScheme) {
374  const std::string& atlasVersion = m_atlasVersion;
375  tagsMatch = (pair.second.substr(0,currStr.size()-6)==atlasVersion.substr(0,atlasVersion.size()-6));
376  }
377  else {
378  tagsMatch = false;
379  }
380  }
381  else {// Check for the exact match
382  tagsMatch = m_atlasVersion == pair.second;
383  }
384  }
385  else if(tagPairName=="GeoInDet")
386  tagsMatch = m_inDetVersionOverride == pair.second;
387  else if(tagPairName=="GeoPixel")
388  tagsMatch = m_pixelVersionOverride == pair.second;
389  else if(tagPairName=="GeoSCT")
390  tagsMatch = m_sctVersionOverride == pair.second;
391  else if(tagPairName=="GeoTRT")
392  tagsMatch = m_trtVersionOverride == pair.second;
393  else if(tagPairName=="GeoLAr")
394  tagsMatch = m_larVersionOverride == pair.second;
395  else if(tagPairName=="GeoTile")
396  tagsMatch = m_tileVersionOverride == pair.second;
397  else if(tagPairName=="GeoMuon")
398  tagsMatch = m_muonVersionOverride == pair.second;
399 
400  if(!tagsMatch) break;
401  }
402 
403  if(!tagsMatch) {
404  msg((m_ignoreTagDifference? MSG::WARNING : MSG::ERROR))
405  << "*** *** Geometry configured through jobOptions does not match TagInfo tags! *** ***" << endmsg;
406  ATH_MSG_INFO("** Job Option configuration: ");
407  ATH_MSG_INFO("* ATLAS tag: " << m_atlasVersion);
408  ATH_MSG_INFO("* InDet tag: " << m_inDetVersionOverride);
409  ATH_MSG_INFO("* Pixel tag: " << m_pixelVersionOverride);
410  ATH_MSG_INFO("* SCT tag: " << m_sctVersionOverride);
411  ATH_MSG_INFO("* TRT tag: " << m_trtVersionOverride);
412  ATH_MSG_INFO("* LAr tag: " << m_larVersionOverride);
413  ATH_MSG_INFO("* Tile tag: " << m_tileVersionOverride);
414  ATH_MSG_INFO("* Muon tag: " << m_muonVersionOverride);
415  ATH_MSG_INFO("* Calo tag: " << m_caloVersionOverride);
416  ATH_MSG_INFO("* MagField tag: " << m_bFieldVersionOverride);
417  ATH_MSG_INFO("* CavernInfra tag: " << m_cavInfraVersionOverride);
418  ATH_MSG_INFO("* ForwardDetectors tag: " << m_forDetVersionOverride);
419  ATH_MSG_INFO("** TAG INFO configuration: ");
420  for (const auto& pair : pairs) {
421  std::string tagPairName = pair.first;
422  if(tagPairName=="GeoAtlas")
423  ATH_MSG_INFO("* ATLAS tag: " << pair.second);
424  else if(tagPairName=="GeoInDet")
425  ATH_MSG_INFO("*InDet tag: " << pair.second);
426  else if(tagPairName=="GeoPixel")
427  ATH_MSG_INFO("*Pixel tag: " << pair.second);
428  else if(tagPairName=="GeoSCT")
429  ATH_MSG_INFO("*SCT tag: " << pair.second);
430  else if(tagPairName=="GeoTRT")
431  ATH_MSG_INFO("*TRT tag: " << pair.second);
432  else if(tagPairName=="GeoLAr")
433  ATH_MSG_INFO("*LAr tag: " << pair.second);
434  else if(tagPairName=="GeoTile")
435  ATH_MSG_INFO("*Tile tag: " << pair.second);
436  else if(tagPairName=="GeoMuon")
437  ATH_MSG_INFO("*Muon tag: " << pair.second);
438  else if(tagPairName=="GeoCalo")
439  ATH_MSG_INFO("*Calo tag: " << pair.second);
440  else if(tagPairName=="GeoMagField")
441  ATH_MSG_INFO("*MagField tag: " << pair.second);
442  else if(tagPairName=="GeoCavernInfra")
443  ATH_MSG_INFO("*CavernInfra tag: " << pair.second);
444  else if(tagPairName=="GeoForwardDetectors")
445  ATH_MSG_INFO("*ForwardDetectors tag: " << pair.second);
446  }
447 
448  if(!m_ignoreTagDifference) {
449  ATH_MSG_INFO("*** *** Please fix geometry tag settings *** ***");
450  return StatusCode::FAILURE;
451  }
452  }
453  else
454  ATH_MSG_DEBUG("Geometry configurations in jobOptions and TagInfo are consistent");
455 
456  return StatusCode::SUCCESS;
457 }

◆ fillTagInfo()

StatusCode GeoModelSvc::fillTagInfo ( ) const
private

Definition at line 462 of file GeoModelSvc.cxx.

463 {
464  if(m_atlasVersion == "") {
465  ATH_MSG_ERROR("ATLAS version is empty");
466  return StatusCode::FAILURE;
467  }
468 
469  if(m_tagInfoMgr->addTag("GeoAtlas",m_atlasVersion).isFailure()) {
470  ATH_MSG_ERROR("GeoModelSvc Atlas tag: " << m_atlasVersion << " not added to TagInfo ");
471  return StatusCode::FAILURE;
472  }
473 
474  if(m_inDetVersionOverride != "") {
475  if(m_tagInfoMgr->addTag("GeoInDet",m_inDetVersionOverride).isFailure()) {
476  ATH_MSG_ERROR("GeoModelSvc InDet tag: " << m_inDetVersionOverride << " not added to TagInfo ");
477  return StatusCode::FAILURE;
478  }
479  }
480 
481  if(m_pixelVersionOverride != "") {
482  if(m_tagInfoMgr->addTag("GeoPixel",m_pixelVersionOverride).isFailure()) {
483  ATH_MSG_ERROR("GeoModelSvc Pixel tag: " << m_pixelVersionOverride << " not added to TagInfo ");
484  return StatusCode::FAILURE;
485  }
486  }
487 
488  if(m_sctVersionOverride != "") {
489  if(m_tagInfoMgr->addTag("GeoSCT",m_sctVersionOverride).isFailure()) {
490  ATH_MSG_ERROR("GeoModelSvc SCT tag: " << m_sctVersionOverride << " not added to TagInfo ");
491  return StatusCode::FAILURE;
492  }
493  }
494 
495  if(m_trtVersionOverride != "") {
496  if(m_tagInfoMgr->addTag("GeoTRT",m_trtVersionOverride).isFailure()) {
497  ATH_MSG_ERROR("GeoModelSvc TRT tag: " << m_trtVersionOverride << " not added to TagInfo ");
498  return StatusCode::FAILURE;
499  }
500  }
501 
502  if(m_larVersionOverride != "") {
503  if(m_tagInfoMgr->addTag("GeoLAr",m_larVersionOverride).isFailure()) {
504  ATH_MSG_ERROR("GeoModelSvc LAr tag: " << m_larVersionOverride << " not added to TagInfo ");
505  return StatusCode::FAILURE;
506  }
507  }
508 
509  if(m_tileVersionOverride != "") {
510  if(m_tagInfoMgr->addTag("GeoTile",m_tileVersionOverride).isFailure()) {
511  ATH_MSG_ERROR("GeoModelSvc Tile tag: " << m_tileVersionOverride << " not added to TagInfo ");
512  return StatusCode::FAILURE;
513  }
514  }
515 
516  if(m_muonVersionOverride != "") {
517  if(m_tagInfoMgr->addTag("GeoMuon",m_muonVersionOverride).isFailure()) {
518  ATH_MSG_ERROR("GeoModelSvc Muon tag: " << m_muonVersionOverride << " not added to TagInfo ");
519  return StatusCode::FAILURE;
520  }
521  }
522 
523  if(m_caloVersionOverride != "") {
524  if(m_tagInfoMgr->addTag("GeoCalo",m_caloVersionOverride).isFailure()) {
525  ATH_MSG_ERROR("GeoModelSvc Calo tag: " << m_caloVersionOverride << " not added to TagInfo ");
526  return StatusCode::FAILURE;
527  }
528  }
529 
530  if(m_bFieldVersionOverride != "") {
531  if(m_tagInfoMgr->addTag("GeoMagField",m_bFieldVersionOverride).isFailure()) {
532  ATH_MSG_ERROR("GeoModelSvc MagField tag: " << m_bFieldVersionOverride << " not added to TagInfo ");
533  return StatusCode::FAILURE;
534  }
535  }
536 
537  if(m_cavInfraVersionOverride != "") {
538  if(m_tagInfoMgr->addTag("GeoCavernInfra",m_cavInfraVersionOverride).isFailure()) {
539  ATH_MSG_ERROR("GeoModelSvc CavernInfra tag: " << m_cavInfraVersionOverride << " not added to TagInfo ");
540  return StatusCode::FAILURE;
541  }
542  }
543 
544  if(m_forDetVersionOverride != "") {
545  if(m_tagInfoMgr->addTag("GeoForwardDetectors",m_forDetVersionOverride).isFailure()) {
546  ATH_MSG_ERROR("GeoModelSvc ForwardDetectors tag: " << m_forDetVersionOverride << " not added to TagInfo ");
547  return StatusCode::FAILURE;
548  }
549  }
550 
551  return StatusCode::SUCCESS;
552 }

◆ finalize()

StatusCode GeoModelSvc::finalize ( )
overridevirtual

Definition at line 117 of file GeoModelSvc.cxx.

118 {
119  m_tagInfoMgr->removeListener(this);
120  return StatusCode::SUCCESS;
121 }

◆ forwardDetectorsVersion()

virtual const std::string& GeoModelSvc::forwardDetectorsVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 110 of file GeoModelSvc.h.

110 {return m_geoDbTagSvc->forwardDetectorsVersion();}

◆ forwardDetectorsVersionOverride()

virtual const std::string& GeoModelSvc::forwardDetectorsVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 98 of file GeoModelSvc.h.

◆ geoConfig()

virtual GeoModel::GeoConfig GeoModelSvc::geoConfig ( ) const
inlineoverrideprivatevirtual

Definition at line 112 of file GeoModelSvc.h.

112 {return m_geoDbTagSvc->geoConfig();}

◆ geoInit()

StatusCode GeoModelSvc::geoInit ( )
private

Definition at line 123 of file GeoModelSvc.cxx.

124 {
125  GeoPhysVol* worldPhys{nullptr};
126  ServiceHandle<IRDBAccessSvc> rdbAccess("RDBAccessSvc",name());
127 
128  // Setup the GeoDbTagSvc
129  ATH_CHECK( m_geoDbTagSvc.retrieve() );
130 
131  GeoDbTagSvc* dbTagSvc = dynamic_cast<GeoDbTagSvc*>(m_geoDbTagSvc.get());
132  if(dbTagSvc==nullptr) {
133  ATH_MSG_FATAL("Unable to dyn-cast the IGeoDbTagSvc pointer to GeoDbTagSvc");
134  return StatusCode::FAILURE;
135  }
136 
137  // Build geometry from the SQLiteDB file
138  if(m_sqliteDb) {
139  std::string sqliteDbName = "Geometry/" + m_atlasVersion + ".db";
140  std::string sqliteDbPath = m_sqliteDbFullPath.empty()
141  ? PathResolver::find_file (sqliteDbName, "CALIBPATH")
143  if(sqliteDbPath.empty() && m_sqliteDbFullPath.empty()) {
144  ATH_MSG_FATAL("Failed to find SQLite database file " << sqliteDbName << " for reading in persistent GeoModel tree");
145  return StatusCode::FAILURE;
146  }
147  else {
148  ATH_MSG_INFO("Successfully located SQLite database file " << sqliteDbPath << " for reading in persistent GeoModel tree");
149  }
150  // Read raw geometry description from the file
151  m_sqliteDbManager = std::make_unique<GMDBManager>(sqliteDbPath);
152  if(m_sqliteDbManager->checkIsDBOpen()) {
153  ATH_MSG_INFO("Successfully opened SQLite DB file " << sqliteDbPath << " for reading in persistent GeoModel tree");
154  } else {
155  ATH_MSG_FATAL("Failed to open SQLite database " << sqliteDbPath << " for reading in persistent GeoModel tree");
156  return StatusCode::FAILURE;
157  }
158  m_sqliteReader = std::make_unique<GeoModelIO::ReadGeoModel>(m_sqliteDbManager.get());
159  GeoVPhysVol* vWorldPhys ATLAS_THREAD_SAFE = const_cast<GeoVPhysVol*>(m_sqliteReader->buildGeoModel());
160  worldPhys = dynamic_cast<GeoPhysVol*>(vWorldPhys);
161  if(!worldPhys) {
162  ATH_MSG_FATAL("Having Full Physical Volumes as World Volumes not supported!");
163  return StatusCode::FAILURE;
164  }
165  ATH_MSG_INFO("Successfully read persistent GeoModel description from the file");
166 
167  // Initialize SqliteReadSvc and open the file for reading plain SQLite tables with DetDescr parameters
168  ServiceHandle<IRDBAccessSvc> sqliteReadSvc("SqliteReadSvc",name());
169  ATH_CHECK(sqliteReadSvc.retrieve());
170  if(!sqliteReadSvc->connect(sqliteDbPath)) {
171  ATH_MSG_FATAL("Failed to open SQLite database file " << sqliteDbPath << " for reading geometry parameters");
172  return StatusCode::FAILURE;
173  } else {
174  ATH_MSG_INFO("Successfully opened SQLite DB file: " << sqliteDbPath << " for reading Det Descr parameters");
175  }
176  dbTagSvc->setParamSvcName("SqliteReadSvc");
177  dbTagSvc->setSqliteReader(m_sqliteReader.get());
178  }
179  else {
180  // Build geometry from the GeometryDB
181  ATH_MSG_DEBUG("** Building geometry configuration: ");
182  ATH_MSG_DEBUG("* ATLAS tag: " << m_atlasVersion);
183  ATH_MSG_DEBUG("* InDet tag: " << m_inDetVersionOverride);
184  ATH_MSG_DEBUG("* Pixel tag: " << m_pixelVersionOverride);
185  ATH_MSG_DEBUG("* SCT tag: " << m_sctVersionOverride);
186  ATH_MSG_DEBUG("* TRT tag: " << m_trtVersionOverride);
187  ATH_MSG_DEBUG("* LAr tag: " << m_larVersionOverride);
188  ATH_MSG_DEBUG("* Tile tag: " << m_tileVersionOverride);
189  ATH_MSG_DEBUG("* Muon tag: " << m_muonVersionOverride);
190  ATH_MSG_DEBUG("* Calo tag: " << m_caloVersionOverride);
191  ATH_MSG_DEBUG("* MagField tag: " << m_bFieldVersionOverride);
192  ATH_MSG_DEBUG("* CavernInfra tag: " << m_cavInfraVersionOverride);
193  ATH_MSG_DEBUG("* ForwardDetectors tag: " << m_forDetVersionOverride);
194 
195  // Get RDBAccessSvc and open connection to DB
196  ATH_CHECK( rdbAccess.retrieve() );
197 
198  if(!rdbAccess->connect()) {
199  ATH_MSG_FATAL("Unable to connect to the Geometry DB");
200  return StatusCode::FAILURE;
201  }
202 
203  // Check the existence of ATLAS tag in the database
204  if(rdbAccess->getChildTag("ATLAS",m_atlasVersion,"ATLAS")=="") {
205  ATH_MSG_FATAL(" *** *** Wrong ATLAS layout: " << m_atlasVersion << " *** ***");
206  ATH_MSG_FATAL(" Either ATLAS geometry tag has been misspelled, or the DB Release does not contain the geometry specified.");
207  ATH_MSG_FATAL(" In latter case please update DB Release version");
208  return StatusCode::FAILURE;
209  }
210 
211  dbTagSvc->setParamSvcName("RDBAccessSvc");
212 
213  if(!m_ignoreTagSupport) {
214  RDBTagDetails atlasTagDetails;
215  rdbAccess->getTagDetails(atlasTagDetails, m_atlasVersion);
216  const coral::AttributeSpecification& supportedSpec = atlasTagDetails["SUPPORTED"].specification();
217  if(supportedSpec.type()==typeid(bool)) {
218  if(!atlasTagDetails["SUPPORTED"].data<bool>()) {
219  ATH_MSG_FATAL(" *** *** ATLAS layout " << m_atlasVersion << " is OBSOLETE and can NOT be supported any more! *** ***");
220  return StatusCode::FAILURE;
221  }
222  }
223  else if(supportedSpec.type()==typeid(int)) {
224  if(atlasTagDetails["SUPPORTED"].data<int>()<m_supportedGeometry) {
225  ATH_MSG_FATAL(" *** *** ATLAS layout " << m_atlasVersion
226  << " is OBSOLETE in rel " << m_supportedGeometry
227  << " and can NOT be supported any more! *** ***");
228  return StatusCode::FAILURE;
229  }
230  }
231  }
232 
233  dbTagSvc->setAtlasVersion(m_atlasVersion);
245 
246  if(dbTagSvc->setupTags().isFailure()) {
247  ATH_MSG_FATAL("Failed to setup subsystem tags");
248  return StatusCode::FAILURE;
249  }
250 
251  // Create a material manager
252  StoredMaterialManager *theMaterialManager{nullptr};
253  try{
254  theMaterialManager = new RDBMaterialManager(m_pSvcLocator);
255  }
256  catch(std::runtime_error& e) {
257  ATH_MSG_FATAL(e.what());
258  return StatusCode::FAILURE;
259  }
260  ATH_CHECK( m_detStore->record(theMaterialManager,"MATERIALS") );
261 
262  // Build the world node from which everything else will be suspended
263  const GeoMaterial* air = theMaterialManager->getMaterial("std::Air");
264  const GeoBox* worldBox = new GeoBox(1000*Gaudi::Units::cm,1000*Gaudi::Units::cm, 1000*Gaudi::Units::cm);
265  const GeoLogVol* worldLog = new GeoLogVol("WorldLog", worldBox, air);
266  worldPhys=new GeoPhysVol(worldLog);
267  } // End of the GeometryDB-specific part
268 
269  // Create AtlasExperiment and register it within the transient detector store
270  GeoModelExperiment* theExperiment = new GeoModelExperiment(worldPhys);
271  ATH_CHECK( m_detStore->record(theExperiment,"ATLAS") );
272 
273  int mem,cpu;
274  std::unique_ptr<std::ofstream> geoModelStats;
275  if(m_statisticsToFile) {
276  geoModelStats = std::make_unique<std::ofstream>("GeoModelStatistics");
277  *geoModelStats << "Detector Configuration flag = " << m_atlasVersion << std::endl;
278  }
279 
280  // Loop over all tools
282  itPrivEnd = m_detectorTools.end();
283 
284  for(; itPriv!=itPrivEnd; ++itPriv) {
285  IGeoModelTool* theTool = &(**itPriv);
286 
287  mem = GeoPerfUtils::getMem();
288  cpu = GeoPerfUtils::getCpu();
289 
290  ATH_CHECK(theTool->create());
291 
292  if(m_statisticsToFile) {
293  *geoModelStats << theTool->name() << "\t SZ= "
294  << GeoPerfUtils::getMem() - mem << "Kb \t Time = " << (GeoPerfUtils::getCpu() - cpu) * 0.01 << "S" << std::endl;
295  }
296  else {
297  ATH_MSG_INFO(theTool->name() << "\t SZ= "
298  << GeoPerfUtils::getMem() - mem << "Kb \t Time = " << (GeoPerfUtils::getCpu() - cpu) * 0.01 << "S");
299  }
300  }
301 
302  if(m_statisticsToFile) {
303  geoModelStats->close();
304  }
305 
306  if(!m_sqliteDb) {
307  // Close connection to the GeometryDB
308  rdbAccess->shutdown();
309  }
310 
311  return StatusCode::SUCCESS;
312 }

◆ getTool()

const IGeoModelTool * GeoModelSvc::getTool ( std::string  toolName) const
overridevirtual

Definition at line 554 of file GeoModelSvc.cxx.

555 {
556  for (const ToolHandle<IGeoModelTool>& tool : m_detectorTools) {
557  if(tool->name().find(toolName)!=std::string::npos)
558  return tool.get();
559  }
560 
561  return 0;
562 }

◆ inDetVersion()

virtual const std::string& GeoModelSvc::inDetVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 100 of file GeoModelSvc.h.

100 {return m_geoDbTagSvc->inDetVersion();}

◆ inDetVersionOverride()

virtual const std::string& GeoModelSvc::inDetVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 88 of file GeoModelSvc.h.

88 {return m_inDetVersionOverride;}

◆ isEmecStandard()

virtual const bool& GeoModelSvc::isEmecStandard ( ) const
inlineoverrideprivatevirtual

Definition at line 114 of file GeoModelSvc.h.

114 {return m_emecStandard;}

◆ LAr_Version()

virtual const std::string& GeoModelSvc::LAr_Version ( ) const
inlineoverrideprivatevirtual

Definition at line 104 of file GeoModelSvc.h.

104 {return m_geoDbTagSvc->LAr_Version();}

◆ LAr_VersionOverride()

virtual const std::string& GeoModelSvc::LAr_VersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 92 of file GeoModelSvc.h.

92 {return m_larVersionOverride;}

◆ magFieldVersion()

virtual const std::string& GeoModelSvc::magFieldVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 108 of file GeoModelSvc.h.

108 {return m_geoDbTagSvc->magFieldVersion();}

◆ magFieldVersionOverride()

virtual const std::string& GeoModelSvc::magFieldVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 96 of file GeoModelSvc.h.

◆ muonVersion()

virtual const std::string& GeoModelSvc::muonVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 106 of file GeoModelSvc.h.

106 {return m_geoDbTagSvc->muonVersion();}

◆ muonVersionOverride()

virtual const std::string& GeoModelSvc::muonVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 94 of file GeoModelSvc.h.

94 {return m_muonVersionOverride;}

◆ pixelVersion()

virtual const std::string& GeoModelSvc::pixelVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 101 of file GeoModelSvc.h.

101 {return m_geoDbTagSvc->pixelVersion();}

◆ pixelVersionOverride()

virtual const std::string& GeoModelSvc::pixelVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 89 of file GeoModelSvc.h.

89 {return m_pixelVersionOverride;}

◆ SCT_Version()

virtual const std::string& GeoModelSvc::SCT_Version ( ) const
inlineoverrideprivatevirtual

Definition at line 102 of file GeoModelSvc.h.

102 {return m_geoDbTagSvc->SCT_Version();}

◆ SCT_VersionOverride()

virtual const std::string& GeoModelSvc::SCT_VersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 90 of file GeoModelSvc.h.

90 {return m_sctVersionOverride;}

◆ tagInfoUpdated()

void GeoModelSvc::tagInfoUpdated ( )
finaloverridevirtual

Callback from TagInfoMgr on TagInfo change.

Implements ITagInfoMgr::Listener.

Definition at line 315 of file GeoModelSvc.cxx.

316 {
317  compareTags().ignore();
318 }

◆ tileVersion()

virtual const std::string& GeoModelSvc::tileVersion ( ) const
inlineoverrideprivatevirtual

Definition at line 105 of file GeoModelSvc.h.

105 {return m_geoDbTagSvc->tileVersion();}

◆ tileVersionOverride()

virtual const std::string& GeoModelSvc::tileVersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 93 of file GeoModelSvc.h.

93 {return m_tileVersionOverride;}

◆ TRT_Version()

virtual const std::string& GeoModelSvc::TRT_Version ( ) const
inlineoverrideprivatevirtual

Definition at line 103 of file GeoModelSvc.h.

103 {return m_geoDbTagSvc->TRT_Version();}

◆ TRT_VersionOverride()

virtual const std::string& GeoModelSvc::TRT_VersionOverride ( ) const
inlineoverrideprivatevirtual

Definition at line 91 of file GeoModelSvc.h.

91 {return m_trtVersionOverride;}

Member Data Documentation

◆ m_atlasVersion

Gaudi::Property<std::string> GeoModelSvc::m_atlasVersion {this,"AtlasVersion","","ATLAS Geometry Tag"}
private

Definition at line 55 of file GeoModelSvc.h.

◆ m_bFieldVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_bFieldVersionOverride {this,"MagFieldVersionOverride","","Overrider for MagField version"}
private

Definition at line 65 of file GeoModelSvc.h.

◆ m_callBackON

Gaudi::Property<bool> GeoModelSvc::m_callBackON {this,"AlignCallbacks",true,"Read alignment in callbacks"}
private

Definition at line 69 of file GeoModelSvc.h.

◆ m_caloVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_caloVersionOverride {this,"CaloVersionOverride","","Overrider for Calo version"}
private

Definition at line 64 of file GeoModelSvc.h.

◆ m_cavInfraVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_cavInfraVersionOverride {this,"CavernInfraVersionOverride","","Overrider for CavernInfra version"}
private

Definition at line 66 of file GeoModelSvc.h.

◆ m_detectorTools

ToolHandleArray<IGeoModelTool> GeoModelSvc::m_detectorTools {this,"DetectorTools",{}}
private

Definition at line 47 of file GeoModelSvc.h.

◆ m_detStore

ServiceHandle<StoreGateSvc> GeoModelSvc::m_detStore {this,"DetectorStore","DetectorStore",""}
private

Definition at line 51 of file GeoModelSvc.h.

◆ m_emecStandard

Gaudi::Property<bool> GeoModelSvc::m_emecStandard {this,"EMECStandard",false,"Activate the EMEC construction from standard Geant4 Shapes: G4GenericTrap"}
private

Definition at line 78 of file GeoModelSvc.h.

◆ m_forDetVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_forDetVersionOverride {this,"ForwardDetectorsVersionOverride","","Overrider for Forward Detectors version"}
private

Definition at line 67 of file GeoModelSvc.h.

◆ m_geoDbTagSvc

ServiceHandle<IGeoDbTagSvc> GeoModelSvc::m_geoDbTagSvc {this,"GeoDbTagSvc","GeoDbTagSvc",""}
private

Definition at line 53 of file GeoModelSvc.h.

◆ m_ignoreTagDifference

Gaudi::Property<bool> GeoModelSvc::m_ignoreTagDifference {this,"IgnoreTagDifference",false,"Ignore TagInfo and configuration tag diffs"}
private

Definition at line 70 of file GeoModelSvc.h.

◆ m_ignoreTagSupport

Gaudi::Property<bool> GeoModelSvc::m_ignoreTagSupport {this,"IgnoreTagSupport",false,"Skip checking if the geometry tag is supported/obsolete"}
private

Definition at line 76 of file GeoModelSvc.h.

◆ m_inDetVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_inDetVersionOverride {this,"InDetVersionOverride","","Overrider for InDet version"}
private

Definition at line 57 of file GeoModelSvc.h.

◆ m_larVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_larVersionOverride {this,"LAr_VersionOverride","","Overrider for LAr version"}
private

Definition at line 61 of file GeoModelSvc.h.

◆ m_muonVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_muonVersionOverride {this,"MuonVersionOverride","","Overrider for Muon version"}
private

Definition at line 63 of file GeoModelSvc.h.

◆ m_pixelVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_pixelVersionOverride {this,"PixelVersionOverride","","Overrider for Pixel version"}
private

Definition at line 58 of file GeoModelSvc.h.

◆ m_pSvcLocator

ISvcLocator* GeoModelSvc::m_pSvcLocator {nullptr}
private

Definition at line 49 of file GeoModelSvc.h.

◆ m_sctVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_sctVersionOverride {this,"SCT_VersionOverride","","Overrider for SCT version"}
private

Definition at line 59 of file GeoModelSvc.h.

◆ m_sqliteDb

Gaudi::Property<bool> GeoModelSvc::m_sqliteDb {this,"SQLiteDB",false,"Activate GeoModel initialization from SQLite"}
private

Definition at line 80 of file GeoModelSvc.h.

◆ m_sqliteDbFullPath

Gaudi::Property<std::string> GeoModelSvc::m_sqliteDbFullPath {this,"SQLiteDBFullPath","","Explicit setting of full path to SQLiteDB. For testing purposes only"}
private

Definition at line 81 of file GeoModelSvc.h.

◆ m_sqliteDbManager

std::unique_ptr<GMDBManager> GeoModelSvc::m_sqliteDbManager {}
private

Definition at line 85 of file GeoModelSvc.h.

◆ m_sqliteReader

std::unique_ptr<GeoModelIO::ReadGeoModel> GeoModelSvc::m_sqliteReader {}
private

Definition at line 84 of file GeoModelSvc.h.

◆ m_statisticsToFile

Gaudi::Property<bool> GeoModelSvc::m_statisticsToFile {this,"StatisticsToFile",false,"Generate GeoModelStatistics file in the run directory"}
private

Definition at line 73 of file GeoModelSvc.h.

◆ m_supportedGeometry

Gaudi::Property<int> GeoModelSvc::m_supportedGeometry {this,"SupportedGeometry",0,"Supported geometry flag is set in jobOpt and is equal to major release version"}
private

Definition at line 75 of file GeoModelSvc.h.

◆ m_tagInfoMgr

ServiceHandle<ITagInfoMgr> GeoModelSvc::m_tagInfoMgr {this,"TagInfoMgr","TagInfoMgr",""}
private

Definition at line 52 of file GeoModelSvc.h.

◆ m_tileVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_tileVersionOverride {this,"TileVersionOverride","","Overrider for Tile version"}
private

Definition at line 62 of file GeoModelSvc.h.

◆ m_trtVersionOverride

Gaudi::Property<std::string> GeoModelSvc::m_trtVersionOverride {this,"TRT_VersionOverride","","Overrider for TRT version"}
private

Definition at line 60 of file GeoModelSvc.h.

◆ m_useTagInfo

Gaudi::Property<bool> GeoModelSvc::m_useTagInfo {this,"UseTagInfo",true,"Use TagInfo"}
private

Definition at line 72 of file GeoModelSvc.h.


The documentation for this class was generated from the following files:
GeoDbTagSvc::setTileVersionOverride
void setTileVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:33
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
GeoModelSvc::m_sctVersionOverride
Gaudi::Property< std::string > m_sctVersionOverride
Definition: GeoModelSvc.h:59
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
GeoModelSvc::m_tileVersionOverride
Gaudi::Property< std::string > m_tileVersionOverride
Definition: GeoModelSvc.h:62
GeoModelSvc::m_muonVersionOverride
Gaudi::Property< std::string > m_muonVersionOverride
Definition: GeoModelSvc.h:63
GeoDbTagSvc
Definition: GeoDbTagSvc.h:15
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
GeoModelSvc::m_trtVersionOverride
Gaudi::Property< std::string > m_trtVersionOverride
Definition: GeoModelSvc.h:60
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
GeoModelSvc::m_sqliteDbFullPath
Gaudi::Property< std::string > m_sqliteDbFullPath
Definition: GeoModelSvc.h:81
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
GeoDbTagSvc::setAtlasVersion
void setAtlasVersion(const std::string &tag)
Definition: GeoDbTagSvc.h:27
GeoModelExperiment
Definition: GeoModelExperiment.h:32
athena.value
value
Definition: athena.py:124
GeoModelSvc::atlasVersion
virtual const std::string & atlasVersion() const override
Definition: GeoModelSvc.h:87
GeoModelSvc::m_supportedGeometry
Gaudi::Property< int > m_supportedGeometry
Definition: GeoModelSvc.h:75
RDBMaterialManager
Definition: RDBMaterialManager.h:28
python.CreateTierZeroArgdict.pairs
pairs
Definition: CreateTierZeroArgdict.py:201
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
GeoModelSvc::m_atlasVersion
Gaudi::Property< std::string > m_atlasVersion
Definition: GeoModelSvc.h:55
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
GeoModelSvc::m_sqliteReader
std::unique_ptr< GeoModelIO::ReadGeoModel > m_sqliteReader
Definition: GeoModelSvc.h:84
GeoModelSvc::m_detectorTools
ToolHandleArray< IGeoModelTool > m_detectorTools
Definition: GeoModelSvc.h:47
ITagInfoMgr::NameTagPairVec
std::vector< NameTagPair > NameTagPairVec
Definition: ITagInfoMgr.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
GeoDbTagSvc::setMuonVersionOverride
void setMuonVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:34
ClassID_traits
Default, invalid implementation of ClassID_traits.
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:40
GeoModelSvc::m_caloVersionOverride
Gaudi::Property< std::string > m_caloVersionOverride
Definition: GeoModelSvc.h:64
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
GeoDbTagSvc::setInDetVersionOverride
void setInDetVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:28
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
GeoModelSvc::m_inDetVersionOverride
Gaudi::Property< std::string > m_inDetVersionOverride
Definition: GeoModelSvc.h:57
GeoModelSvc::m_forDetVersionOverride
Gaudi::Property< std::string > m_forDetVersionOverride
Definition: GeoModelSvc.h:67
GeoModelSvc::m_pixelVersionOverride
Gaudi::Property< std::string > m_pixelVersionOverride
Definition: GeoModelSvc.h:58
GeoModelSvc::m_larVersionOverride
Gaudi::Property< std::string > m_larVersionOverride
Definition: GeoModelSvc.h:61
GeoModelSvc::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: GeoModelSvc.h:53
GeoModelSvc::m_pSvcLocator
ISvcLocator * m_pSvcLocator
Definition: GeoModelSvc.h:49
GeoModelSvc::m_emecStandard
Gaudi::Property< bool > m_emecStandard
Definition: GeoModelSvc.h:78
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
GeoModelSvc::m_tagInfoMgr
ServiceHandle< ITagInfoMgr > m_tagInfoMgr
Definition: GeoModelSvc.h:52
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
GeoDbTagSvc::setLAr_VersionOverride
void setLAr_VersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:32
RDBTagDetails
coral::AttributeList RDBTagDetails
Definition: IRDBAccessSvc.h:29
GeoDbTagSvc::setCavernInfraVersionOverride
void setCavernInfraVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:37
IGeoModelTool::create
virtual StatusCode create()=0
GeoModelSvc::m_cavInfraVersionOverride
Gaudi::Property< std::string > m_cavInfraVersionOverride
Definition: GeoModelSvc.h:66
GeoDbTagSvc::setSCT_VersionOverride
void setSCT_VersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:30
GeoDbTagSvc::setSqliteReader
void setSqliteReader(GeoModelIO::ReadGeoModel *reader)
Definition: GeoDbTagSvc.h:41
GeoDbTagSvc::setTRT_VersionOverride
void setTRT_VersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:31
GeoDbTagSvc::setPixelVersionOverride
void setPixelVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:29
IGeoModelTool
Definition: IGeoModelTool.h:12
GeoModelSvc::m_statisticsToFile
Gaudi::Property< bool > m_statisticsToFile
Definition: GeoModelSvc.h:73
GeoModelSvc::m_sqliteDb
Gaudi::Property< bool > m_sqliteDb
Definition: GeoModelSvc.h:80
GeoDbTagSvc::setForwardDetectorsVersionOverride
void setForwardDetectorsVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:38
StoredMaterialManager
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition: StoredMaterialManager.h:28
GeoDbTagSvc::setParamSvcName
void setParamSvcName(const std::string &name)
Definition: GeoDbTagSvc.h:40
GeoModelSvc::compareTags
StatusCode compareTags()
Definition: GeoModelSvc.cxx:321
GeoModelSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: GeoModelSvc.h:51
GeoModelSvc::m_sqliteDbManager
std::unique_ptr< GMDBManager > m_sqliteDbManager
Definition: GeoModelSvc.h:85
GeoDbTagSvc::setupTags
StatusCode setupTags()
Definition: GeoDbTagSvc.cxx:30
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
GeoModelSvc::m_bFieldVersionOverride
Gaudi::Property< std::string > m_bFieldVersionOverride
Definition: GeoModelSvc.h:65
SG::DataProxy
Definition: DataProxy.h:44
GeoModelSvc::m_ignoreTagSupport
Gaudi::Property< bool > m_ignoreTagSupport
Definition: GeoModelSvc.h:76
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
getCpu
int getCpu()
Definition: SingleTrackValidation.cxx:53
GeoDbTagSvc::setCaloVersionOverride
void setCaloVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:35
GeoDbTagSvc::setMagFieldVersionOverride
void setMagFieldVersionOverride(const std::string &tag)
Definition: GeoDbTagSvc.h:36
ServiceHandle< IRDBAccessSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
GeoModelSvc::m_ignoreTagDifference
Gaudi::Property< bool > m_ignoreTagDifference
Definition: GeoModelSvc.h:70