__author__ = 'ja' from Gaudi.Configuration import * from Configurables import ExceptionSvc from Configurables import Kepler from Configurables import TbUT__RawDataReaderAlgorithm as rawDataReader from Configurables import TbUT__RawDataMonitorAlgorithm as rawDataReaderMoniotor from Configurables import TbUT__PedestalSubtractorAlgorithm as pedestalSubtractor from Timer import timer class TbUTPedestalRunner: def __init__(self): pass @property def inputData(self): return self.inputData @inputData.setter def inputData(self,value): self.inputData=value @property def pedestalOutputData(self): return self.pedestalOutputData @pedestalOutputData.setter def pedestalOutputData(self,value): expectedDirectory ="$KEPLERROOT/../TbUT/options/UT/" if not value.startswith(expectedDirectory): raise AttributeError("The pedestal file have to be stored in directory: "+expectedDirectory) self.pedestalOutputData=value @property def eventMax(self): return self.eventNumber @eventMax.setter def eventMax(self,value): self.eventMax=value @property def isAType(self): return self._isAType @isAType.setter def isAType(self,value): self._isAType=value @timer def runPedestals(self): self._preparePedestalRun() config= self._runGaudi appendPostConfigAction(config) def _preparePedestalRun(self): # dummy aligment just to run Kepler Kepler().PixelConfigFile = ["eos/lhcb/testbeam/velo/timepix3/July2014/RootFiles/Run1236/Conditions/PixelConfig.dat"] Kepler().AlignmentFile = "eos/lhcb/testbeam/velo/timepix3/Oct2014/RootFiles/Run2176/Conditions/Alignment2176mille.dat" Kepler().InputFiles = ['eos/lhcb/testbeam/velo/timepix3/Oct2014/RawData/Run2176/'] Kepler().EvtMax = self.eventMax Kepler().HistogramFile="MambaPedestal.root" # should be set more correctly def _runGaudi(self): keplerSeq = GaudiSequencer("KeplerSequencer") seq_moni = GaudiSequencer("Monitoring") seq_moni.Members = [] seq_out = GaudiSequencer('Output') seq_moni.Members = [] seq_tel = GaudiSequencer("Telescope") seq_tel.Members = [] seq_UT_data_processing=GaudiSequencer("UTPedestal") rawDataReader().isAType=self.isAType rawDataReader().inputData= self.inputData pedestalSubtractor().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/MambaMasks.dat" pedestalSubtractor().PedestalOutputFile=self.pedestalOutputData pedestalSubtractor().treningEntry=15000 seq_UT_data_processing.Members =[rawDataReader(), rawDataReaderMoniotor() ,pedestalSubtractor()] keplerSeq.Members+=[seq_UT_data_processing]