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

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

Definition at line 595 of file __init__.py.

References python.Events._event.

596  def __del__ (self):
597  """(Internal) Destructor"""
598  # print "Goodbye cruel world, I'm leaving you today."
599  del self._event
600  # print "Goodbye, goodbye, goodbye."
601 

Member Function Documentation

def python.Events.__iter__ (   self)

Definition at line 557 of file __init__.py.

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

558  def __iter__ (self):
559  return self._next()
560 
def python.Events._createFWLiteEvent (   self)
private
(Internal) Creates an FWLite Event

Definition at line 602 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().

603  def _createFWLiteEvent (self):
604  """(Internal) Creates an FWLite Event"""
605  self._veryFirstTime = False
606  self._toBegin = True
607  if isinstance (self._filenames[0], ROOT.TFile):
608  self._event = ROOT.fwlite.Event (self._filenames[0])
609  self._mode = 'single'
610  return self._mode
611  if len (self._filenames) == 1 and self._forceEvent:
612  self._tfile = ROOT.TFile.Open (self._filenames[0])
613  self._event = ROOT.fwlite.Event (self._tfile)
614  self._mode = 'single'
615  return self._mode
616  filenamesSVec = ROOT.vector("string") ()
617  for name in self._filenames:
618  filenamesSVec.push_back (name)
619  if self._secondaryFilenames:
620  secondarySVec = ROOT.vector("string") ()
621  for name in self._secondaryFilenames:
622  secondarySVec.push_back (name)
623  self._event = ROOT.fwlite.MultiChainEvent (filenamesSVec,
624  secondarySVec)
625  self._mode = 'multi'
626  else:
627  self._event = ROOT.fwlite.ChainEvent (filenamesSVec)
628  self._mode = 'chain'
629  return self._mode
630 
def _createFWLiteEvent
Definition: __init__.py:602
def python.Events._next (   self)
private
(Internal) Iterator internals

Definition at line 631 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__().

632  def _next (self):
633  """(Internal) Iterator internals"""
634  if self._veryFirstTime:
635  self._createFWLiteEvent()
636  if self._toBegin:
637  self._toBeginCode()
638  while not self._event.atEnd() :
639  yield self
640  self._eventCounts += 1
641  if self._maxEvents > 0 and self._eventCounts >= self._maxEvents:
642  break
643  # Have we been asked to go to the first event?
644  if self._toBegin:
645  self._toBeginCode()
646  else:
647  # if not, lets go to the next event
648  self._event.__preinc__()
649 
650 
def _createFWLiteEvent
Definition: __init__.py:602
def _toBeginCode
Definition: __init__.py:588
_maxEvents
Parse optional arguments ##.
Definition: __init__.py:447
def python.Events._parseOptions (   self,
  options 
)
private

Private Member Functions ##.

(Internal) Parse options

Definition at line 584 of file __init__.py.

585  def _parseOptions (self, options):
586  """(Internal) Parse options"""
587 
def _parseOptions
Private Member Functions ##.
Definition: __init__.py:584
def python.Events._toBeginCode (   self)
private
(Internal) Does actual work of toBegin() call

Definition at line 588 of file __init__.py.

Referenced by python.Events._next().

589  def _toBeginCode (self):
590  """(Internal) Does actual work of toBegin() call"""
591  self._toBegin = False
592  self._event.toBegin()
593  self._eventCounts = 0
594 
def _toBeginCode
Definition: __init__.py:588
def python.Events.eventAuxiliary (   self)
Returns eventAuxiliary object

Definition at line 507 of file __init__.py.

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

508  def eventAuxiliary (self):
509  """Returns eventAuxiliary object"""
510  if self._veryFirstTime:
511  raise RuntimeError, "eventAuxiliary() called before "\
512  "toBegin() or to()"
513  return self._event.eventAuxiliary()
514 
def eventAuxiliary
Definition: __init__.py:507
def python.Events.fileIndex (   self)

Definition at line 561 of file __init__.py.

References python.Events._event.

Referenced by python.Events.fileIndicies().

562  def fileIndex (self):
563  if self._event:
564  return self._event.fileIndex()
565  else:
566  # default non-existant value is -1. Return something else
567  return -2
568 
def python.Events.fileIndicies (   self)

Definition at line 577 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().

578  def fileIndicies (self):
579  return (self.fileIndex(), self.secondaryFileIndex())
580 
def fileIndicies
Definition: __init__.py:577
def secondaryFileIndex
Definition: __init__.py:569
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 520 of file __init__.py.

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

521  def getByLabel (self, *args):
522  """Calls FWLite's getByLabel. Called:
523  getByLabel (moduleLabel, handle)
524  getByLabel (moduleLabel, productInstanceLabel, handle),
525  getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
526  or
527  getByLabel ( (mL, pIL,pL), handle)
528  """
529  if self._veryFirstTime:
530  self._createFWLiteEvent()
531  length = len (args)
532  if length < 2 or length > 4:
533  # not called correctly
534  raise RuntimeError, "Incorrect number of arguments"
535  # handle is always the last argument
536  argsList = list (args)
537  handle = argsList.pop()
538  if len(argsList)==1 and \
539  ( isinstance (argsList[0], tuple) or
540  isinstance (argsList[0], list) ) :
541  if len (argsList) > 3:
542  raise RuntimeError, "getByLabel Error: label tuple has too " \
543  "many arguments '%s'" % argsList[0]
544  argsList = list(argsList[0])
545  while len(argsList) < 3:
546  argsList.append ('')
547  (moduleLabel, productInstanceLabel, processLabel) = argsList
548  labelString = "'" + "', '".join(argsList) + "'"
549  handle._setStatus ( self._event.getByLabel( handle._typeInfoGetter(),
550  moduleLabel,
551  productInstanceLabel,
552  processLabel,
553  handle._addressOf() ),
554  labelString )
555  return handle.isValid()
556 
def _createFWLiteEvent
Definition: __init__.py:602
def getByLabel
Definition: __init__.py:520
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 515 of file __init__.py.

References python.Events._event.

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

516  def object (self):
517  """Returns event object"""
518  return self._event
519 
def python.Events.secondaryFileIndex (   self)

Definition at line 569 of file __init__.py.

References python.Events._event.

Referenced by python.Events.fileIndicies().

570  def secondaryFileIndex (self):
571  if self._event:
572  return self._event.secondaryFileIndex()
573  else:
574  # default non-existant value is -1. Return something else
575  return -2
576 
def secondaryFileIndex
Definition: __init__.py:569
def python.Events.size (   self)
Returns number of events

Definition at line 500 of file __init__.py.

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

501  def size (self):
502  """Returns number of events"""
503  if self._veryFirstTime:
504  self._createFWLiteEvent()
505  return self._event.size()
506 
def _createFWLiteEvent
Definition: __init__.py:602
def python.Events.to (   self,
  entryIndex 
)
Jumps to event entryIndex

Definition at line 488 of file __init__.py.

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

489  def to (self, entryIndex):
490  """Jumps to event entryIndex"""
491  if self._veryFirstTime:
492  self._createFWLiteEvent()
493  return self._event.to ( long(entryIndex) )
494 
def _createFWLiteEvent
Definition: __init__.py:602
def python.Events.toBegin (   self)
Called to reset event loop to first event.

Definition at line 495 of file __init__.py.

496  def toBegin (self):
497  """Called to reset event loop to first event."""
498  self._toBegin = True
499 

Member Data Documentation

python.Events._event
private

Definition at line 445 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 446 of file __init__.py.

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

python.Events._filenames
private

Definition at line 453 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

python.Events._forceEvent
private

Definition at line 448 of file __init__.py.

Referenced by python.Events._createFWLiteEvent().

python.Events._maxEvents
private

Parse optional arguments ##.

Definition at line 447 of file __init__.py.

Referenced by python.Events._next().

python.Events._mode
private

Definition at line 449 of file __init__.py.

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

python.Events._secondaryFilenames
private

Definition at line 450 of file __init__.py.

python.Events._tfile
private

Definition at line 611 of file __init__.py.

python.Events._toBegin
private

Definition at line 497 of file __init__.py.

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

python.Events._veryFirstTime
private

Definition at line 444 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().