ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
COOLRates.RateQueryWorker Class Reference
Inheritance diagram for COOLRates.RateQueryWorker:
Collaboration diagram for COOLRates.RateQueryWorker:

Public Member Functions

def __init__ (self)
 
def processQuery (self, rateBundle)
 
def getdb (self, dbName)
 
def getFolder (self, folderName)
 
def getdbName (self, folderName)
 
def convertTime (self, timeStart, timeEnd, timeConverter)
 
def close (self)
 
def __call__ (self, queueIn, queueOut)
 

Public Attributes

 db_svc
 
 timeConverter
 
 db
 
 folder
 

Detailed Description

Definition at line 423 of file COOLRates.py.

Constructor & Destructor Documentation

◆ __init__()

def COOLRates.RateQueryWorker.__init__ (   self)

Definition at line 424 of file COOLRates.py.

424  def __init__(self):
425  COOLQueryWorker.__init__(self)
426 

Member Function Documentation

◆ __call__()

def COOLRates.COOLQueryWorker.__call__ (   self,
  queueIn,
  queueOut 
)
inherited

Definition at line 133 of file COOLRates.py.

133  def __call__(self,queueIn,queueOut):
134  signal.signal(signal.SIGINT, signal.SIG_IGN)
135  try:
136  while True:
137  try:
138  queryBundle = queueIn.get(False,.001)
139  except Empty:
140  sleep(.001)
141  continue
142  if queryBundle is True:
143  break
144  resultBundle = self.processQuery(queryBundle)
145  queueOut.put(resultBundle)
146  except Exception as exception:
147  logger.critical(exception)
148 
149  self.close()
150  queueOut.put(True)
151  return
152 
153 #====================================================================================================================
154 

◆ close()

def COOLRates.COOLQueryWorker.close (   self)
inherited

Definition at line 130 of file COOLRates.py.

130  def close(self):
131  for db in self.db.values(): db.closeDatabase()
132 

◆ convertTime()

def COOLRates.COOLQueryWorker.convertTime (   self,
  timeStart,
  timeEnd,
  timeConverter 
)
inherited

Definition at line 98 of file COOLRates.py.

98  def convertTime(self,timeStart,timeEnd,timeConverter):
99  validRunLbs = [runLb for runLb,time in timeConverter.items() if timeStart<=time<=timeEnd]
100  return validRunLbs
101 

◆ getdb()

def COOLRates.COOLQueryWorker.getdb (   self,
  dbName 
)
inherited

Definition at line 78 of file COOLRates.py.

78  def getdb(self,dbName):
79  if dbName not in self.db:
80  self.db[dbName] = self.db_svc.openDatabase(dbName,True)
81  return self.db.get(dbName)
82 

◆ getdbName()

def COOLRates.COOLQueryWorker.getdbName (   self,
  folderName 
)
inherited

Definition at line 90 of file COOLRates.py.

90  def getdbName(self,folderName):
91  if folderName.startswith('/LHC/DCS/'):
92  return 'oracle://ATLAS_COOLPROD;schema=ATLAS_COOLOFL_DCS;dbname=COMP200;'
93  if folderName.startswith('/TRIGGER/HLT/') and 'Rates' in folderName:
94  return "oracle://ATLAS_COOLPROD;schema=ATLAS_COOLONL_TRIGGER;dbname=MONP200;"
95  if not folderName.startswith('/'): folderName = '/'+folderName
96  return "oracle://ATLAS_COOLPROD;schema=ATLAS_COOLONL_{0};dbname=COMP200;".format(folderName.split("/")[1])
97 

◆ getFolder()

def COOLRates.COOLQueryWorker.getFolder (   self,
  folderName 
)
inherited

Definition at line 83 of file COOLRates.py.

83  def getFolder(self,folderName):
84  if folderName not in self.folder:
85  dbName = self.getdbName(folderName)
86  db = self.getdb(dbName)
87  self.folder[folderName] = db.getFolder(folderName)
88  return self.folder.get(folderName)
89 

◆ processQuery()

def COOLRates.RateQueryWorker.processQuery (   self,
  rateBundle 
)

Reimplemented from COOLRates.COOLQueryWorker.

Definition at line 427 of file COOLRates.py.

427  def processQuery(self,rateBundle):
428  result = {}
429  result[rateBundle.alias] = {}
430 
431  #Get first result
432  firstResult = {}
433  folder = self.getFolder(rateBundle.folderName)
434  folder.setPrefetchAll(False)
435  folderIterator = folder.browseObjects(rateBundle.IoVStart,rateBundle.IoVEnd,rateBundle.channelSelection)
436  while folderIterator.goToNext():
437  currentSlice = folderIterator.currentRef()
438  firstResult[currentSlice.since()]=float(currentSlice.payloadValue(rateBundle.payloadName))
439  folderIterator.close()
440 
441  #Get second result (if counts based)
442  if rateBundle.turnCountFolderName is not None:
443  secondResult = {}
444  folder = self.getFolder(rateBundle.turnCountFolderName)
445  folder.setPrefetchAll(False)
446  folderIterator = folder.browseObjects(rateBundle.IoVStart,rateBundle.IoVEnd,cool.ChannelSelection())
447  while folderIterator.goToNext():
448  currentSlice = folderIterator.currentRef()
449  secondResult[currentSlice.since()]=float(currentSlice.payloadValue(rateBundle.turnCountPayloadName))
450  folderIterator.close()
451  result[rateBundle.alias].update(dict((key,11246.0*firstResult.get(key)/secondResult.get(key)) for key in commonKeys([firstResult,secondResult])))
452  else:
453  result[rateBundle.alias].update(firstResult)
454  return result
455 
456 #====================================================================================================================
457 

Member Data Documentation

◆ db

COOLRates.COOLQueryWorker.db
inherited

Definition at line 75 of file COOLRates.py.

◆ db_svc

COOLRates.COOLQueryWorker.db_svc
inherited

Definition at line 73 of file COOLRates.py.

◆ folder

COOLRates.COOLQueryWorker.folder
inherited

Definition at line 76 of file COOLRates.py.

◆ timeConverter

COOLRates.COOLQueryWorker.timeConverter
inherited

Definition at line 74 of file COOLRates.py.


The documentation for this class was generated from the following file:
vtune_athena.format
format
Definition: vtune_athena.py:14
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:797
ReadCoolUPD4.openDatabase
def openDatabase(dbstring)
Definition: ReadCoolUPD4.py:21
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
dqt_zlumi_pandas.update
update
Definition: dqt_zlumi_pandas.py:42
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127
readCCLHist.float
float
Definition: readCCLHist.py:83
COOLRates.commonKeys
def commonKeys(dictionaries)
Definition: COOLRates.py:61