CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
python.Events Class Reference

## Events

More...

Public Member Functions

def __del__
 
def __init__
 
def __iter__
 
def eventAuxiliary
 
def fileIndex
 
def fileIndicies
 
def getByLabel
 
def object
 
def secondaryFileIndex
 
def size
 
def to
 
def toBegin
 

Private Member Functions

def _createFWLiteEvent
 
def _next
 
def _parseOptions
 Private Member Functions ##. More...
 
def _toBeginCode
 

Private Attributes

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

Detailed Description

## Events

Python interface to FWLite ChainEvent class

Definition at line 447 of file __init__.py.

Constructor & Destructor Documentation

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 450 of file __init__.py.

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

Definition at line 609 of file __init__.py.

References python.Events._event.

610  def __del__ (self):
611  """(Internal) Destructor"""
612  # print "Goodbye cruel world, I'm leaving you today."
613  del self._event
614  # print "Goodbye, goodbye, goodbye."
615 

Member Function Documentation

def python.Events.__iter__ (   self)

Definition at line 571 of file __init__.py.

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

572  def __iter__ (self):
573  return self._next()
574 
def python.Events._createFWLiteEvent (   self)
private
(Internal) Creates an FWLite Event

Definition at line 616 of file __init__.py.

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().

617  def _createFWLiteEvent (self):
618  """(Internal) Creates an FWLite Event"""
619  self._veryFirstTime = False
620  self._toBegin = True
621  if isinstance (self._filenames[0], ROOT.TFile):
622  self._event = ROOT.fwlite.Event (self._filenames[0])
623  self._mode = 'single'
624  return self._mode
625  if len (self._filenames) == 1 and self._forceEvent:
626  self._tfile = ROOT.TFile.Open (self._filenames[0])
627  self._event = ROOT.fwlite.Event (self._tfile)
628  self._mode = 'single'
629  return self._mode
630  filenamesSVec = ROOT.vector("string") ()
631  for name in self._filenames:
632  filenamesSVec.push_back (name)
633  if self._secondaryFilenames:
634  secondarySVec = ROOT.vector("string") ()
635  for name in self._secondaryFilenames:
636  secondarySVec.push_back (name)
637  self._event = ROOT.fwlite.MultiChainEvent (filenamesSVec,
638  secondarySVec)
639  self._mode = 'multi'
640  else:
641  self._event = ROOT.fwlite.ChainEvent (filenamesSVec)
642  self._mode = 'chain'
643  return self._mode
644 
def _createFWLiteEvent
Definition: __init__.py:616
def python.Events._next (   self)
private
(Internal) Iterator internals

Definition at line 645 of file __init__.py.

References python.Events._createFWLiteEvent(), 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__().

646  def _next (self):
647  """(Internal) Iterator internals"""
648  if self._veryFirstTime:
649  self._createFWLiteEvent()
650  if self._toBegin:
651  self._toBeginCode()
652  while not self._event.atEnd() :
653  yield self
654  self._eventCounts += 1
655  if self._maxEvents > 0 and self._eventCounts >= self._maxEvents:
656  break
657  # Have we been asked to go to the first event?
658  if self._toBegin:
659  self._toBeginCode()
660  else:
661  # if not, lets go to the next event
662  self._event.__preinc__()
663 
664 
def _createFWLiteEvent
Definition: __init__.py:616
def _toBeginCode
Definition: __init__.py:602
_maxEvents
Parse optional arguments ##.
Definition: __init__.py:459
def python.Events._parseOptions (   self,
  options 
)
private

Private Member Functions ##.

(Internal) Parse options

Definition at line 598 of file __init__.py.

599  def _parseOptions (self, options):
600  """(Internal) Parse options"""
601 
def _parseOptions
Private Member Functions ##.
Definition: __init__.py:598
def python.Events._toBeginCode (   self)
private
(Internal) Does actual work of toBegin() call

Definition at line 602 of file __init__.py.

Referenced by python.Events._next().

603  def _toBeginCode (self):
604  """(Internal) Does actual work of toBegin() call"""
605  self._toBegin = False
606  self._event.toBegin()
607  self._eventCounts = 0
608 
def _toBeginCode
Definition: __init__.py:602
def python.Events.eventAuxiliary (   self)
Returns eventAuxiliary object

Definition at line 519 of file __init__.py.

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

520  def eventAuxiliary (self):
521  """Returns eventAuxiliary object"""
522  if self._veryFirstTime:
523  raise RuntimeError, "eventAuxiliary() called before "\
524  "toBegin() or to()"
525  return self._event.eventAuxiliary()
526 
def eventAuxiliary
Definition: __init__.py:519
def python.Events.fileIndex (   self)

Definition at line 575 of file __init__.py.

References python.Events._event.

Referenced by python.Events.fileIndicies().

576  def fileIndex (self):
577  if self._event:
578  return self._event.fileIndex()
579  else:
580  # default non-existant value is -1. Return something else
581  return -2
582 
def python.Events.fileIndicies (   self)

Definition at line 591 of file __init__.py.

References fwlite::LuminosityBlockBase.fileIndex(), fwlite::RunBase.fileIndex(), fwlite::EventBase.fileIndex(), fwlite::ChainEvent.fileIndex(), fwlite::MultiChainEvent.fileIndex(), python.Events.fileIndex(), fwlite::LuminosityBlockBase.secondaryFileIndex(), fwlite::RunBase.secondaryFileIndex(), fwlite::EventBase.secondaryFileIndex(), fwlite::MultiChainEvent.secondaryFileIndex(), and python.Events.secondaryFileIndex().

592  def fileIndicies (self):
593  return (self.fileIndex(), self.secondaryFileIndex())
594 
def fileIndicies
Definition: __init__.py:591
def secondaryFileIndex
Definition: __init__.py:583
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 532 of file __init__.py.

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

533  def getByLabel (self, *args):
534  """Calls FWLite's getByLabel. Called:
535  getByLabel (moduleLabel, handle)
536  getByLabel (moduleLabel, productInstanceLabel, handle),
537  getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
538  or
539  getByLabel ( (mL, pIL,pL), handle)
540  """
541  if self._veryFirstTime:
542  self._createFWLiteEvent()
543  length = len (args)
544  if length < 2 or length > 4:
545  # not called correctly
546  raise RuntimeError, "Incorrect number of arguments"
547  # handle is always the last argument
548  argsList = list (args)
549  handle = argsList.pop()
550  if len(argsList)==1 and \
551  ( isinstance (argsList[0], tuple) or
552  isinstance (argsList[0], list) ) :
553  if len (argsList) > 3:
554  raise RuntimeError, "getByLabel Error: label tuple has too " \
555  "many arguments '%s'" % argsList[0]
556  argsList = list(argsList[0])
557  while len(argsList) < 3:
558  argsList.append ('')
559  (moduleLabel, productInstanceLabel, processLabel) = argsList
560  labelString = "'" + "', '".join(argsList) + "'"
561  if not handle._wrapper :
562  handle._resetWrapper()
563  handle._setStatus ( self._event.getByLabel( handle._typeInfoGetter(),
564  moduleLabel,
565  productInstanceLabel,
566  processLabel,
567  handle._addressOf() ),
568  labelString )
569  return handle.isValid()
570 
def _createFWLiteEvent
Definition: __init__.py:616
def getByLabel
Definition: __init__.py:532
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def python.Events.object (   self)
Returns event object

Definition at line 527 of file __init__.py.

References python.Events._event.

Referenced by Vispa.Views.LineDecayView.LineDecayContainer.createObject(), Vispa.Views.LineDecayView.LineDecayContainer.delete(), Vispa.Views.LineDecayView.DecayLine.delete(), Vispa.Views.LineDecayView.LineDecayContainer.mouseReleaseEvent(), and Vispa.Views.BoxDecayView.BoxDecayContainer.toggleCollapse().

528  def object (self):
529  """Returns event object"""
530  return self._event
531 
def python.Events.secondaryFileIndex (   self)

Definition at line 583 of file __init__.py.

References python.Events._event.

Referenced by python.Events.fileIndicies().

584  def secondaryFileIndex (self):
585  if self._event:
586  return self._event.secondaryFileIndex()
587  else:
588  # default non-existant value is -1. Return something else
589  return -2
590 
def secondaryFileIndex
Definition: __init__.py:583
def python.Events.size (   self)
Returns number of events

Definition at line 512 of file __init__.py.

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

513  def size (self):
514  """Returns number of events"""
515  if self._veryFirstTime:
516  self._createFWLiteEvent()
517  return self._event.size()
518 
def _createFWLiteEvent
Definition: __init__.py:616
def python.Events.to (   self,
  entryIndex 
)
Jumps to event entryIndex

Definition at line 500 of file __init__.py.

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

501  def to (self, entryIndex):
502  """Jumps to event entryIndex"""
503  if self._veryFirstTime:
504  self._createFWLiteEvent()
505  return self._event.to ( long(entryIndex) )
506 
def _createFWLiteEvent
Definition: __init__.py:616
def python.Events.toBegin (   self)
Called to reset event loop to first event.

Definition at line 507 of file __init__.py.

508  def toBegin (self):
509  """Called to reset event loop to first event."""
510  self._toBegin = True
511 

Member Data Documentation

python.Events._event
private

Definition at line 457 of file __init__.py.

Referenced by python.Events.__del__(), python.Events._createFWLiteEvent(), python.Events.fileIndex(), python.Events.object(), and python.Events.secondaryFileIndex().

python.Events._eventCounts
private

Definition at line 458 of file __init__.py.

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

python.Events._filenames
private

Definition at line 465 of file __init__.py.

Referenced by cfg-viewer.unscheduled._calcFilenames(), and python.Events._createFWLiteEvent().

python.Events._forceEvent
private

Definition at line 460 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

python.Events._maxEvents
private

Parse optional arguments ##.

Definition at line 459 of file __init__.py.

Referenced by python.Events._next().

python.Events._mode
private

Definition at line 461 of file __init__.py.

Referenced by argparse.FileType.__call__(), python.rootplot.argparse.FileType.__call__(), argparse.FileType.__repr__(), python.rootplot.argparse.FileType.__repr__(), and python.Events._createFWLiteEvent().

python.Events._secondaryFilenames
private

Definition at line 462 of file __init__.py.

python.Events._tfile
private

Definition at line 625 of file __init__.py.

python.Events._toBegin
private

Definition at line 509 of file __init__.py.

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

python.Events._veryFirstTime
private

Definition at line 456 of file __init__.py.

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