Source code for GaugiKernel.ComponentAccumulator

__all__ = ["ComponentAccumulator"]

from GaugiKernel import Logger
from GaugiKernel.macros import MSG_WARNING
from typing import List
import numpy as np
import os

#
# Componenent 
#
[docs] class ComponentAccumulator( Logger ): def __init__(self, name : str, output : str, ): Logger.__init__(self) import ROOT ROOT.gSystem.Load('liblorenzetti') from ROOT import RunManager from ROOT import Gaugi as GK self.__acc = GK.ComponentAccumulator( name ) from ROOT import SG self.__ctx = SG.EventContext("EventContext") self.__store = SG.StoreGate(output) self.__ctx.setStoreGateSvc(self.__store)
[docs] def SetReader(self, reader): self.__reader = reader self.__acc.push_back(reader.core())
def __add__( self, algs ): if type(algs) is not list: algs = [algs] for alg in algs: self.__acc.push_back(alg.core()) return self
[docs] def GetEntries(self): return self.__reader.GetEntries()
[docs] def configure(self): self.__acc.initialize() self.__acc.bookHistograms(self.__ctx)
[docs] def run( self , events : List[int] ): self.configure() for evt in events: self.__acc.run(self.__ctx, evt) self.__acc.finalize() self.__ctx.getStoreGateSvc().save()