import logging
[docs]class BaseData(object):
tree_name=''
logger = logging.getLogger('root2hdf5.data_types.base')
def __init__(self, _file):
from ROOT import TChain
self.event_index=0
self.chain = TChain(self.tree_name)
self.chain.AddFile(_file)
[docs] def convert(self):
import progressbar
self.logger.info("Starting Conversion of: {}".format(self.tree_name))
bar = progressbar.ProgressBar(maxval=self.chain.GetEntries(),
widgets=[progressbar.Bar('=', ' [', ']'), ' ',
progressbar.Percentage()])
bar.start()
for i in self:
bar.update(i)
bar.finish()
self.logger.info("Done.")
def __iter__(self):
return self
def __next__(self):
return self.next()
[docs] def next(self):
if self.event_index == self.chain.GetEntries():
raise StopIteration()
self.chain.GetEntry(self.event_index)
branch = getattr(self.chain, self.tree_name.replace('tree','branch'))
self.process_branch(branch)
self.event_index+=1
return self.event_index