142{
143 if (!detStore)
144 return false;
145
146 VP1SGContentsHelper sg_contents(detStore);
147 const QString geomodelkey = "ATLAS";
148 if (!sg_contents.contains<GeoModelExperiment>(geomodelkey)) {
150 VP1Msg::messageVerbose(
"VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
152 return true;
153 }
154
155 VP1SGAccessHelper sg_access(detStore);
156
157 const GeoModelExperiment * theExpt;
158 if (!sg_access.retrieve(theExpt,geomodelkey)) {
160 VP1Msg::messageVerbose(
"VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
162 return true;
163 }
166
167 const GeoPhysVol * worldPhysVol = theExpt->
getPhysVol();
168 if (!worldPhysVol) {
169 VP1Msg::message(
"VP1JobConfigInfo: ERROR: GeoModelExperiment has null physical volume.");
171 return false;
172 }
175
177 PVConstLink world(worldPhysVol);
178
179 GeoVolumeCursor av(world);
180
181
182 while (!av.atEnd()) {
183 std::string
name = av.getName();
189
190
191 GeoVolumeCursor
pv(av.getVolume());
192 while (!
pv.atEnd()) {
193 if (
pv.getVolume()->getLogVol()->getName()==
"bcmModLog") {
195 break;
196 }
198 }
199 }
200 }
205 }
216
217
218 GeoVolumeCursor
pv(av.getVolume());
219 while (!
pv.atEnd()) {
220 if (
pv.getVolume()->getLogVol()->getName()==
"NewSmallWheel") {
222 break;
223 }
225 }
226 }
227 }
229
230
231 av.next();
232 }
233
235
236 return true;
237}
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)