CMS 3D CMS Logo

event.py
Go to the documentation of this file.
1 import collections
2 from ROOT import TChain
3 import six
4 
5 class Event(object):
6  '''Event class.
7 
8  The Looper passes the Event object to each of its Analyzers,
9  which in turn can:
10  - read some information
11  - add more information
12  - modify existing information.
13 
14  Attributes:
15  iEv = event processing index, starting at 0
16  eventWeight = a weight, set to 1 at the beginning of the processing
17  input = input, as determined by the looper
18  #TODO: provide a clear interface for access control (put, get, del products) - we should keep track of the name and id of the analyzer.
19  '''
20 
21  def __init__(self, iEv, input_data=None, setup=None, eventWeight=1 ):
22  self.iEv = iEv
23  self.input = input_data
24  self.setup = setup
25  self.eventWeight = eventWeight
26 
27  def __str__(self):
28  header = '{type}: {iEv}'.format( type=self.__class__.__name__,
29  iEv = self.iEv)
30  varlines = []
31  for var,value in sorted(vars(six.iteritems(self))):
32  tmp = value
33  # check for recursivity
34  recursive = False
35  if hasattr(value, '__getitem__') and \
36  not isinstance(value, collections.Mapping) and \
37  (len(value)>0 and value[0].__class__ == value.__class__):
38  recursive = True
39  if hasattr(value, '__contains__') and \
40  not isinstance(value, (str,unicode)) and \
41  not isinstance(value, TChain) and \
42  not recursive :
43  tmp = map(str, value)
44 
45  varlines.append( '\t{var:<15}: {value}'.format(var=var, value=tmp) )
46  all = [ header ]
47  all.extend(varlines)
48  return '\n'.join( all )
def __init__(self, iEv, input_data=None, setup=None, eventWeight=1)
Definition: event.py:21
def __str__(self)
Definition: event.py:27
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
eventWeight
Definition: event.py:25