ATLAS Offline Software
Loading...
Searching...
No Matches
VP1JobConfigInfo::Imp Class Reference
Collaboration diagram for VP1JobConfigInfo::Imp:

Static Public Member Functions

static void ensureInit ()
static bool actualInit (StoreGateSvc *detStore)
static void turnOffAll ()

Static Public Attributes

static bool initialised = false
static GeoPVConstLink geoModelWorld
static bool hasGeoModelExperiment = false
static bool hasITkGeometry = false
static bool hasPixelGeometry = false
static bool hasSCTGeometry = false
static bool hasTRTGeometry = false
static bool hasInDetServiceMaterialGeometry = false
static bool hasBeamPipeGeometry = false
static bool hasLArGeometry = false
static bool hasTileGeometry = false
static bool hasMuonGeometry = false
static bool hasMuonNSWGeometry = false
static bool hasLUCIDGeometry = false
static bool hasBCMGeometry = false
static bool hasCavernInfraGeometry = false

Detailed Description

Definition at line 30 of file VP1JobConfigInfo.cxx.

Member Function Documentation

◆ actualInit()

bool VP1JobConfigInfo::Imp::actualInit ( StoreGateSvc * detStore)
static

Definition at line 141 of file VP1JobConfigInfo.cxx.

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)) {
149 if (VP1Msg::verbose())
150 VP1Msg::messageVerbose("VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
151 turnOffAll();
152 return true;
153 }
154
155 VP1SGAccessHelper sg_access(detStore);
156
157 const GeoModelExperiment * theExpt;
158 if (!sg_access.retrieve(theExpt,geomodelkey)) {
159 if (VP1Msg::verbose())
160 VP1Msg::messageVerbose("VP1JobConfigInfo: No GeoModelExperiment in detectorStore. Concluding all subsystems are off.");
161 turnOffAll();
162 return true;
163 }
164 if (VP1Msg::verbose())
165 VP1Msg::messageVerbose("VP1JobConfigInfo: Retrieved GeoModelExperiment/"+geomodelkey);
166
167 const GeoPhysVol * worldPhysVol = theExpt->getPhysVol();
168 if (!worldPhysVol) {
169 VP1Msg::message("VP1JobConfigInfo: ERROR: GeoModelExperiment has null physical volume.");
170 turnOffAll();
171 return false;
172 }
173 if (VP1Msg::verbose())
174 VP1Msg::messageVerbose("VP1JobConfigInfo: Retrieved GeoModelExperiment physical volumes");
175
177 PVConstLink world(worldPhysVol);
178
179 GeoVolumeCursor av(world);
180
181
182 while (!av.atEnd()) {
183 std::string name = av.getName();
184 if ( !hasPixelGeometry && (name=="Pixel" or name=="ITkPixel")) {
185 hasPixelGeometry = true;
186 if (not hasITkGeometry and name == "ITkPixel")
187 hasITkGeometry = true;
188 if ( !hasBCMGeometry ) {
189 //Loop under the top Pixel volume to check if there are BCM volumes
190 //present in the current config:
191 GeoVolumeCursor pv(av.getVolume());
192 while (!pv.atEnd()) {
193 if (pv.getVolume()->getLogVol()->getName()=="bcmModLog") {
194 hasBCMGeometry = true;
195 break;
196 }
197 pv.next();
198 }
199 }
200 }
201 if ( !hasSCTGeometry && (name=="SCT" or name=="ITkStrip")) {
202 hasSCTGeometry = true;
203 if (not hasITkGeometry and name == "ITkStrip")
204 hasITkGeometry = true;
205 }
206 if ( !hasTRTGeometry && name=="TRT") hasTRTGeometry = true;
207 if ( !hasInDetServiceMaterialGeometry && name=="InDetServMat") hasInDetServiceMaterialGeometry = true;
208 if ( !hasBeamPipeGeometry && name=="BeamPipe") hasBeamPipeGeometry = true;
209 if ( !hasLArGeometry && name=="LArBarrel") hasLArGeometry = true;
210 if ( !hasLArGeometry && name=="LArEndcapPos") hasLArGeometry = true;
211 if ( !hasLArGeometry && name=="LArEndcapNeg") hasLArGeometry = true;
212 if ( !hasTileGeometry && name=="Tile") hasTileGeometry = true;
213 if ( !hasMuonGeometry && name=="Muon") {
214 hasMuonGeometry = true;
215 if ( !hasMuonNSWGeometry ) {
216 //Loop under the top Muon volume to check if there are NSW volumes
217 //present in the current config:
218 GeoVolumeCursor pv(av.getVolume());
219 while (!pv.atEnd()) {
220 if (pv.getVolume()->getLogVol()->getName()=="NewSmallWheel") {
221 hasMuonNSWGeometry = true;
222 break;
223 }
224 pv.next();
225 }
226 }
227 }
228 if ( !hasLUCIDGeometry && (name=="LucidSideA"||name=="LucidSideC")) hasLUCIDGeometry = true;
229 //FIXME: Look for CavernInfra as well!!!
230
231 av.next(); // increment volume cursor.
232 }
233
234 Imp::geoModelWorld = worldPhysVol;
235
236 return true;
237}
GeoPhysVol * getPhysVol()
Destructor.
static bool hasInDetServiceMaterialGeometry
static GeoPVConstLink geoModelWorld
static void messageVerbose(const QString &)
Definition VP1Msg.cxx:84
static bool verbose()
Definition VP1Msg.h:31
static void message(const QString &, IVP1System *sys=0)
Definition VP1Msg.cxx:30

◆ ensureInit()

void VP1JobConfigInfo::Imp::ensureInit ( )
static

Definition at line 92 of file VP1JobConfigInfo.cxx.

93{
94 if (initialised)
95 return;
96 if (VP1Msg::verbose())
97 VP1Msg::messageVerbose("VP1JobConfigInfo initialising");
98 initialised = true;
100 VP1Msg::message("VP1JobConfigInfo ERROR: Problems initialising. "
101 "Will assume all subsystems are off in this job!");
102 turnOffAll();
103 }
104 if (VP1Msg::verbose()) {
105 VP1Msg::messageVerbose("VP1JobConfigInfo => Found job configuration:");
106 VP1Msg::messageVerbose("VP1JobConfigInfo => hasGeoModelExperiment = "+QString(hasGeoModelExperiment?"On":"Off"));
107 VP1Msg::messageVerbose("VP1JobConfigInfo => hasITkGeometry = "+QString(hasITkGeometry?"On":"Off"));
108 VP1Msg::messageVerbose("VP1JobConfigInfo => hasPixelGeometry = "+QString(hasPixelGeometry?"On":"Off"));
109 VP1Msg::messageVerbose("VP1JobConfigInfo => hasSCTGeometry = "+QString(hasSCTGeometry?"On":"Off"));
110 VP1Msg::messageVerbose("VP1JobConfigInfo => hasTRTGeometry = "+QString(hasTRTGeometry?"On":"Off"));
111 VP1Msg::messageVerbose("VP1JobConfigInfo => hasInDetServiceMaterialGeometry = "+QString(hasInDetServiceMaterialGeometry?"On":"Off"));
112 VP1Msg::messageVerbose("VP1JobConfigInfo => hasBeamPipeGeometry = "+QString(hasBeamPipeGeometry?"On":"Off"));
113 VP1Msg::messageVerbose("VP1JobConfigInfo => hasLArGeometry = "+QString(hasLArGeometry?"On":"Off"));
114 VP1Msg::messageVerbose("VP1JobConfigInfo => hasTileGeometry = "+QString(hasTileGeometry?"On":"Off"));
115 VP1Msg::messageVerbose("VP1JobConfigInfo => hasMuonGeometry = "+QString(hasMuonGeometry?"On":"Off"));
116 VP1Msg::messageVerbose("VP1JobConfigInfo => hasMuonNSWGeometry = "+QString(hasMuonNSWGeometry?"On":"Off"));
117 VP1Msg::messageVerbose("VP1JobConfigInfo => hasLUCIDGeometry = "+QString(hasLUCIDGeometry?"On":"Off"));
118 VP1Msg::messageVerbose("VP1JobConfigInfo => hasBCMGeometry = "+QString(hasBCMGeometry?"On":"Off"));
119 VP1Msg::messageVerbose("VP1JobConfigInfo => hasCavernInfraGeometry = "+QString(hasCavernInfraGeometry?"On":"Off"));
120 }
121
122}
static StoreGateSvc * detectorStore()
static bool actualInit(StoreGateSvc *detStore)

◆ turnOffAll()

void VP1JobConfigInfo::Imp::turnOffAll ( )
static

Definition at line 74 of file VP1JobConfigInfo.cxx.

75{
77 hasITkGeometry = false;
78 hasPixelGeometry = false;
79 hasSCTGeometry = false;
80 hasTRTGeometry = false;
82 hasBeamPipeGeometry = false;
83 hasLArGeometry = false;
84 hasTileGeometry = false;
85 hasMuonGeometry = false;
86 hasLUCIDGeometry = false;
87 hasBCMGeometry = false;
89}

Member Data Documentation

◆ geoModelWorld

GeoPVConstLink VP1JobConfigInfo::Imp::geoModelWorld
static

Definition at line 36 of file VP1JobConfigInfo.cxx.

◆ hasBCMGeometry

bool VP1JobConfigInfo::Imp::hasBCMGeometry = false
static

Definition at line 49 of file VP1JobConfigInfo.cxx.

◆ hasBeamPipeGeometry

bool VP1JobConfigInfo::Imp::hasBeamPipeGeometry = false
static

Definition at line 43 of file VP1JobConfigInfo.cxx.

◆ hasCavernInfraGeometry

bool VP1JobConfigInfo::Imp::hasCavernInfraGeometry = false
static

Definition at line 50 of file VP1JobConfigInfo.cxx.

◆ hasGeoModelExperiment

bool VP1JobConfigInfo::Imp::hasGeoModelExperiment = false
static

Definition at line 37 of file VP1JobConfigInfo.cxx.

◆ hasInDetServiceMaterialGeometry

bool VP1JobConfigInfo::Imp::hasInDetServiceMaterialGeometry = false
static

Definition at line 42 of file VP1JobConfigInfo.cxx.

◆ hasITkGeometry

bool VP1JobConfigInfo::Imp::hasITkGeometry = false
static

Definition at line 38 of file VP1JobConfigInfo.cxx.

◆ hasLArGeometry

bool VP1JobConfigInfo::Imp::hasLArGeometry = false
static

Definition at line 44 of file VP1JobConfigInfo.cxx.

◆ hasLUCIDGeometry

bool VP1JobConfigInfo::Imp::hasLUCIDGeometry = false
static

Definition at line 48 of file VP1JobConfigInfo.cxx.

◆ hasMuonGeometry

bool VP1JobConfigInfo::Imp::hasMuonGeometry = false
static

Definition at line 46 of file VP1JobConfigInfo.cxx.

◆ hasMuonNSWGeometry

bool VP1JobConfigInfo::Imp::hasMuonNSWGeometry = false
static

Definition at line 47 of file VP1JobConfigInfo.cxx.

◆ hasPixelGeometry

bool VP1JobConfigInfo::Imp::hasPixelGeometry = false
static

Definition at line 39 of file VP1JobConfigInfo.cxx.

◆ hasSCTGeometry

bool VP1JobConfigInfo::Imp::hasSCTGeometry = false
static

Definition at line 40 of file VP1JobConfigInfo.cxx.

◆ hasTileGeometry

bool VP1JobConfigInfo::Imp::hasTileGeometry = false
static

Definition at line 45 of file VP1JobConfigInfo.cxx.

◆ hasTRTGeometry

bool VP1JobConfigInfo::Imp::hasTRTGeometry = false
static

Definition at line 41 of file VP1JobConfigInfo.cxx.

◆ initialised

bool VP1JobConfigInfo::Imp::initialised = false
static

Definition at line 34 of file VP1JobConfigInfo.cxx.


The documentation for this class was generated from the following file: