22{
23 ServiceHandle<IGeoDbTagSvc> geoDbTag(
"GeoDbTagSvc",
name());
25
26 std::string cavernInfraVersion = geoDbTag->cavernInfraVersion();
27 if(cavernInfraVersion.empty()) {
28 ATH_MSG_INFO(
"No Cavern Infra version for the given configuration. Skip building CavernInfraGeoModel");
29 return StatusCode::SUCCESS;
30 }
31 else {
32 ATH_MSG_INFO(
"Building Cavern geometry version " << cavernInfraVersion);
33 }
34
35 std::string versionNode = "CavernInfra";
36
37 GeoModelExperiment* theExpt = nullptr;
39
41 ServiceHandle<IRDBAccessSvc> raccess(
"RDBAccessSvc",
name());
43
45 CavernInfraDetectorFactory theCavernInfraFactory(
detStore(),raccess);
46 theCavernInfraFactory.setTagNode(cavernInfraVersion,versionNode);
47 theCavernInfraFactory.create(world);
48 m_manager = theCavernInfraFactory.getDetectorManager();
49 }
50
54 }
55 else {
56 ATH_MSG_ERROR(
"ERROR. Failed to build Cavern Version " << cavernInfraVersion);
57 return StatusCode::FAILURE;
58 }
59
60 return StatusCode::SUCCESS;
61}
#define ATH_CHECK
Evaluate an expression and check for errors.
GeoPhysVol * getPhysVol()
Destructor.
void addManager(const GeoVDetectorManager *)
retrieve(aClass, aKey=None)