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 29 of file VP1JobConfigInfo.cxx.

Member Function Documentation

◆ actualInit()

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

Definition at line 140 of file VP1JobConfigInfo.cxx.

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

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

◆ turnOffAll()

void VP1JobConfigInfo::Imp::turnOffAll ( )
static

Definition at line 73 of file VP1JobConfigInfo.cxx.

74{
76 hasITkGeometry = false;
77 hasPixelGeometry = false;
78 hasSCTGeometry = false;
79 hasTRTGeometry = false;
81 hasBeamPipeGeometry = false;
82 hasLArGeometry = false;
83 hasTileGeometry = false;
84 hasMuonGeometry = false;
85 hasLUCIDGeometry = false;
86 hasBCMGeometry = false;
88}

Member Data Documentation

◆ geoModelWorld

GeoPVConstLink VP1JobConfigInfo::Imp::geoModelWorld
static

Definition at line 35 of file VP1JobConfigInfo.cxx.

◆ hasBCMGeometry

bool VP1JobConfigInfo::Imp::hasBCMGeometry = false
static

Definition at line 48 of file VP1JobConfigInfo.cxx.

◆ hasBeamPipeGeometry

bool VP1JobConfigInfo::Imp::hasBeamPipeGeometry = false
static

Definition at line 42 of file VP1JobConfigInfo.cxx.

◆ hasCavernInfraGeometry

bool VP1JobConfigInfo::Imp::hasCavernInfraGeometry = false
static

Definition at line 49 of file VP1JobConfigInfo.cxx.

◆ hasGeoModelExperiment

bool VP1JobConfigInfo::Imp::hasGeoModelExperiment = false
static

Definition at line 36 of file VP1JobConfigInfo.cxx.

◆ hasInDetServiceMaterialGeometry

bool VP1JobConfigInfo::Imp::hasInDetServiceMaterialGeometry = false
static

Definition at line 41 of file VP1JobConfigInfo.cxx.

◆ hasITkGeometry

bool VP1JobConfigInfo::Imp::hasITkGeometry = false
static

Definition at line 37 of file VP1JobConfigInfo.cxx.

◆ hasLArGeometry

bool VP1JobConfigInfo::Imp::hasLArGeometry = false
static

Definition at line 43 of file VP1JobConfigInfo.cxx.

◆ hasLUCIDGeometry

bool VP1JobConfigInfo::Imp::hasLUCIDGeometry = false
static

Definition at line 47 of file VP1JobConfigInfo.cxx.

◆ hasMuonGeometry

bool VP1JobConfigInfo::Imp::hasMuonGeometry = false
static

Definition at line 45 of file VP1JobConfigInfo.cxx.

◆ hasMuonNSWGeometry

bool VP1JobConfigInfo::Imp::hasMuonNSWGeometry = false
static

Definition at line 46 of file VP1JobConfigInfo.cxx.

◆ hasPixelGeometry

bool VP1JobConfigInfo::Imp::hasPixelGeometry = false
static

Definition at line 38 of file VP1JobConfigInfo.cxx.

◆ hasSCTGeometry

bool VP1JobConfigInfo::Imp::hasSCTGeometry = false
static

Definition at line 39 of file VP1JobConfigInfo.cxx.

◆ hasTileGeometry

bool VP1JobConfigInfo::Imp::hasTileGeometry = false
static

Definition at line 44 of file VP1JobConfigInfo.cxx.

◆ hasTRTGeometry

bool VP1JobConfigInfo::Imp::hasTRTGeometry = false
static

Definition at line 40 of file VP1JobConfigInfo.cxx.

◆ initialised

bool VP1JobConfigInfo::Imp::initialised = false
static

Definition at line 33 of file VP1JobConfigInfo.cxx.


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