ATLAS Offline Software
Loading...
Searching...
No Matches
python.CondDB.CondDB Class Reference
Collaboration diagram for python.CondDB.CondDB:

Public Member Functions

 __init__ (self, doOldStyleConfig=False)
 addFolder (self, ident, folder, force=False, forceMC=False, forceData=False, className=None, extensible=False)
 addFolderWithTag (self, ident, folder, tag, force=False, forceMC=False, forceData=False, className=None)
 addFolderSplitOnline (self, ident, folder1, folder2, force=False, forceMC=False, forceData=False, className=None, extensible=False)
 addFolderSplitMC (self, ident, folder1, folder2, force=False, forceMC=False, forceData=False, className=None)
 addOverride (self, folder, tag)
 blockFolder (self, folder)
 folderRequested (self, folder)
 addMarkup (self, folder, markup)
 setGlobalTag (self, tag)
 setRequireLock (self, lock=True)
 setWriteDataToFile (self, writeData=False)
 setCrestCoolToFile (self, crestCoolData=False)
 extractFolder (self, folderstr)
 dumpFolderTags (self, outfile, folderNames=False, folderOrigin=False)
 dumpFolderReadReal (self, outfile)
 GetInstance (self, forceMC=False, forceData=False)

Public Attributes

 msg = logging.getLogger( 'IOVDbSvc.CondDB' )
 iovdbsvc = svcMgr.IOVDbSvc
dict dblist = {}
list blocklist = []
str dbname = ''
str dbmc = ''
str dbdata = ''
list poolcats = []
 isOnline = athenaCommonFlags.isOnline()
str isMC = 'data'

Static Public Attributes

 conddb = CondDB(False)

Protected Member Functions

 _SetAcc (self, ident, schema)
 _GetName (self, forceMC, forceData)
 _InstanceFromProjectName (self, projectName)

Detailed Description

Definition at line 54 of file CondDB.py.

Constructor & Destructor Documentation

◆ __init__()

python.CondDB.CondDB.__init__ ( self,
doOldStyleConfig = False )

Definition at line 56 of file CondDB.py.

56 def __init__(self,doOldStyleConfig=False):
57 "Setup conditions DB - IOVDbSvc and connections according to GlobalFlags"
58 from AthenaCommon.AppMgr import ServiceMgr as svcMgr
59 from AthenaCommon.Logging import logging
60 self.msg = logging.getLogger( 'IOVDbSvc.CondDB' )
61 self.msg.debug("Loading basic services for CondDBSetup...")
62
63 # AthenaPool and IOVDbSvc configuration
64 from AthenaPoolCnvSvc import AthenaPool # noqa: F401
65 from IOVDbSvc import IOVDb # noqa: F401
66 # local access to IOVDbSvc parameters
67 self.iovdbsvc=svcMgr.IOVDbSvc
68
69 # initialise list of allowed DBs
70 self.dblist={}
71 # and list of blocked folders
72 self.blocklist=[]
73
74 # decide which instance to setup
75 # default database
76 self.dbname=''
77 # names for MC and data database in case forceMC/forceData are used
78 self.dbmc=''
79 self.dbdata=''
80 self.poolcats=[]
81 from AthenaCommon.GlobalFlags import globalflags
82 from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
83 self.isOnline=athenaCommonFlags.isOnline()
84 self.isMC=not globalflags.DataSource()=='data'
85 if (globalflags.DetGeo() in ['atlas','commis']):
86 # ATLAS full or commissioning geometry
87 self.dbmc='OFLP200'
88 self.dbdata=globalflags.DatabaseInstance() #could be 'auto'
89 if self.isMC:
90 # Monte Carlo
91 self.dbname=self.dbmc
92 self.poolcats=['oflcond']
93 else:
94 # real data
95 if (self.dbdata=='auto'):
96 project_name = ''
97 if athenaCommonFlags.FilesInput():
98 from PyUtils.MetaReader import read_metadata
99 metadata = read_metadata(athenaCommonFlags.FilesInput())
100 project_name = metadata[athenaCommonFlags.FilesInput()[0]]['project_name']
101
102 self.dbdata=self._InstanceFromProjectName(project_name)
103 self.msg.info("Configuring database instance '%s' based on project tag '%s'", self.dbdata, project_name)
104 self.dbname=self.dbdata
105 self.poolcats=['comcond','oflcond']
106 elif (globalflags.DetGeo() in ['ctbh8','ctbh6']):
107 self.dbmc='TMCP200'
108 self.dbdata='TBDP200'
109 if self.isMC:
110 # 2004 combined testbeam, Monte Carlo
111 self.dbname=self.dbmc
112 self.poolcats=['tbcond','oflcond']
113 else:
114 # 2004 combined testbeam, real data
115 self.dbname=self.dbdata
116 self.poolcats=['tbcond','oflcond']
117 else:
118 raise RuntimeError("Unknown globalflags.DetGeo: %s" % globalflags.DetGeo())
119 if (self.dbname!=''):
120 self.msg.info('Setting up conditions DB access to instance %s', self.dbname)
121 # set up all access options - online schemas
122 self._SetAcc('INDET','COOLONL_INDET')
123 self._SetAcc('INDET_ONL','COOLONL_INDET')
124 self._SetAcc('PIXEL','COOLONL_PIXEL')
125 self._SetAcc('PIXEL_ONL','COOLONL_PIXEL')
126 self._SetAcc('SCT','COOLONL_SCT')
127 self._SetAcc('SCT_ONL','COOLONL_SCT')
128 self._SetAcc('TRT','COOLONL_TRT')
129 self._SetAcc('TRT_ONL','COOLONL_TRT')
130 self._SetAcc('LAR','COOLONL_LAR')
131 self._SetAcc('LAR_ONL','COOLONL_LAR')
132 self._SetAcc('TILE','COOLONL_TILE')
133 self._SetAcc('TILE_ONL','COOLONL_TILE')
134 self._SetAcc('MUON','COOLONL_MUON')
135 self._SetAcc('MUON_ONL','COOLONL_MUON')
136 self._SetAcc('MUONALIGN','COOLONL_MUONALIGN')
137 self._SetAcc('MUONALIGN_ONL','COOLONL_MUONALIGN')
138 self._SetAcc('MDT','COOLONL_MDT')
139 self._SetAcc('MDT_ONL','COOLONL_MDT')
140 self._SetAcc('RPC','COOLONL_RPC')
141 self._SetAcc('RPC_ONL','COOLONL_RPC')
142 self._SetAcc('TGC','COOLONL_TGC')
143 self._SetAcc('TGC_ONL','COOLONL_TGC')
144 self._SetAcc('CSC','COOLONL_CSC')
145 self._SetAcc('CSC_ONL','COOLONL_CSC')
146 self._SetAcc('TDAQ','COOLONL_TDAQ')
147 self._SetAcc('TDAQ_ONL','COOLONL_TDAQ')
148 self._SetAcc('GLOBAL','COOLONL_GLOBAL')
149 self._SetAcc('GLOBAL_ONL','COOLONL_GLOBAL')
150 self._SetAcc('TRIGGER','COOLONL_TRIGGER')
151 self._SetAcc('TRIGGER_ONL','COOLONL_TRIGGER')
152 self._SetAcc('CALO','COOLONL_CALO')
153 self._SetAcc('CALO_ONL','COOLONL_CALO')
154 self._SetAcc('FWD','COOLONL_FWD')
155 self._SetAcc('FWD_ONL','COOLONL_FWD')
156 # set up all access options - offline schemas
157 # only do this if isOnline flag is NOT set
158 # or MC flag is set, to allow HLT testing using MC database
159 if (self.isMC or not self.isOnline):
160 self._SetAcc('INDET_OFL','COOLOFL_INDET')
161 self._SetAcc('PIXEL_OFL','COOLOFL_PIXEL')
162 self._SetAcc('SCT_OFL','COOLOFL_SCT')
163 self._SetAcc('TRT_OFL','COOLOFL_TRT')
164 self._SetAcc('LAR_OFL','COOLOFL_LAR')
165 self._SetAcc('TILE_OFL','COOLOFL_TILE')
166 self._SetAcc('MUON_OFL','COOLOFL_MUON')
167 self._SetAcc('MUONALIGN_OFL','COOLOFL_MUONALIGN')
168 self._SetAcc('MDT_OFL','COOLOFL_MDT')
169 self._SetAcc('RPC_OFL','COOLOFL_RPC')
170 self._SetAcc('TGC_OFL','COOLOFL_TGC')
171 self._SetAcc('CSC_OFL','COOLOFL_CSC')
172 self._SetAcc('TDAQ_OFL','COOLOFL_TDAQ')
173 self._SetAcc('DCS_OFL','COOLOFL_DCS')
174 self._SetAcc('GLOBAL_OFL','COOLOFL_GLOBAL')
175 self._SetAcc('TRIGGER_OFL','COOLOFL_TRIGGER')
176 self._SetAcc('CALO_OFL','COOLOFL_CALO')
177 self._SetAcc('FWD_OFL','COOLOFL_FWD')
178 else:
179 self.msg.info('Running in online mode - no access to COOLOFL schemas')
180 self.iovdbsvc.OnlineMode=True
181
182 # setup default connection to localfile, and put in LOCAL symbol
183 localfile="sqlite://;schema=mycool.db;dbname="
184 self.dblist['LOCAL']=localfile
185 self.iovdbsvc.dbConnection=localfile+self.dbname
186
187 # setup knowledge of dbinstance in IOVDbSvc, for global tag x-check
188 self.iovdbsvc.DBInstance=self.dbname
189
190
191 # setup DBReplicaSvc to veto DBRelease SQLite files if real data
192 if not self.isMC:
193 from DBReplicaSvc.DBReplicaSvcConf import DBReplicaSvc
194 svcMgr+=DBReplicaSvc(COOLSQLiteVetoPattern="/DBRelease/")
195
196 # enable Frontier cache alignment if it looks like Frontier will
197 # be used (via FRONTIER_SERVER variable)
198 # but not for HLT (ATR-4646)
199 if 'FRONTIER_SERVER' in os.environ.keys() and os.environ['FRONTIER_SERVER']!="" and not self.isOnline:
200 self.iovdbsvc.CacheAlign=3
201
202 # setup PoolSvc catalogues
203 from PoolSvc.PoolSvcConf import PoolSvc
204 if not hasattr (svcMgr, 'PoolSvc'):
205 svcMgr+=PoolSvc()
206 # add the standard catalogues
207 # Set entries which will be resolved using ATLAS_POOLCOND_PATH
208 # (if set) - the actual resolution is done inside PoolSvc C++
209 for i in self.poolcats:
210 svcMgr.PoolSvc.ReadCatalog+=["apcfile:poolcond/PoolCat_%s.xml" % i]
211 svcMgr.PoolSvc.ReadCatalog+=["apcfile:poolcond/PoolFileCatalog.xml"]
212 else:
213 raise RuntimeError('Not enough configuration information to setup ConditionsDB access (are GlobalFlags being used?)')
214 self.msg.debug("Loading basic services for CondDBSetup... [DONE]")
215
const bool debug
This class provides the interface to the LCG POOL persistency software.
Definition PoolSvc.h:36

Member Function Documentation

◆ _GetName()

python.CondDB.CondDB._GetName ( self,
forceMC,
forceData )
protected

Definition at line 411 of file CondDB.py.

411 def _GetName(self,forceMC,forceData):
412 "Internal get db instance name, taking into account forceData/MC flags"
413 if forceMC:
414 return self.dbmc
415 elif forceData:
416 return self.dbdata
417 else:
418 return self.dbname
419

◆ _InstanceFromProjectName()

python.CondDB.CondDB._InstanceFromProjectName ( self,
projectName )
protected

Definition at line 421 of file CondDB.py.

421 def _InstanceFromProjectName(self,projectName):
422 try:
423 year=int(projectName[4:6])
424 except Exception:
425 self.msg.warning(f"Failed to extract year from project tag '{projectName}', using CONDBR2.")
426 return "CONDBR2"
427
428 if (year>13):
429 return "CONDBR2"
430 else:
431 return "COMP200"
432
433
434# make instance for use
435# false indicates no backward compatibility objects

◆ _SetAcc()

python.CondDB.CondDB._SetAcc ( self,
ident,
schema )
protected

Definition at line 407 of file CondDB.py.

407 def _SetAcc(self,ident,schema):
408 "Internal helper function to setup database access string"
409 self.dblist[ident]="%s/" % schema
410

◆ addFolder()

python.CondDB.CondDB.addFolder ( self,
ident,
folder,
force = False,
forceMC = False,
forceData = False,
className = None,
extensible = False )
Add access to the given folder, in the identified subdetector schema.
If EXTENSIBLE is set, then if we access an open-ended IOV at the end of the list,
the end time for this range will be set to just past the current event.
Subsequent accesses will update this end time for subsequent events.
This allows the possibility of later adding a new IOV using IOVSvc::setRange.

Definition at line 216 of file CondDB.py.

217 className=None,extensible=False):
218 """Add access to the given folder, in the identified subdetector schema.
219If EXTENSIBLE is set, then if we access an open-ended IOV at the end of the list,
220the end time for this range will be set to just past the current event.
221Subsequent accesses will update this end time for subsequent events.
222This allows the possibility of later adding a new IOV using IOVSvc::setRange."""
223 # first check if access to this folder was blocked, unless forcing
224 for block in self.blocklist:
225 if (folder.find(block)>=0 and not force): return
226 folderadd=''
227 # now check if ident is defined, and add folder
228 if (ident in self.dblist.keys()):
229 folderadd="<db>%s%s</db> %s" % (self.dblist[ident],self._GetName(forceMC,forceData),folder)
230 elif (ident==''):
231 folderadd=folder
232 elif (ident.find('.')>0):
233 # interpret the identifier as a filename for SQLite file
234 folderadd='<db>sqlite://;schema=%s;dbname=%s</db> %s' % (ident,self._GetName(forceMC,forceData),folder)
235 else:
236 raise RuntimeError("Conditions database identifier %s is not defined" % ident)
237 if extensible:
238 folderadd = folderadd + '<extensible/>'
239
240 self.iovdbsvc.Folders+=[folderadd]
241
242 if className:
243 key = (className, self.extractFolder(folder))
244 if key not in condInputLoader.Load:
245 condInputLoader.Load.add(key)
246

◆ addFolderSplitMC()

python.CondDB.CondDB.addFolderSplitMC ( self,
ident,
folder1,
folder2,
force = False,
forceMC = False,
forceData = False,
className = None )

Definition at line 263 of file CondDB.py.

263 def addFolderSplitMC(self,ident,folder1,folder2,force=False,forceMC=False,forceData=False,className=None):
264 "Add access to given folder, using folder1 (online) for real data, folde2 (offline) for MC"
265 if self.isMC:
266 self.addFolder(ident+'_OFL',folder2,force=force,forceMC=forceMC,forceData=forceData,className=className)
267 else:
268 self.addFolder(ident,folder1,force=force,forceMC=forceMC,forceData=forceData,className=className)
269

◆ addFolderSplitOnline()

python.CondDB.CondDB.addFolderSplitOnline ( self,
ident,
folder1,
folder2,
force = False,
forceMC = False,
forceData = False,
className = None,
extensible = False )

Definition at line 251 of file CondDB.py.

252 className=None,extensible=False):
253 "Add access to given folder, using folder1 online, folder2 offline"
254 if self.isOnline and not self.isMC:
255 self.addFolder(ident,folder1,force=force,forceMC=forceMC,forceData=forceData,
256 className=className,extensible=extensible)
257 return folder1
258 else:
259 self.addFolder(ident+'_OFL',folder2,force=force,forceMC=forceMC,forceData=forceData,
260 className=className,extensible=extensible)
261 return folder2
262

◆ addFolderWithTag()

python.CondDB.CondDB.addFolderWithTag ( self,
ident,
folder,
tag,
force = False,
forceMC = False,
forceData = False,
className = None )

Definition at line 247 of file CondDB.py.

247 def addFolderWithTag(self,ident,folder,tag,force=False,forceMC=False,forceData=False,className=None):
248 "Add access to the given folder/schema, using a specified tag"
249 self.addFolder(ident,folder+" <tag>%s</tag>" % tag,force,forceMC,forceData,className=className)
250

◆ addMarkup()

python.CondDB.CondDB.addMarkup ( self,
folder,
markup )

Definition at line 297 of file CondDB.py.

297 def addMarkup(self,folder,markup):
298 "Add given XML markup to folder string for given folder"
299 nmod=0
300 for i in range(0,len(self.iovdbsvc.Folders)):
301 if (self.iovdbsvc.Folders[i].find(folder)>=0):
302 self.iovdbsvc.Folders[i]+=markup
303 nmod+=1
304 if (nmod==0):
305 raise RuntimeError("conddb.addMarkup: Folder %s is not known to IOVDbSvc" % folder)
306
307
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:138

◆ addOverride()

python.CondDB.CondDB.addOverride ( self,
folder,
tag )

Definition at line 270 of file CondDB.py.

270 def addOverride(self,folder,tag):
271 "Add a tag override for the specified folder"
272 overrideDirective = '<prefix>%s</prefix> <tag>%s</tag>' % (folder,tag)
273 if overrideDirective not in self.iovdbsvc.overrideTags:
274 self.iovdbsvc.overrideTags+=[overrideDirective]
275

◆ blockFolder()

python.CondDB.CondDB.blockFolder ( self,
folder )

Definition at line 276 of file CondDB.py.

276 def blockFolder(self,folder):
277 "Block use of specified conditions DB folder so data can be read from elsewhere"
278 self.blocklist+=[folder]
279 # check existing list of folders and remove it if found
280 for i in range(0,len(self.iovdbsvc.Folders)):
281 if (self.iovdbsvc.Folders[i].find(folder)>=0):
282 del self.iovdbsvc.Folders[i]
283 break
284
285 folderName = self.extractFolder(folder)
286 for f in condInputLoader.Load:
287 if (f[-1] == folderName):
288 condInputLoader.Load.remove(f) # OK since we break after this
289 break
290

◆ dumpFolderReadReal()

python.CondDB.CondDB.dumpFolderReadReal ( self,
outfile )

Definition at line 396 of file CondDB.py.

396 def dumpFolderReadReal(self,outfile):
397 "Dump configuration information for use in ReadReal in AthenaDBTestRec"
398 ofile=open(outfile,'w')
399 ofile.write('FolderList=%s\n' % self.iovdbsvc.Folders.__repr__())
400 ofile.close()
401

◆ dumpFolderTags()

python.CondDB.CondDB.dumpFolderTags ( self,
outfile,
folderNames = False,
folderOrigin = False )

Definition at line 352 of file CondDB.py.

352 def dumpFolderTags(self,outfile,folderNames=False,folderOrigin=False):
353 "Write out folder-specific tag names to file, for use with AtlCoolCopy tools"
354 ofile=open(outfile,'w')
355 for folderstr in self.iovdbsvc.Folders:
356 # extract tag specifications and write in file
357 if (folderNames):
358 # also extract the name of the folder - all non-XML text
359 fname=self.extractFolder(folderstr)
360 if (fname!=""):
361 dbtype=""
362 # find the database schema and insert :ONL or :OFL
363 if (folderOrigin):
364 if '<db>' in folderstr:
365 idx1=folderstr.find('<db>')+4
366 idx2=folderstr.find('</db>')
367 if (idx2>0):
368 dbname=folderstr[idx1:idx2].strip()
369 if 'ONL' in dbname:
370 dbtype=':ONL'
371 elif 'OFL' in dbname:
372 dbtype=':OFL'
373 ofile.write('--folder %s%s\n' % (fname,dbtype))
374 if '<tag>' in folderstr:
375 idx1=folderstr.find('<tag>')+5
376 idx2=folderstr.find('</tag>')
377 if (idx2>0):
378 tag=folderstr[idx1:idx2].strip()
379 # do not write out TagInfo magic tags, except when giving
380 # folderOrigin
381 if ((tag.find('TagInfo')!=0 and tag!='HEAD') or folderOrigin):
382 ofile.write('--tag %s\n' % tag)
383 # also extract any special tag names from overrideTags list
384 for folderstr in self.iovdbsvc.overrideTags:
385 # extract tag specifications and write in file
386 if '<tag>' in folderstr:
387 idx1=folderstr.find('<tag>')+5
388 idx2=folderstr.find('</tag>')
389 if (idx2>0):
390 tag=folderstr[idx1:idx2].strip()
391 # do not write out TagInfo magic tags
392 if (tag.find('TagInfo')!=0 and tag!='HEAD'):
393 ofile.write('--tag %s\n' % tag)
394 ofile.close()
395

◆ extractFolder()

python.CondDB.CondDB.extractFolder ( self,
folderstr )

Definition at line 325 of file CondDB.py.

325 def extractFolder(self,folderstr):
326 "Extract the folder name (non-XML text) from a IOVDbSvc.Folders entry"
327 fname=""
328 xmltag=""
329 ix=0
330 while ix<len(folderstr):
331 if (folderstr[ix]=='<' and xmltag==""):
332 ix2=folderstr.find('>',ix)
333 if (ix2!=-1):
334 xmltag=(folderstr[ix+1:ix2]).strip()
335 ix=ix2+1
336 if xmltag[-1] == '/':
337 xmltag=""
338 ix=ix+1
339 elif (folderstr[ix:ix+2]=='</' and xmltag!=""):
340 ix2=folderstr.find('>',ix)
341 if (ix2!=-1):
342 xmltag=""
343 ix=ix2+1
344 else:
345 ix2=folderstr.find('<',ix)
346 if ix2==-1: ix2=len(folderstr)
347 if (xmltag==""): fname=fname+folderstr[ix:ix2]
348 ix=ix2
349 return fname.strip()
350
351

◆ folderRequested()

python.CondDB.CondDB.folderRequested ( self,
folder )

Definition at line 291 of file CondDB.py.

291 def folderRequested(self,folder):
292 "Return true if the given folder has already been requested"
293 for i in self.iovdbsvc.Folders:
294 if (i.find(folder)>=0): return True
295 return False
296

◆ GetInstance()

python.CondDB.CondDB.GetInstance ( self,
forceMC = False,
forceData = False )

Definition at line 402 of file CondDB.py.

402 def GetInstance(self,forceMC=False,forceData=False):
403 "Get the name of the DB instance in use (e.g. OFLP200)"
404 return self._GetName(forceMC,forceData)
405
406

◆ setCrestCoolToFile()

python.CondDB.CondDB.setCrestCoolToFile ( self,
crestCoolData = False )

Definition at line 321 of file CondDB.py.

321 def setCrestCoolToFile(self, crestCoolData=False):
322 "Set option to write CREST or COOL data in the same format"
323 self.iovdbsvc.CrestCoolToFile=crestCoolData
324

◆ setGlobalTag()

python.CondDB.CondDB.setGlobalTag ( self,
tag )

Definition at line 308 of file CondDB.py.

308 def setGlobalTag(self,tag):
309 "Set the GlobalTag value used as the key for hierarhical conditions"
310 self.iovdbsvc.GlobalTag=tag
311
312

◆ setRequireLock()

python.CondDB.CondDB.setRequireLock ( self,
lock = True )

Definition at line 313 of file CondDB.py.

313 def setRequireLock(self,lock=True):
314 "Set the flag indicating global tags will be required to be locked"
315 self.iovdbsvc.CheckLock=lock
316

◆ setWriteDataToFile()

python.CondDB.CondDB.setWriteDataToFile ( self,
writeData = False )

Definition at line 317 of file CondDB.py.

317 def setWriteDataToFile(self, writeData=False):
318 "Set option to write data to file"
319 self.iovdbsvc.OutputToFile=writeData
320

Member Data Documentation

◆ blocklist

list python.CondDB.CondDB.blocklist = []

Definition at line 72 of file CondDB.py.

◆ conddb

python.CondDB.CondDB.conddb = CondDB(False)
static

Definition at line 436 of file CondDB.py.

◆ dbdata

python.CondDB.CondDB.dbdata = ''

Definition at line 79 of file CondDB.py.

◆ dblist

dict python.CondDB.CondDB.dblist = {}

Definition at line 70 of file CondDB.py.

◆ dbmc

str python.CondDB.CondDB.dbmc = ''

Definition at line 78 of file CondDB.py.

◆ dbname

python.CondDB.CondDB.dbname = ''

Definition at line 76 of file CondDB.py.

◆ iovdbsvc

python.CondDB.CondDB.iovdbsvc = svcMgr.IOVDbSvc

Definition at line 67 of file CondDB.py.

◆ isMC

str python.CondDB.CondDB.isMC = 'data'

Definition at line 84 of file CondDB.py.

◆ isOnline

python.CondDB.CondDB.isOnline = athenaCommonFlags.isOnline()

Definition at line 83 of file CondDB.py.

◆ msg

python.CondDB.CondDB.msg = logging.getLogger( 'IOVDbSvc.CondDB' )

Definition at line 60 of file CondDB.py.

◆ poolcats

list python.CondDB.CondDB.poolcats = []

Definition at line 80 of file CondDB.py.


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