141{
142 if (!detStore)
143 return false;
144
145 VP1SGContentsHelper sg_contents(detStore);
146 const QString geomodelkey = "ATLAS";
147 if (!sg_contents.contains<GeoModelExperiment>(geomodelkey)) {
149 VP1Msg::messageVerbose(
"VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
151 return true;
152 }
153
154 VP1SGAccessHelper sg_access(detStore);
155
156 const GeoModelExperiment * theExpt;
157 if (!sg_access.retrieve(theExpt,geomodelkey)) {
159 VP1Msg::messageVerbose(
"VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
161 return true;
162 }
165
166 const GeoPhysVol * worldPhysVol = theExpt->
getPhysVol();
167 if (!worldPhysVol) {
168 VP1Msg::message(
"VP1JobConfigInfo: ERROR: GeoModelExperiment has null physical volume.");
170 return false;
171 }
174
176 PVConstLink world(worldPhysVol);
177
178 GeoVolumeCursor av(world);
179
180
181 while (!av.atEnd()) {
182 std::string
name = av.getName();
188
189
190 GeoVolumeCursor
pv(av.getVolume());
191 while (!
pv.atEnd()) {
192 if (
pv.getVolume()->getLogVol()->getName()==
"bcmModLog") {
194 break;
195 }
197 }
198 }
199 }
204 }
215
216
217 GeoVolumeCursor
pv(av.getVolume());
218 while (!
pv.atEnd()) {
219 if (
pv.getVolume()->getLogVol()->getName()==
"NewSmallWheel") {
221 break;
222 }
224 }
225 }
226 }
228
229
230 av.next();
231 }
232
234
235 return true;
236}
GeoPhysVol * getPhysVol()
Destructor.
static bool hasBeamPipeGeometry
static bool hasGeoModelExperiment
static bool hasITkGeometry
static bool hasTRTGeometry
static bool hasLUCIDGeometry
static bool hasMuonGeometry
static bool hasMuonNSWGeometry
static bool hasPixelGeometry
static bool hasLArGeometry
static bool hasSCTGeometry
static bool hasTileGeometry
static bool hasBCMGeometry
static bool hasInDetServiceMaterialGeometry
static GeoPVConstLink geoModelWorld
static void messageVerbose(const QString &)
static void message(const QString &, IVP1System *sys=0)