2 from ROOT
import TChain
7 The Looper passes the Event object to each of its Analyzers,
9 - read some information
10 - add more information
11 - modify existing information.
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.
20 def __init__(self, iEv, input_data, setup, eventWeight=1 ):
27 header =
'{type}: {iEv}'.
format( type=self.__class__.__name__,
30 for var,value
in sorted(vars(self).iteritems()):
34 if hasattr(value,
'__getitem__'):
35 if (len(value)>0
and value[0].__class__ == value.__class__):
37 if isinstance( value, collections.Iterable )
and \
38 not isinstance(value, (str,unicode))
and \
39 not isinstance(value, TChain)
and \
43 varlines.append(
'\t{var:<15}: {value}'.
format(var=var, value=tmp) )
46 return '\n'.
join( all )
static std::string join(char **cmd)