__author__ = 'ja' from Gaudi.Configuration import * from Configurables import Kepler from Configurables import TbUT__RawDataReaderAlgorithm as rawDataReader from Configurables import TbUT__RawDataMonitorAlgorithm as rawDataMonitor from Configurables import TbUT__PedestalSubtractorAlgorithm as pedestalSubtractor from Configurables import TbUT__PedestalSubtractorDataMonitorAlgorithm as pedestalMonitor from Configurables import TbUT__CommonModeSubtractorAlgorithm as CMS from Configurables import TbUT__CommonModeSubtractorDataMonitorAlgorithm as CMSMonitor from Configurables import TbUT__ClusterCreatorAlgorithm as ClusterCreator from Configurables import TbUT__ClusterCreatorDataMonitorAlgorithm as ClusterCreatorMonitor from Configurables import TbUT__NTupleCreator as nTupleCreator from Timer import timer class TbUTClusterizator: def __init__(self): self.isAType=True @property def eventNumberDisplay(self): return self.eventNumberDisplay @eventNumberDisplay.setter def eventNumberDisplay(self,value): self.eventNumberDisplay=value @property def pedestalInputData(self): return self.pedestalInputData @pedestalInputData.setter def pedestalInputData(self,value): self.pedestalInputData=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 @property def sensorType(self): return self.sensorType @sensorType.setter def sensorType(self, value): self.sensorType=value @property def inputData(self): return self.inputData @inputData.setter def inputData(self,value): self.inputData=value @timer def runClusterization(self): self._prepareStandaloneClusterization() config=self._runClusterization appendPostConfigAction(config) def _prepareStandaloneClusterization(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 outputName=self.inputData[:-4]+".root" outputName=outputName[outputName.rfind("/")+1:] Kepler().HistogramFile=outputName outputTupleName=self.inputData[:-4]+"_Tuple.root" outputTupleName=outputTupleName[outputTupleName.rfind("/")+1:] Kepler().TupleFile=outputTupleName def _runClusterization(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("UT") rawDataReader().inputData=self.inputData rawDataReader().isAType=self.isAType rawDataMonitor().displayEventNumber=self.eventNumberDisplay pedestalSubtractor().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/Masks_DTypeSensor.dat" pedestalSubtractor().PedestalInputFile=self.pedestalInputData pedestalSubtractor().FollowingOption='file' pedestalSubtractor().treningEntry=1 pedestalMonitor().displayEventNumber=self.eventNumberDisplay CMS().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/Masks_DTypeSensor.dat" CMS().NoiseOutputFile="$KEPLERROOT/../TbUT/options/UT/noise_Mamba.dat" CMSMonitor().displayEventNumber=self.eventNumberDisplay ClusterCreator().NoiseInputFile="$KEPLERROOT/../TbUT/options/UT/noise_Mamba.dat" ClusterCreator().LowThreshold=2.5 ClusterCreator().HighThreshold=3 ClusterCreator().sensorType=self.sensorType ClusterCreatorMonitor().displayEventNumber=self.eventNumberDisplay ClusterCreatorMonitor().sensorType=self.sensorType nTupleCreator().StoreEventNumber=900000 nTupleCreator().WriteRaw=False nTupleCreator().WriteHeader=True nTupleCreator().WritePedestal=False nTupleCreator().WriteCMS=False seq_UT_data_processing.Members = [rawDataReader(), rawDataMonitor() ,pedestalSubtractor(),pedestalMonitor(), CMS(), CMSMonitor(), ClusterCreator(),ClusterCreatorMonitor(),nTupleCreator()] keplerSeq.Members+=[seq_UT_data_processing]