The Gaudi Framework  v37r0 (b608885e)
GaudiMP.pTools.LumiFSR Class Reference

Public Member Functions

def __init__ (self, lumi)
 
def merge (self, otherLumi)
 
def __repr__ (self)
 

Public Attributes

 runs
 
 files
 
 info
 
 keys
 

Detailed Description

Definition at line 470 of file pTools.py.

Constructor & Destructor Documentation

◆ __init__()

def GaudiMP.pTools.LumiFSR.__init__ (   self,
  lumi 
)

Definition at line 471 of file pTools.py.

471  def __init__(self, lumi):
472  # lumi looks like :
473  # { runs : 69857 69858
474  # files : root:/castor/cer.../069857_0000000006.raw
475  # info (key/incr/integral) : 0 8 0 / 1 8 259 / 2 8 76 ... }
476 
477  # class variables
478  self.runs = []
479  self.files = []
480  self.info = {}
481  self.keys = []
482 
483  # get run numbers
484  for r in lumi.runNumbers():
485  self.runs.append(r)
486  # get file ids
487  for f in lumi.fileIDs():
488  self.files.append(f)
489  # Now the tricky bit, the info is not accessible via Python
490  # except as a string
491  s = str(lumi)
492  sa = s.split("info (key/incr/integral) : ")[-1]
493  sa = sa.split("/")[:-1]
494  for rec in sa:
495  k, i, t = rec.split()
496  k = int(k)
497  i = int(i)
498  t = int(t)
499  self.info[k] = (i, t)
500  self.keys = self.info.keys()
501 

Member Function Documentation

◆ __repr__()

def GaudiMP.pTools.LumiFSR.__repr__ (   self)

Definition at line 529 of file pTools.py.

529  def __repr__(self):
530  s = "LumiFSR Python class\n"
531  s += "\tRuns : \n"
532  for r in self.runs:
533  s += "\t\t%i\n" % (r)
534  s += "\tFiles : \n"
535  for f in self.files:
536  s += "\t\t%s\n" % (f)
537  s += "\tInfo : \n"
538  for k in self.keys:
539  increment, integral = self.info[k]
540  s += "\t\t%i\t%i\t%i\n" % (k, increment, integral)
541  return s
542 
543 
544 # =============================================================================
545 
546 

◆ merge()

def GaudiMP.pTools.LumiFSR.merge (   self,
  otherLumi 
)

Definition at line 502 of file pTools.py.

502  def merge(self, otherLumi):
503  assert otherLumi.__class__.__name__ == "LumiFSR"
504  # add any extra runs
505  for r in otherLumi.runs:
506  if r in self.runs:
507  pass
508  else:
509  self.runs.append(r)
510  self.runs.sort()
511  # add any extra fileIDs
512  for f in otherLumi.files:
513  if f in self.files:
514  pass
515  else:
516  self.files.append(f)
517  self.files.sort()
518  # Now add any extra records
519  for k in otherLumi.keys:
520  increment, integral = otherLumi.info[k]
521  if k in self.keys:
522  myIncrement, myIntegral = self.info[k]
523  self.info[k] = (myIncrement + increment, myIntegral + integral)
524  else:
525  self.info[k] = (increment, integral)
526  # don't forget to update keys
527  self.keys = self.info.keys()
528 

Member Data Documentation

◆ files

GaudiMP.pTools.LumiFSR.files

Definition at line 479 of file pTools.py.

◆ info

GaudiMP.pTools.LumiFSR.info

Definition at line 480 of file pTools.py.

◆ keys

GaudiMP.pTools.LumiFSR.keys

Definition at line 481 of file pTools.py.

◆ runs

GaudiMP.pTools.LumiFSR.runs

Definition at line 478 of file pTools.py.


The documentation for this class was generated from the following file:
merge
int merge(const char *target, const char *source, bool fixup=false, bool dbg=true)
Definition: merge.C:430
StringKeyEx.keys
keys
Definition: StringKeyEx.py:63
GaudiAlg.HistoUtils.__repr__
__repr__
Definition: HistoUtils.py:536