34 SmartIF<IGeoModelSvc> iGeoModel{pSvcLocator->service(
"GeoModelSvc")};
37 SmartIF<IRDBAccessSvc> iAccessSvc{pSvcLocator->service(
"RDBAccessSvc")};
42 return (loadDefaults and pRecordset->size() == 0);
45 if (loadDefaults)
ATH_MSG_DEBUG(
"Will load material defaults if not present");
49 m_elements = iAccessSvc->getRecordsetPtr(
"Elements",keyAtlas.tag(),keyAtlas.node());
52 m_elements = iAccessSvc->getRecordsetPtr(
"Elements",
"Materials-00",
"Materials");
59 recMatcomponents = iAccessSvc->getRecordsetPtr(
"StdMatComponents",keyAtlas.tag(),keyAtlas.node());
60 if(defaulted(recMatcomponents)) {
62 recMatcomponents = iAccessSvc->getRecordsetPtr(
"StdMatComponents",
"Materials-00",
"Materials");
64 recMaterials = iAccessSvc->getRecordsetPtr(
"StdMaterials",keyAtlas.tag(),keyAtlas.node());
65 if(defaulted(recMaterials)) {
67 recMaterials = iAccessSvc->getRecordsetPtr(
"StdMaterials",
"Materials-00",
"Materials");
69 m_detData.emplace(
"std",DetectorAuxData{
"STDMATERIALS_DATA_ID", recMaterials, recMatcomponents});
73 recMatcomponents = iAccessSvc->getRecordsetPtr(
"PixMatComponents",keyPixel.tag(),keyPixel.node());
74 if(defaulted(recMatcomponents)) {
76 recMatcomponents = iAccessSvc->getRecordsetPtr(
"PixMatComponents",
"PixMatComponents-00");
78 recMaterials = iAccessSvc->getRecordsetPtr(
"PixMaterials",keyPixel.tag(),keyPixel.node());
79 if(defaulted(recMaterials)) {
81 recMaterials = iAccessSvc->getRecordsetPtr(
"PixMaterials",
"PixMaterials-00");
83 m_detData.emplace(
"pix",DetectorAuxData{
"PIXMATERIALS_DATA_ID", recMaterials, recMatcomponents});
87 recMatcomponents = iAccessSvc->getRecordsetPtr(
"SCTMatComponents",keySCT.tag(),keySCT.node());
88 if(defaulted(recMatcomponents)) {
90 recMatcomponents = iAccessSvc->getRecordsetPtr(
"SCTMatComponents",
"SCTMatComponents-00");
92 recMaterials = iAccessSvc->getRecordsetPtr(
"SCTMaterials",keySCT.tag(),keySCT.node());
93 if(defaulted(recMaterials)) {
95 recMaterials = iAccessSvc->getRecordsetPtr(
"SCTMaterials",
"SCTMaterials-00");
97 m_detData.emplace(
"sct",DetectorAuxData{
"SCTMATERIALS_DATA_ID", recMaterials, recMatcomponents});
101 recMatcomponents = iAccessSvc->getRecordsetPtr(
"TrtMatComponents",keyTRT.tag(),keyTRT.node());
102 if(defaulted(recMatcomponents)) {
104 recMatcomponents = iAccessSvc->getRecordsetPtr(
"TrtMatComponents",
"TrtMatComponents-00");
106 recMaterials = iAccessSvc->getRecordsetPtr(
"TrtMaterials",keyTRT.tag(),keyTRT.node());
107 if(defaulted(recMaterials)) {
109 recMaterials = iAccessSvc->getRecordsetPtr(
"TrtMaterials",
"TrtMaterials-00");
111 m_detData.emplace(
"trt",DetectorAuxData{
"TRTMATERIALS_DATA_ID", recMaterials, recMatcomponents});
115 recMatcomponents = iAccessSvc->getRecordsetPtr(
"InDetMatComponents",keyInDet.tag(),keyInDet.node());
116 if(defaulted(recMatcomponents)) {
117 ATH_MSG_DEBUG(
"Getting InDetMatComponents with default tag");
118 recMatcomponents = iAccessSvc->getRecordsetPtr(
"InDetMatComponents",
"InDetMatComponents-00");
120 recMaterials = iAccessSvc->getRecordsetPtr(
"InDetMaterials",keyInDet.tag(),keyInDet.node());
121 if(defaulted(recMaterials)) {
123 recMaterials = iAccessSvc->getRecordsetPtr(
"InDetMaterials",
"InDetMaterials-00");
125 m_detData.emplace(
"indet",DetectorAuxData{
"INDETMATERIALS_DATA_ID", recMaterials, recMatcomponents});
129 recMatcomponents = iAccessSvc->getRecordsetPtr(
"LArMatComponents",keyLAr.tag(),keyLAr.node());
130 if(defaulted(recMatcomponents)) {
132 recMatcomponents = iAccessSvc->getRecordsetPtr(
"LArMatComponents",
"LArMatComponents-00");
134 recMaterials = iAccessSvc->getRecordsetPtr(
"LArMaterials",keyLAr.tag(),keyLAr.node());
135 if(defaulted(recMaterials)) {
137 recMaterials = iAccessSvc->getRecordsetPtr(
"LArMaterials",
"LArMaterials-00");
139 m_detData.emplace(
"LAr",DetectorAuxData{
"LARMATERIALS_DATA_ID", recMaterials, recMatcomponents});
143 recMatcomponents = iAccessSvc->getRecordsetPtr(
"TileMatComponents",keyTile.tag(),keyTile.node());
144 if (defaulted(recMatcomponents)) {
146 recMatcomponents = iAccessSvc->getRecordsetPtr(
"TileMatComponents",
"TileMatComponents-00");
148 recMaterials = iAccessSvc->getRecordsetPtr(
"TileMaterials",keyTile.tag(),keyTile.node());
149 if(defaulted(recMaterials)) {
151 recMaterials = iAccessSvc->getRecordsetPtr(
"TileMaterials",
"TileMaterials-00");
153 m_detData.emplace(
"tile",DetectorAuxData{
"TILEMATERIALS_DATA_ID", recMaterials, recMatcomponents});
157 recMatcomponents = iAccessSvc->getRecordsetPtr(
"MUOMatComponents",keyMuon.tag(),keyMuon.node());
158 if(defaulted(recMatcomponents)) {
160 recMatcomponents = iAccessSvc->getRecordsetPtr(
"MUOMatComponents",
"MUOMatComponents-00");
162 recMaterials = iAccessSvc->getRecordsetPtr(
"MUOMaterials",keyMuon.tag(),keyMuon.node());
163 if(defaulted(recMaterials)) {
165 recMaterials = iAccessSvc->getRecordsetPtr(
"MUOMaterials",
"MUOMaterials-00");
167 m_detData.emplace(
"muo",DetectorAuxData{
"MUOMATERIALS_DATA_ID", recMaterials, recMatcomponents});
170 recMatcomponents = iAccessSvc->getRecordsetPtr(
"ShieldMatComponents",keyMuon.tag(),keyMuon.node());
171 if(defaulted(recMatcomponents)) {
173 recMatcomponents = iAccessSvc->getRecordsetPtr(
"ShieldMatComponents",
"ShieldMatComponents-00");
175 recMaterials = iAccessSvc->getRecordsetPtr(
"ShieldMaterials",keyMuon.tag(),keyMuon.node());
176 if(defaulted(recMaterials)) {
178 recMaterials = iAccessSvc->getRecordsetPtr(
"ShieldMaterials",
"ShieldMaterials-00");
180 m_detData.emplace(
"shield",DetectorAuxData{
"SHIELDMATERIALS_DATA_ID", recMaterials, recMatcomponents});
183 recMatcomponents = iAccessSvc->getRecordsetPtr(
"ToroMatComponents",keyMuon.tag(),keyMuon.node());
184 if(defaulted(recMatcomponents)) {
186 recMatcomponents = iAccessSvc->getRecordsetPtr(
"ToroMatComponents",
"ToroMatComponents-00");
188 recMaterials = iAccessSvc->getRecordsetPtr(
"ToroMaterials",keyMuon.tag(),keyMuon.node());
189 if(defaulted(recMaterials)) {
191 recMaterials = iAccessSvc->getRecordsetPtr(
"ToroMaterials",
"ToroMaterials-00");
193 m_detData.emplace(
"toro",DetectorAuxData{
"TOROMATERIALS_DATA_ID", std::move(recMaterials), std::move(recMatcomponents)});
195 return StatusCode::SUCCESS;