CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
python.Events Class Reference

Public Member Functions

def __del__ (self)
 
def __init__ (self, inputFiles='', **kwargs)
 
def __iter__ (self)
 
def eventAuxiliary (self)
 
def fileIndex (self)
 
def fileIndicies (self)
 
def getByLabel (self, *args)
 
def object (self)
 
def secondaryFileIndex (self)
 
def size (self)
 
def to (self, entryIndex)
 
def toBegin (self)
 

Private Member Functions

def _createFWLiteEvent (self)
 
def _next (self)
 
def _parseOptions (self, options)
 Private Member Functions ##. More...
 
def _toBeginCode (self)
 

Private Attributes

 _event
 
 _eventCounts
 
 _filenames
 
 _forceEvent
 
 _maxEvents
 Parse optional arguments ##. More...
 
 _mode
 
 _secondaryFilenames
 
 _tfile
 
 _toBegin
 
 _veryFirstTime
 

Detailed Description

autotoc_md47

## Events

autotoc_md49

Python interface to FWLite ChainEvent class

Definition at line 458 of file __init__.py.

Constructor & Destructor Documentation

◆ __init__()

def python.Events.__init__ (   self,
  inputFiles = '',
**  kwargs 
)
inputFiles    => Either a single filename or a list of filenames
Optional arguments:
forceEvent  => Use fwlite::Event IF there is only one file
maxEvents   => Maximum number of events to process

Definition at line 461 of file __init__.py.

461  def __init__(self, inputFiles = '', **kwargs):
462  """inputFiles => Either a single filename or a list of filenames
463  Optional arguments:
464  forceEvent => Use fwlite::Event IF there is only one file
465  maxEvents => Maximum number of events to process
466  """
467  self._veryFirstTime = True
468  self._event = 0
469  self._eventCounts = 0
470  self._maxEvents = 0
471  self._forceEvent = False
472  self._mode = None
473  self._secondaryFilenames = None
474  if isinstance (inputFiles, list):
475  # it's a list
476  self._filenames = inputFiles[:]
477  elif isinstance (inputFiles, VarParsing):
478  # it's a VarParsing object
479  options = inputFiles
480  self._maxEvents = options.maxEvents
481  self._filenames = options.inputFiles
482  self._secondaryFilenames = options.secondaryInputFiles
483  else:
484  # it's probably a single string
485  self._filenames = [inputFiles]
486 
489  if 'maxEvents' in kwargs:
490  self._maxEvents = kwargs['maxEvents']
491  del kwargs['maxEvents']
492  if 'forceEvent' in kwargs:
493  self._forceEvent = kwargs['forceEvent']
494  del kwargs['forceEvent']
495  if 'options' in kwargs:
496  options = kwargs ['options']
497  self._maxEvents = options.maxEvents
498  self._filenames = options.inputFiles
499  self._secondaryFilenames = options.secondaryInputFiles
500  del kwargs['options']
501  # Since we deleted the options as we used them, that means
502  # that kwargs should be empty. If it's not, that means that
503  # somebody passed in an argument that we're not using and we
504  # should complain.
505  if len (kwargs):
506  raise RuntimeError("Unknown arguments %s" % kwargs)
507  if not self._filenames:
508  raise RuntimeError("No input files given")
509 
510 

◆ __del__()

def python.Events.__del__ (   self)
(Internal) Destructor

Definition at line 625 of file __init__.py.

625  def __del__ (self):
626  """(Internal) Destructor"""
627  # print "Goodbye cruel world, I'm leaving you today."
628  del self._event
629  # print "Goodbye, goodbye, goodbye."
630 
631 

References python.Events._event.

Member Function Documentation

◆ __iter__()

def python.Events.__iter__ (   self)

Definition at line 587 of file __init__.py.

587  def __iter__ (self):
588  return self._next()
589 
590 

References python.Lumis._next(), python.Runs._next(), and python.Events._next().

◆ _createFWLiteEvent()

def python.Events._createFWLiteEvent (   self)
private
(Internal) Creates an FWLite Event

Definition at line 632 of file __init__.py.

632  def _createFWLiteEvent (self):
633  """(Internal) Creates an FWLite Event"""
634  self._veryFirstTime = False
635  self._toBegin = True
636  if isinstance (self._filenames[0], ROOT.TFile):
637  self._event = ROOT.fwlite.Event (self._filenames[0])
638  self._mode = 'single'
639  return self._mode
640  if len (self._filenames) == 1 and self._forceEvent:
641  self._tfile = ROOT.TFile.Open (self._filenames[0])
642  self._event = ROOT.fwlite.Event (self._tfile)
643  self._mode = 'single'
644  return self._mode
645  filenamesSVec = ROOT.vector("string") ()
646  for name in self._filenames:
647  filenamesSVec.push_back (name)
648  if self._secondaryFilenames:
649  secondarySVec = ROOT.vector("string") ()
650  for name in self._secondaryFilenames:
651  secondarySVec.push_back (name)
652  self._event = ROOT.fwlite.MultiChainEvent (filenamesSVec,
653  secondarySVec)
654  self._mode = 'multi'
655  else:
656  self._event = ROOT.fwlite.ChainEvent (filenamesSVec)
657  self._mode = 'chain'
658  return self._mode
659 
660 

References python.Events._event, python.Lumis._filenames, python.Runs._filenames, python.Events._filenames, python.Events._forceEvent, python.Events._mode, python.Events._toBegin, python.Lumis._veryFirstTime, python.Runs._veryFirstTime, and python.Events._veryFirstTime.

Referenced by python.Events._next(), python.Events.getByLabel(), python.Events.size(), and python.Events.to().

◆ _next()

def python.Events._next (   self)
private
(Internal) Iterator internals

Definition at line 661 of file __init__.py.

661  def _next (self):
662  """(Internal) Iterator internals"""
663  if self._veryFirstTime:
664  self._createFWLiteEvent()
665  if self._toBegin:
666  self._toBeginCode()
667  while not self._event.atEnd() :
668  yield self
669  self._eventCounts += 1
670  if self._maxEvents > 0 and self._eventCounts >= self._maxEvents:
671  break
672  # Have we been asked to go to the first event?
673  if self._toBegin:
674  self._toBeginCode()
675  else:
676  # if not, lets go to the next event
677  self._event.__preinc__()
678 
679 
680 

References python.Events._createFWLiteEvent(), python.Events._event, python.Events._eventCounts, python.Events._maxEvents, python.Events._toBegin, python.Events._toBeginCode(), python.Lumis._veryFirstTime, python.Runs._veryFirstTime, and python.Events._veryFirstTime.

Referenced by python.Events.__iter__().

◆ _parseOptions()

def python.Events._parseOptions (   self,
  options 
)
private

Private Member Functions ##.

(Internal) Parse options

Definition at line 614 of file __init__.py.

614  def _parseOptions (self, options):
615  """(Internal) Parse options"""
616 
617 

◆ _toBeginCode()

def python.Events._toBeginCode (   self)
private
(Internal) Does actual work of toBegin() call

Definition at line 618 of file __init__.py.

618  def _toBeginCode (self):
619  """(Internal) Does actual work of toBegin() call"""
620  self._toBegin = False
621  self._event.toBegin()
622  self._eventCounts = 0
623 
624 

Referenced by python.Events._next().

◆ eventAuxiliary()

def python.Events.eventAuxiliary (   self)
Returns eventAuxiliary object

Definition at line 530 of file __init__.py.

530  def eventAuxiliary (self):
531  """Returns eventAuxiliary object"""
532  if self._veryFirstTime:
533  raise RuntimeError("eventAuxiliary() called before "\
534  "toBegin() or to()")
535  return self._event.eventAuxiliary()
536 
537 

References python.Events._event, python.Lumis._veryFirstTime, python.Runs._veryFirstTime, and python.Events._veryFirstTime.

◆ fileIndex()

def python.Events.fileIndex (   self)

Definition at line 591 of file __init__.py.

591  def fileIndex (self):
592  if self._event:
593  return self._event.fileIndex()
594  else:
595  # default non-existant value is -1. Return something else
596  return -2
597 
598 

References python.Events._event.

Referenced by python.Events.fileIndicies().

◆ fileIndicies()

def python.Events.fileIndicies (   self)

◆ getByLabel()

def python.Events.getByLabel (   self,
args 
)
Calls FWLite's getByLabel.  Called:
getByLabel (moduleLabel, handle)
getByLabel (moduleLabel, productInstanceLabel, handle),
getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
or
getByLabel ( (mL, pIL,pL), handle)

Definition at line 543 of file __init__.py.

543  def getByLabel (self, *args):
544  """Calls FWLite's getByLabel. Called:
545  getByLabel (moduleLabel, handle)
546  getByLabel (moduleLabel, productInstanceLabel, handle),
547  getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
548  or
549  getByLabel ( (mL, pIL,pL), handle)
550  """
551  if self._veryFirstTime:
552  self._createFWLiteEvent()
553  length = len (args)
554  if length < 2 or length > 4:
555  # not called correctly
556  raise RuntimeError("Incorrect number of arguments")
557  # handle is always the last argument
558  argsList = list (args)
559  handle = argsList.pop()
560  if len(argsList)==1 :
561  if( isinstance (argsList[0], tuple) or
562  isinstance (argsList[0], list) ) :
563  if len (argsList[0]) > 3:
564  raise RuntimeError("getByLabel Error: label tuple has too " \
565  "many arguments '%s'" % argsList[0])
566  argsList = list(argsList[0])
567  if( isinstance(argsList[0], str) and ":" in argsList[0] ):
568  if argsList[0].count(":") > 3:
569  raise RuntimeError("getByLabel Error: label tuple has too " \
570  "many arguments '%s'" % argsList[0].split(":"))
571  argsList = argsList[0].split(":")
572  while len(argsList) < 3:
573  argsList.append ('')
574  (moduleLabel, productInstanceLabel, processLabel) = argsList
575  labelString = "'" + "', '".join(argsList) + "'"
576  if not handle._wrapper :
577  handle._resetWrapper()
578  handle._setStatus ( self._event.getByLabel( handle._typeInfoGetter(),
579  moduleLabel,
580  productInstanceLabel,
581  processLabel,
582  handle._addressOf() ),
583  labelString )
584  return handle.isValid()
585 
586 

References python.Events._createFWLiteEvent(), python.Events._event, python.Lumis._veryFirstTime, python.Runs._veryFirstTime, python.Events._veryFirstTime, submitPVResolutionJobs.count, join(), and submitPVValidationJobs.split().

◆ object()

def python.Events.object (   self)
Returns event object

Definition at line 538 of file __init__.py.

538  def object (self):
539  """Returns event object"""
540  return self._event
541 
542 

References python.Events._event.

◆ secondaryFileIndex()

def python.Events.secondaryFileIndex (   self)

Definition at line 599 of file __init__.py.

599  def secondaryFileIndex (self):
600  if self._event:
601  return self._event.secondaryFileIndex()
602  else:
603  # default non-existant value is -1. Return something else
604  return -2
605 
606 

References python.Events._event.

Referenced by python.Events.fileIndicies().

◆ size()

def python.Events.size (   self)
Returns number of events

Definition at line 523 of file __init__.py.

523  def size (self):
524  """Returns number of events"""
525  if self._veryFirstTime:
526  self._createFWLiteEvent()
527  return self._event.size()
528 
529 

References python.Events._createFWLiteEvent(), python.Events._event, python.Lumis._veryFirstTime, python.Runs._veryFirstTime, and python.Events._veryFirstTime.

Referenced by ntupleDataFormat._Collection.__iter__(), and ntupleDataFormat._Collection.__len__().

◆ to()

def python.Events.to (   self,
  entryIndex 
)
Jumps to event entryIndex

Definition at line 511 of file __init__.py.

511  def to (self, entryIndex):
512  """Jumps to event entryIndex"""
513  if self._veryFirstTime:
514  self._createFWLiteEvent()
515  return self._event.to ( int(entryIndex) )
516 
517 

References python.Events._createFWLiteEvent(), python.Events._event, python.Lumis._veryFirstTime, python.Runs._veryFirstTime, python.Events._veryFirstTime, and createfilelist.int.

◆ toBegin()

def python.Events.toBegin (   self)
Called to reset event loop to first event.

Definition at line 518 of file __init__.py.

518  def toBegin (self):
519  """Called to reset event loop to first event."""
520  self._toBegin = True
521 
522 

Member Data Documentation

◆ _event

python.Events._event
private

◆ _eventCounts

python.Events._eventCounts
private

Definition at line 469 of file __init__.py.

Referenced by python.Events._next().

◆ _filenames

python.Events._filenames
private

Definition at line 476 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

◆ _forceEvent

python.Events._forceEvent
private

Definition at line 471 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

◆ _maxEvents

python.Events._maxEvents
private

Parse optional arguments ##.

Definition at line 470 of file __init__.py.

Referenced by python.Events._next().

◆ _mode

python.Events._mode
private

Definition at line 472 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

◆ _secondaryFilenames

python.Events._secondaryFilenames
private

Definition at line 473 of file __init__.py.

◆ _tfile

python.Events._tfile
private

Definition at line 641 of file __init__.py.

◆ _toBegin

python.Events._toBegin
private

Definition at line 520 of file __init__.py.

Referenced by python.Events._createFWLiteEvent(), and python.Events._next().

◆ _veryFirstTime

python.Events._veryFirstTime
private
resolutioncreator_cfi.object
object
Definition: resolutioncreator_cfi.py:4
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
to
submitPVValidationJobs.split
def split(sequence, size)
Definition: submitPVValidationJobs.py:352
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
createfilelist.int
int
Definition: createfilelist.py:10
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443