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 572 of file GeoModelSvc.cxx.

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

◆ compareTags()

StatusCode GeoModelSvc::compareTags ( )

Definition at line 329 of file GeoModelSvc.cxx.

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

◆ fillTagInfo()

StatusCode GeoModelSvc::fillTagInfo ( ) const
private

Definition at line 470 of file GeoModelSvc.cxx.

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

◆ 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  if(dbTagSvc->setupConfig().isFailure()) {
179  ATH_MSG_FATAL("Failed to setup Geoconfig");
180  return StatusCode::FAILURE;
181  }
182  }
183  else {
184  // Build geometry from the GeometryDB
185  ATH_MSG_DEBUG("** Building geometry configuration: ");
186  ATH_MSG_DEBUG("* ATLAS tag: " << m_atlasVersion);
187  ATH_MSG_DEBUG("* InDet tag: " << m_inDetVersionOverride);
188  ATH_MSG_DEBUG("* Pixel tag: " << m_pixelVersionOverride);
189  ATH_MSG_DEBUG("* SCT tag: " << m_sctVersionOverride);
190  ATH_MSG_DEBUG("* TRT tag: " << m_trtVersionOverride);
191  ATH_MSG_DEBUG("* LAr tag: " << m_larVersionOverride);
192  ATH_MSG_DEBUG("* Tile tag: " << m_tileVersionOverride);
193  ATH_MSG_DEBUG("* Muon tag: " << m_muonVersionOverride);
194  ATH_MSG_DEBUG("* Calo tag: " << m_caloVersionOverride);
195  ATH_MSG_DEBUG("* MagField tag: " << m_bFieldVersionOverride);
196  ATH_MSG_DEBUG("* CavernInfra tag: " << m_cavInfraVersionOverride);
197  ATH_MSG_DEBUG("* ForwardDetectors tag: " << m_forDetVersionOverride);
198 
199  // Get RDBAccessSvc and open connection to DB
200  ATH_CHECK( rdbAccess.retrieve() );
201 
202  if(!rdbAccess->connect()) {
203  ATH_MSG_FATAL("Unable to connect to the Geometry DB");
204  return StatusCode::FAILURE;
205  }
206 
207  // Check the existence of ATLAS tag in the database
208  if(rdbAccess->getChildTag("ATLAS",m_atlasVersion,"ATLAS")=="") {
209  ATH_MSG_FATAL(" *** *** Wrong ATLAS layout: " << m_atlasVersion << " *** ***");
210  ATH_MSG_FATAL(" Either ATLAS geometry tag has been misspelled, or the DB Release does not contain the geometry specified.");
211  ATH_MSG_FATAL(" In latter case please update DB Release version");
212  return StatusCode::FAILURE;
213  }
214 
215  dbTagSvc->setParamSvcName("RDBAccessSvc");
216 
217  if(!m_ignoreTagSupport) {
218  RDBTagDetails atlasTagDetails;
219  rdbAccess->getTagDetails(atlasTagDetails, m_atlasVersion);
220  const coral::AttributeSpecification& supportedSpec = atlasTagDetails["SUPPORTED"].specification();
221  if(supportedSpec.type()==typeid(bool)) {
222  if(!atlasTagDetails["SUPPORTED"].data<bool>()) {
223  ATH_MSG_FATAL(" *** *** ATLAS layout " << m_atlasVersion << " is OBSOLETE and can NOT be supported any more! *** ***");
224  return StatusCode::FAILURE;
225  }
226  }
227  else if(supportedSpec.type()==typeid(int)) {
228  if(atlasTagDetails["SUPPORTED"].data<int>()<m_supportedGeometry) {
229  ATH_MSG_FATAL(" *** *** ATLAS layout " << m_atlasVersion
230  << " is OBSOLETE in rel " << m_supportedGeometry
231  << " and can NOT be supported any more! *** ***");
232  return StatusCode::FAILURE;
233  }
234  }
235  }
236 
237  dbTagSvc->setAtlasVersion(m_atlasVersion);
249 
250  if(dbTagSvc->setupTags().isFailure()) {
251  ATH_MSG_FATAL("Failed to setup subsystem tags");
252  return StatusCode::FAILURE;
253  }
254  if(dbTagSvc->setupConfig().isFailure()) {
255  ATH_MSG_FATAL("Failed to setup Geoconfig");
256  return StatusCode::FAILURE;
257  }
258 
259  // Create a material manager
260  StoredMaterialManager *theMaterialManager{nullptr};
261  try{
262  theMaterialManager = new RDBMaterialManager(m_pSvcLocator);
263  }
264  catch(std::runtime_error& e) {
265  ATH_MSG_FATAL(e.what());
266  return StatusCode::FAILURE;
267  }
268  ATH_CHECK( m_detStore->record(theMaterialManager,"MATERIALS") );
269 
270  // Build the world node from which everything else will be suspended
271  const GeoMaterial* air = theMaterialManager->getMaterial("std::Air");
272  const GeoBox* worldBox = new GeoBox(1000*Gaudi::Units::cm,1000*Gaudi::Units::cm, 1000*Gaudi::Units::cm);
273  const GeoLogVol* worldLog = new GeoLogVol("WorldLog", worldBox, air);
274  worldPhys=new GeoPhysVol(worldLog);
275  } // End of the GeometryDB-specific part
276 
277  // Create AtlasExperiment and register it within the transient detector store
278  GeoModelExperiment* theExperiment = new GeoModelExperiment(worldPhys);
279  ATH_CHECK( m_detStore->record(theExperiment,"ATLAS") );
280 
281  int mem,cpu;
282  std::unique_ptr<std::ofstream> geoModelStats;
283  if(m_statisticsToFile) {
284  geoModelStats = std::make_unique<std::ofstream>("GeoModelStatistics");
285  *geoModelStats << "Detector Configuration flag = " << m_atlasVersion << std::endl;
286  }
287 
288  // Loop over all tools
290  itPrivEnd = m_detectorTools.end();
291 
292  for(; itPriv!=itPrivEnd; ++itPriv) {
293  IGeoModelTool* theTool = &(**itPriv);
294 
295  mem = GeoPerfUtils::getMem();
296  cpu = GeoPerfUtils::getCpu();
297 
298  ATH_CHECK(theTool->create());
299 
300  if(m_statisticsToFile) {
301  *geoModelStats << theTool->name() << "\t SZ= "
302  << GeoPerfUtils::getMem() - mem << "Kb \t Time = " << (GeoPerfUtils::getCpu() - cpu) * 0.01 << "S" << std::endl;
303  }
304  else {
305  ATH_MSG_INFO(theTool->name() << "\t SZ= "
306  << GeoPerfUtils::getMem() - mem << "Kb \t Time = " << (GeoPerfUtils::getCpu() - cpu) * 0.01 << "S");
307  }
308  }
309 
310  if(m_statisticsToFile) {
311  geoModelStats->close();
312  }
313 
314  if(!m_sqliteDb) {
315  // Close connection to the GeometryDB
316  rdbAccess->shutdown();
317  }
318 
319  return StatusCode::SUCCESS;
320 }

◆ getTool()

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

Definition at line 562 of file GeoModelSvc.cxx.

563 {
564  for (const ToolHandle<IGeoModelTool>& tool : m_detectorTools) {
565  if(tool->name().find(toolName)!=std::string::npos)
566  return tool.get();
567  }
568 
569  return 0;
570 }

◆ 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 323 of file GeoModelSvc.cxx.

324 {
325  compareTags().ignore();
326 }

◆ 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:16
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::setupConfig
StatusCode setupConfig()
Definition: GeoDbTagSvc.cxx:93
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:228
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:329
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:45
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