def packDST(self, items): """ Write an RDST in MDF format """ import OnlineEnv import Configurables seq = Gaudi.GaudiSequencer("WriteMDFSeq") # Put store explorer in front. #exp = OnlineEnv.storeExplorer(load=1,freq=0.000001) #exp.OutputLevel = 1 #seq.Members += [ exp ] # Configure DST packer algorithm packer = Configurables.WritePackedDst('MdfPacker') packer.Containers += items # Now configure the FID updater of DSTAddress dstUpdate = OnlineEnv.dstAddressUpdate(name='DstUpdate') # Now configure bank merger mergeDst = OnlineEnv.evtMerger(buffer='Output', name='DstMerger', location='/Event/DAQ/DstEvent', routing=0x100) mergeDst.FIDLocation = '/Event' mergeDst.AddFID = 1 mergeDst.Compress = 0 # May use compress=2 as well seq.Members += [packer, dstUpdate, mergeDst] ##print 'Warning: Packing of TES DST data .... commissioned....' sys.stdout.flush()
def deferApp(partID, partName, buffers=None, type=None, event_type=None): mepMgr = mepManager(partID, partName, buffers) mepMgr.HandleSignals = True runable = evtRunable(mepMgr) if event_type is None: evtSel = mbmSelector(input=buffers[0], type=type, decode=False) else: evtSel = mbmSelector(input=buffers[0], type=type, decode=False, event_type=event_type) evtdata = evtDataSvc() evtPers = rawPersistencySvc() seq = CFG.GaudiSequencer('SendSequence') a1 = evtMerger(name="Hlt2Supply", buffer=buffers[1], datatype=MDF_BANKS, silent=True) a1.DataType = MDF_BANKS a2 = evtMerger(name="DeferSupply", buffer=buffers[2], datatype=MDF_BANKS) a2.DataType = MDF_BANKS seq.Members = [a1, a2] seq.ModeOR = True return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=[seq])