Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Public Attributes | List of all members
PlotCalibrationGains.GainReader Class Reference
Collaboration diagram for PlotCalibrationGains.GainReader:

Public Member Functions

def __init__ (self)
 
def LoadGainsXml (self, name)
 
def LoadReferenceXml (self, name)
 
def LoadGainsSqlite (self, name)
 
def LoadReferenceSqlite (self, name)
 
def LoadReferenceOracle (self, mapping_tool)
 
def getGain (self, coolId)
 
def getChi2 (self, coolId)
 
def getOffset (self, coolId)
 
def getReferenceGain (self, coolId)
 
def passesSelection (self, coolId)
 

Public Attributes

 measured_gains
 
 reference_gains
 
 measured_chi2
 
 measured_offset
 
 UNIX2COOL
 
 run_nr
 
 strategy
 

Detailed Description

Definition at line 296 of file PlotCalibrationGains.py.

Constructor & Destructor Documentation

◆ __init__()

def PlotCalibrationGains.GainReader.__init__ (   self)

Definition at line 298 of file PlotCalibrationGains.py.

298  def __init__(self):
299 
300  self.measured_gains={}
301  self.reference_gains={}
302  self.measured_chi2={}
303  self.measured_offset={}
304  self.UNIX2COOL = 1000000000
305 
306  self.run_nr=None
307  self.strategy=None
308 

Member Function Documentation

◆ getChi2()

def PlotCalibrationGains.GainReader.getChi2 (   self,
  coolId 
)

Definition at line 488 of file PlotCalibrationGains.py.

488  def getChi2(self,coolId):
489  if (coolId in self.measured_chi2):
490  return float(self.measured_chi2[coolId])
491  else:
492  return ''
493 

◆ getGain()

def PlotCalibrationGains.GainReader.getGain (   self,
  coolId 
)

Definition at line 482 of file PlotCalibrationGains.py.

482  def getGain(self,coolId):
483  if (coolId in self.measured_gains):
484  return float(self.measured_gains[coolId])
485  else:
486  return ''
487 

◆ getOffset()

def PlotCalibrationGains.GainReader.getOffset (   self,
  coolId 
)

Definition at line 494 of file PlotCalibrationGains.py.

494  def getOffset(self,coolId):
495  if (coolId in self.measured_offset):
496  return float(self.measured_offset[coolId])
497  else:
498  return ''
499 

◆ getReferenceGain()

def PlotCalibrationGains.GainReader.getReferenceGain (   self,
  coolId 
)

Definition at line 500 of file PlotCalibrationGains.py.

500  def getReferenceGain(self,coolId):
501  if (coolId in self.reference_gains):
502  return float(self.reference_gains[coolId])
503  else:
504  return ''
505 

◆ LoadGainsSqlite()

def PlotCalibrationGains.GainReader.LoadGainsSqlite (   self,
  name 
)

Definition at line 348 of file PlotCalibrationGains.py.

348  def LoadGainsSqlite(self,name):
349 
350  # get database service and open database
351  dbSvc = cool.DatabaseSvcFactory.databaseService()
352 
353  dbString='sqlite://;schema='+name+';dbname=L1CALO'
354  try:
355  db = dbSvc.openDatabase(dbString, False)
356  except Exception as e:
357  print ('Error: Problem opening database', e)
358  sys.exit(1)
359 
360  folder_name = '/TRIGGER/L1Calo/V1/Results/EnergyScanResults'
361  folder=db.getFolder(folder_name)
362 
363  startUtime = int(time.time())
364  endUtime = int(time.time())
365  startValKey = startUtime * self.UNIX2COOL
366  endValKey = endUtime * self.UNIX2COOL
367  chsel = cool.ChannelSelection(0,sys.maxsize)
368 
369  try:
370  itr=folder.browseObjects(startValKey, endValKey, chsel)
371  except Exception as e:
372  print (e)
373  sys.exit(1)
374 
375  for row in itr:
376  CoolId = hex(int(row.channelId()))
377  payload = row.payload()
378  self.measured_gains[CoolId] = payload['Slope']
379  self.measured_chi2[CoolId] = payload['Chi2']
380  self.measured_offset[CoolId] = payload['Offset']
381 
382  folder_gen_name = '/TRIGGER/L1Calo/V1/Results/EnergyScanRunInfo'
383  folder_gen=db.getFolder(folder_gen_name)
384 
385  try:
386  itr=folder_gen.browseObjects(startValKey, endValKey, chsel)
387  for row in itr:
388  payload = row.payload()
389  self.run_nr = payload['RunNumber']
390  self.strategy = payload['GainStrategy']
391  if (self.strategy == ''): self.strategy='NA'
392  print ( ("Run nr. = %d, Strategy = %s") % (self.run_nr, self.strategy) )
393 
394  except Exception: # Doesn't seem to catch C++ exceptions :-(
395  print ("Warning, in LoadGainsSqlite can't get runtype info! Hope this is not serious!")
396 
397  # close database
398  db.closeDatabase()
399 

◆ LoadGainsXml()

def PlotCalibrationGains.GainReader.LoadGainsXml (   self,
  name 
)

Definition at line 309 of file PlotCalibrationGains.py.

309  def LoadGainsXml(self,name):
310 
311  input_file = open(name)
312 
313  for line in input_file.readlines():
314  parts = line.split(' ')
315  if parts[0] == '<Channel':
316  list_cool=parts[1].split('\'')
317  cool_id=list_cool[1]
318 
319  list_gain=parts[2].split('\'')
320  gain=list_gain[1]
321  self.measured_gains[cool_id]=gain
322 
323  list_offset=parts[3].split('\'')
324  offset=list_offset[1]
325  self.measured_offset[cool_id]=offset
326 
327  list_chi2=parts[4].split('\'')
328  chi2=list_chi2[1]
329  self.measured_chi2[cool_id]=chi2
330 
331  input_file.close()
332 

◆ LoadReferenceOracle()

def PlotCalibrationGains.GainReader.LoadReferenceOracle (   self,
  mapping_tool 
)

Definition at line 436 of file PlotCalibrationGains.py.

436  def LoadReferenceOracle(self,mapping_tool):
437 
438  # get database service and open database
439  dbSvc = cool.DatabaseSvcFactory.databaseService()
440 
441  dbString = 'oracle://ATLAS_COOLPROD;schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2'
442  try:
443  db = dbSvc.openDatabase(dbString, False)
444  except Exception as e:
445  print ('Error: Problem opening database', e)
446  sys.exit(1)
447 
448  folder_name = "/TRIGGER/Receivers/Factors/CalibGains"
449  folder=db.getFolder(folder_name)
450 
451  startUtime = int(time.time())
452  endUtime = int(time.time())
453  startValKey = startUtime * self.UNIX2COOL
454  endValKey = endUtime * self.UNIX2COOL
455  chsel = cool.ChannelSelection(0,sys.maxsize)
456 
457  try:
458  itr=folder.browseObjects(startValKey, endValKey, chsel)
459  except Exception as e:
460  print (e)
461  sys.exit(1)
462 
463  for row in itr:
464  ReceiverId = hex(int(row.channelId()))
465  PPMId = mapping_tool.getPPMfromReceiver(ReceiverId)
466  payload = row.payload()
467  gain = payload['factor']
468 
469  if PPMId is not None:
470  if self.strategy is None: #run type not known
471  self.reference_gains[PPMId]=gain
472  else:
473  if mapping_tool.getReceiverfromPPM(PPMId,self.strategy) == ReceiverId: # correct receiver?
474  #print ("Using receiver nr.", ReceiverId, "for PPM nr.",PPMId)
475  self.reference_gains[PPMId]=gain
476  #else:
477  # print ("Skipping receiver nr.", ReceiverId, "for PPM nr.",PPMId)
478 
479  # close database
480  db.closeDatabase()
481 

◆ LoadReferenceSqlite()

def PlotCalibrationGains.GainReader.LoadReferenceSqlite (   self,
  name 
)

Definition at line 400 of file PlotCalibrationGains.py.

400  def LoadReferenceSqlite(self,name):
401 
402  # get database service and open database
403  dbSvc = cool.DatabaseSvcFactory.databaseService()
404 
405  dbString='sqlite://;schema='+name+';dbname=L1CALO'
406  try:
407  db = dbSvc.openDatabase(dbString, False)
408  except Exception as e:
409  print ('Error: Problem opening database', e)
410  sys.exit(1)
411 
412  folder_name = '/TRIGGER/L1Calo/V1/Results/EnergyScanResults'
413  folder=db.getFolder(folder_name)
414 
415  startUtime = int(time.time())
416  endUtime = int(time.time())
417  startValKey = startUtime * self.UNIX2COOL
418  endValKey = endUtime * self.UNIX2COOL
419  chsel = cool.ChannelSelection(0,sys.maxsize)
420 
421  try:
422  itr=folder.browseObjects(startValKey, endValKey, chsel)
423  except Exception as e:
424  print (e)
425  sys.exit(1)
426 
427  for row in itr:
428  CoolId = hex(int(row.channelId()))
429  payload = row.payload()
430  self.reference_gains[CoolId]=payload['Slope']
431 
432  # close database
433  db.closeDatabase()
434 
435 

◆ LoadReferenceXml()

def PlotCalibrationGains.GainReader.LoadReferenceXml (   self,
  name 
)

Definition at line 333 of file PlotCalibrationGains.py.

333  def LoadReferenceXml(self,name):
334 
335  input_gains_reference = open(name)
336 
337  for line in input_gains_reference.readlines():
338  parts = line.split(' ')
339  if parts[0] == '<Channel':
340  list_cool=parts[1].split('\'')
341  cool_id=list_cool[1]
342 
343  list_gain=parts[2].split('\'')
344  gain=list_gain[1]
345  self.reference_gains[cool_id]=gain
346 
347 

◆ passesSelection()

def PlotCalibrationGains.GainReader.passesSelection (   self,
  coolId 
)

Definition at line 506 of file PlotCalibrationGains.py.

506  def passesSelection(self,coolId):
507  if ((coolId in self.measured_gains) and
508  (self.getGain(coolId) > 0.5 and self.getGain(coolId)<1.6) and
509  #(self.getGain(coolId) > 0.5 and self.getGain(coolId)<2.1) and
510  #(self.getOffset(coolId) > -2 and self.getOffset(coolId) < 2)):
511  (self.getOffset(coolId) > -10 and self.getOffset(coolId) < 10)):
512  return True
513  else:
514  return False
515 
516 

Member Data Documentation

◆ measured_chi2

PlotCalibrationGains.GainReader.measured_chi2

Definition at line 302 of file PlotCalibrationGains.py.

◆ measured_gains

PlotCalibrationGains.GainReader.measured_gains

Definition at line 300 of file PlotCalibrationGains.py.

◆ measured_offset

PlotCalibrationGains.GainReader.measured_offset

Definition at line 303 of file PlotCalibrationGains.py.

◆ reference_gains

PlotCalibrationGains.GainReader.reference_gains

Definition at line 301 of file PlotCalibrationGains.py.

◆ run_nr

PlotCalibrationGains.GainReader.run_nr

Definition at line 306 of file PlotCalibrationGains.py.

◆ strategy

PlotCalibrationGains.GainReader.strategy

Definition at line 307 of file PlotCalibrationGains.py.

◆ UNIX2COOL

PlotCalibrationGains.GainReader.UNIX2COOL

Definition at line 304 of file PlotCalibrationGains.py.


The documentation for this class was generated from the following file:
PlotRamps.passesSelection
def passesSelection(gain, offset)
Definition: PlotRamps.py:9
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
muCombUtil::getChi2
double getChi2(int &ndof, double ipt, double eta1, double seta1, double phi1, double sphi1, double ipt1, double sipt1, double eta2, double seta2, double phi2, double sphi2, double ipt2, double sipt2, bool useAbsPt)
Get OLD style (i.e. muFast time) Chi2.
Definition: muCombUtil.cxx:374
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
getOffset
void getOffset(boost::tokenizer< boost::char_separator< char > >::iterator &token, uint32_t &offset)
Definition: interpretSeeds.cxx:21
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65