CMS 3D CMS Logo

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