45 :
47{
48
49 ISvcLocator* svcLocator = Gaudi::svcLocator();
50
51 SmartIF<IGeoDbTagSvc> geoDbTagSvc{svcLocator->service("GeoDbTagSvc")};
52 if(!geoDbTagSvc.isValid()) {
53 throw std::runtime_error ("Cannot locate GeoDBTagSvc");
54 }
55
56 SmartIF<IRDBAccessSvc> pAccessSvc{svcLocator->service(geoDbTagSvc->getParamSvcName())};
57 if(!pAccessSvc.isValid()) {
58 throw std::runtime_error ("Cannot locate " + geoDbTagSvc->getParamSvcName());
59 }
60
61 std::string detectorKey;
62 std::string detectorNode;
63
64 if(geoDbTagSvc->getSqliteReader()==nullptr) {
65
66 SmartIF<IGeoModelSvc> geoModel{svcLocator->service("GeoModelSvc")};
67 if(!geoModel.isValid()) {
68 throw std::runtime_error ("Cannot locate GeoModelSvc");
69 }
70
72 std::string LArVersion = geoModel->LAr_VersionOverride();
73
74 detectorKey = LArVersion.empty() ?
AtlasVersion : LArVersion;
75 detectorNode = LArVersion.empty() ? "ATLAS" : "LAr";
76 }
77
78
79 m_c->hadronicEndcap = pAccessSvc->getRecordsetPtr(
"HadronicEndcap",detectorKey, detectorNode);
80 m_c->hecGridValues = pAccessSvc->getRecordsetPtr(
"HecGridValues",detectorKey, detectorNode);
81 m_c->hecLongitudinalBlock = pAccessSvc->getRecordsetPtr(
"HecLongitudinalBlock",detectorKey, detectorNode);
82
83}