def _createMDF(test_castor=None): print_header('MDF', 'CreateMDF') app = ApplicationMgr() app.EvtSel = 'NONE' app.TopAlg = [Configs.LHCb__RawEventTestCreator('Creator')] mdfCheck() # To create a MDF file using the standard Gaudi output stream: wr = CFG.OutputStream('Writer_0') wr.Output = "DATAFILE='PFN:root:file://mdfData_0.dat' SVC='LHCb::RawDataCnvSvc' OPT='REC'" wr.ItemList = ["/Event#1"] app.OutStream += [wr] addWriter('Writer_1', 'LFN:/user/frank/markus/mdf_1.dat', 0, 0, True) addWriter('Writer_2', 'LFN:/user/frank/markus/mdf_2.dat', 0, 1, True) addWriter('Writer_3', 'PFN:root:mdfData_3.dat', 2, 1, True) addWriter('Writer_4', 'root:mdfData_4.dat', 2, 0, True) addWriter('Writer_5', 'PFN:root:file://' + base + '/mdfData_5.dat') addWriter('Writer_6', 'PFN:root:file://' + base + '/mdfData_6.dat') addWriter('Writer_7', 'PFN:' + base + '/mdfData_7.dat') addWriter('Writer_8', 'root:file://' + base + '/mdfData_8.dat') addWriter('Writer_9', 'root:file:' + base + '/mdfData_9.dat') addWriter('Writer_10', '' + base + '/mdfData_10.dat') if test_castor is not None: addWriter('Writer_11', 'root:rfio:/castor/cern.ch/user/f/frankb/mdfData_11.dat') addWriter('Writer_12', 'root:castor:/castor/cern.ch/user/f/frankb/mdfData_12.dat') addWriter('Writer_13', 'castor:/castor/cern.ch/user/f/frankb/mdfData_13.dat') CFG.MessageSvc().OutputLevel = 3 return app
def serialWriter(name='DstWriter', location='/Event/GaudiSerialize'): svc = CFG.EventPersistencySvc() ser = Configs.Gaudi__SerializeCnvSvc('Gaudi::SerializeCnvSvc') serial = CFG.OutputStream(name) ser.Banks = location svc.CnvServices.append('Gaudi::SerializeCnvSvc/SerializeCnvSvc') serial.Output = "DATAFILE='root.buffers' SVC='Gaudi::SerializeCnvSvc/SerializeCnvSvc' OPT='RECREATE'" return serial
def _readTAEROOT(): app = ApplicationMgr() mdfCheck() CFG.importOptions('$ROOTCNVROOT/options/Setup.opts') CFG.EventSelector().Input = [ "DATA='PFN:taeROOT.dat' SVC='Gaudi::RootEvtSelector'" ] CFG.EventSelector().PrintFreq = 200 return app
def start(): """ Finish configuration and configure Gaudi application manager @author M.Frank """ import OnlineEnv Gaudi.appendPostConfigAction(postConfig) OnlineEnv.end_config(False)
def _readROOT(test_castor=None): print_header('MDF', 'ReadROOT') CFG.importOptions('$ROOTCNVROOT/options/Setup.opts') mdfCheck() sel = CFG.EventSelector() sel.PrintFreq = 200 sel.Input = ["DATA='PFN:mdfROOT.dat' SVC='Gaudi::RootEvtSelector'"] CFG.IODataManager().AgeLimit = 5 return ApplicationMgr()
def _readMIF(test_castor=None): print_header('MDF', 'ReadMIF') mdfCheck() CFG.EventSelector().PrintFreq = 1000 CFG.EventSelector().Input = [ "DATA='file://mifData.dat' SVC='LHCb::MIFSelector'" ] CFG.IODataManager().AgeLimit = 5 return ApplicationMgr()
def setupOnline(directory, prefix, filename): """ Setup the online environment: Buffer managers, event serialisation, etc. @author M.Frank """ class __MonAdd: def __init__(self): pass def addMonitors(self): GaudiSequencer("EscherSequencer").Members += ["HistogramResetter"] from Configurables import LHCb__FILEEvtSelector as es Online = importOnline() app = Gaudi.ApplicationMgr() app.AppName = '' HistogramPersistencySvc().OutputFile = "" app.HistogramPersistency = '' app.SvcOptMapping.append('LHCb::FILEEvtSelector/EventSelector') app.SvcOptMapping.append('LHCb::FmcMessageSvc/MessageSvc') app.ExtSvc.insert(0, "MonitorSvc") sel = es("EventSelector") sel.Input = filename sel.Directory = directory sel.OutputLevel = MSG_INFO sel.DeleteFiles = False sel.FilePrefix = prefix sel.Decode = False sel.Pause = True sel.PauseSleep = 5000 sel.AllowedRuns = Online.DeferredRuns if hasattr(Online, "DeferredRuns") else [] app.EvtSel = sel app.EvtMax = -1 Online.rawPersistencySvc() evtloop = Configs.EventLoopMgr('EventLoopMgr') evtloop.Warnings = False evtloop.EvtSel = sel app.EventLoop = evtloop runable = Configs.LHCb__EventRunable("Runable") runable.MEPManager = "" app.Runable = runable app.AuditAlgorithms = False Configs.MonitorSvc().OutputLevel = MSG_ERROR Configs.MonitorSvc().UniqueServiceNames = 1 Configs.MonitorSvc().CounterUpdateInterval = -1 Configs.MonitorSvc().DimUpdateInterval = -1 Configs.RootHistCnv__PersSvc("RootHistSvc").OutputLevel = MSG_ERROR mon = __MonAdd() Gaudi.appendPostConfigAction(mon.addMonitors) app.OutputLevel = MSG_INFO cdb = CondDB() cdb.Online = True
def _createROOT(test_castor=None): print_header('MDF', 'CreateROOT') app = ApplicationMgr() CFG.importOptions('$ROOTCNVROOT/options/Setup.opts') setData(test_castor) mdfCheck() mini = CFG.OutputStream('ROOTMini') mini.ItemList = ["/Event#1", "/Event/DAQ#1"] mini.Output = "DATAFILE='PFN:mdfROOT.dat' SVC='RootCnvSvc' OPT='RECREATE'" app.OutStream += [mini] return app
def setupApp(): app = ApplicationMgr() app.AppName = '' app.HistogramPersistency = 'NONE' svc = CFG.EventPersistencySvc() svc.CnvServices += [Configs.LHCb__RawDataCnvSvc('RawDataCnvSvc')] CFG.FileCatalog().Catalogs = ['xmlcatalog_file:qmTest.xml'] CFG.IODataManager().OutputLevel = 3 CFG.IODataManager().AgeLimit = 1 svc = CFG.EventDataSvc() svc.RootCLID = 1 svc.ForceLeaves = 1 svc.EnableFaultHandler = True return app
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 mdf2mbmReproApp(partID, partName, buffers, input, partitionBuffers=True, routing=0x1): mepMgr = mepManager(partID, partName, buffers, partitionBuffers=partitionBuffers) runable = evtRunable(mepMgr) evtSel = CFG.EventSelector() evtSel.PrintFreq = 100 evtSel.Input = input evtdata = evtDataSvc() evtPers = rawPersistencySvc() merger = evtMerger(buffer=buffers[0], name='MDF2MBM', location='DAQ/RawEvent', routing=routing, datatype=MDF_BANKS) # If the MDF record should be directly manipulated: Need to tweak FID algs and merger merger.DataType = MDF_BANKS add = fidAdd2Alg(location='/Event', datatype=MDF_BANKS) prt = fidPrintAlg(location='/Event', datatype=MDF_BANKS) # If all starts from the rawEvent: #add = fidAddAlg() #prt = fidPrintAlg() algs = [add, prt, merger] return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=algs)
def hltApp(partID, partName, percent, print_freq, delay=None, buffers=['IN', 'OUT'], decode=False, type=None, event_type=None, partitionBuffers=False): mepMgr = mepManager(partID, partName, buffers, partitionBuffers) mepMgr.HandleSignals = True runable = evtRunable(mepMgr) if event_type is None: evtSel = mbmSelector(input=buffers[0], type=type, decode=decode) else: evtSel = mbmSelector(input=buffers[0], type=type, decode=decode, event_type=event_type) evtdata = evtDataSvc() evtPers = rawPersistencySvc() algs = [storeExplorer(load=1, freq=print_freq)] if delay: delay_alg = Configs.LHCb__DelaySleepAlg('Delay') delay_alg.DelayTime = 0 delay_alg.MicroDelayTime = int(delay) algs.append(delay_alg) seq = CFG.Sequencer('SendSequence') seq.Members = [prescaler(percent=percent), evtMerger(buffer=buffers[1])] algs.append(seq) return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=algs)
def _readTAE(): app = ApplicationMgr() mdfCheck() CFG.importOptions('$ROOTCNVROOT/options/Setup.opts') CFG.EventSelector().Input = [ "DATA='file://taeData.dat' SVC='LHCb::MDFSelector'" ] CFG.EventSelector().PrintFreq = 200 mini = CFG.OutputStream('TAEMini') app.OutStream += [mini] mini.ItemList = [ '/Event#1', '/Event/DAQ#1', '/Event/Prev1/DAQ', '/Event/Prev2', '/Event/Next1/DAQ/RawEvent' ] mini.Output = "DATAFILE='PFN:taeROOT.dat' SVC='RootCnvSvc' OPT='RECREATE'" return app
def mdf2mbmApp(partID, partName, buffers, input, partitionBuffers=True, routing=0x1): mepMgr = mepManager(partID, partName, buffers, partitionBuffers=partitionBuffers) runable = evtRunable(mepMgr) evtSel = CFG.EventSelector() evtSel.PrintFreq = 100 evtSel.Input = input evtdata = evtDataSvc() evtPers = rawPersistencySvc() algs = [ evtMerger(buffer=buffers[0], name='MDF2MBM', location='DAQ/RawEvent', routing=routing) ] return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=algs)
def setData(test_castor=False): sel = CFG.EventSelector() sel.PrintFreq = 200 sel.Input = [ "DATA='LFN:/user/frank/markus/mdf_1.dat' SVC='LHCb::MDFSelector'", "DATA='PFN:root:file://mdfData_0.dat' SVC='LHCb::MDFSelector'", "DATA='root:file:mdfData_2.dat' SVC='LHCb::MDFSelector'", "DATA='PFN:root:mdfData_3.dat' SVC='LHCb::MDFSelector'", "DATA='root:mdfData_4.dat' SVC='LHCb::MDFSelector'", "DATA='PFN:root:file://" + base + "/mdfData_5.dat' SVC='LHCb::MDFSelector'", "DATA='PFN:root:file:" + base + "/mdfData_6.dat' SVC='LHCb::MDFSelector'", "DATA='PFN:root:" + base + "/mdfData_7.dat' SVC='LHCb::MDFSelector'", "DATA='root:file://" + base + "/mdfData_8.dat' SVC='LHCb::MDFSelector'", "DATA='root:file:" + base + "/mdfData_9.dat' SVC='LHCb::MDFSelector'", "DATA='" + base + "/mdfData_10.dat' SVC='LHCb::MDFSelector'" ] if test_castor: sel.Input += [ "DATA='root:rfio:/castor/cern.ch/user/f/frankb/mdfData_11.dat' SVC='LHCb::MDFSelector'", "DATA='root:castor:/castor/cern.ch/user/f/frankb/mdfData_12.dat' SVC='LHCb::MDFSelector'", "DATA='castor:/castor/cern.ch/user/f/frankb/mdfData_13.dat' SVC='LHCb::MDFSelector'" ] return sel
def setupOnline(): """ Setup the online environment: Buffer managers, event serialisation, etc. @author M.Frank """ import OnlineEnv buffs = ['Events'] app = Gaudi.ApplicationMgr() app.AppName = '' app.HistogramPersistency = 'ROOT' app.SvcOptMapping.append('LHCb::OnlineEvtSelector/EventSelector') app.SvcOptMapping.append('LHCb::FmcMessageSvc/MessageSvc') mep = OnlineEnv.mepManager(OnlineEnv.PartitionID, OnlineEnv.PartitionName, buffs, True) mep.ConnectWhen = "start" sel = OnlineEnv.mbmSelector(input=buffs[0], type='USER', decode=False, event_type=2) app.EvtSel = sel app.Runable = OnlineEnv.evtRunable(mep) app.Runable.NumErrorToStop = -1 app.ExtSvc.append(mep) app.ExtSvc.append(sel) app.AuditAlgorithms = False ##app.TopAlg.insert(0,"UpdateAndReset") Configs.MonitorSvc().OutputLevel = MSG_ERROR Configs.MonitorSvc().UniqueServiceNames = 1 Configs.RootHistCnv__PersSvc("RootHistSvc").OutputLevel = MSG_ERROR app.OutputLevel = MSG_INFO
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])
def setupOnline(): """ Setup the online environment: Buffer managers, event serialisation, etc. @author M.Frank """ import OnlineEnv as Online buffs = ['Events','Output'] if processingType == 'Reprocessing': buffs = ['Input','Output'] app=Gaudi.ApplicationMgr() app.AppName = '' app.HistogramPersistency = 'ROOT' app.SvcOptMapping.append('LHCb::OnlineEvtSelector/EventSelector') app.SvcOptMapping.append('LHCb::FmcMessageSvc/MessageSvc') mep = Online.mepManager(Online.PartitionID,Online.PartitionName,buffs,True) sel = Online.mbmSelector(input=buffs[0],type='ONE',decode=False) if requirement: print 'Setting requirements:',requirement sel.REQ1 = requirement app.EvtSel = sel app.Runable = Online.evtRunable(mep) app.Runable.NumErrorToStop = -1; app.ExtSvc.append(mep) app.ExtSvc.append(sel) app.AuditAlgorithms = False app.TopAlg.insert(0,"UpdateAndReset") Configs.MonitorSvc().OutputLevel = MSG_ERROR Configs.MonitorSvc().UniqueServiceNames = 1 Configs.RootHistCnv__PersSvc("RootHistSvc").OutputLevel = MSG_ERROR app.OutputLevel = MSG_WARNING
def printconfig(self, old_format = False, all = False) : msg = 'Dumping all configurables and properties' if not all: msg += ' (different from default)' log.info(msg) conf_dict = Configuration.configurationDict(all) if old_format: print self.generateOptsOutput(all) else: print self.generatePyOutput(all)
def _createTAE(test_castor=None): app = ApplicationMgr() evtgen = Configs.LHCb__RawEventTestCreator('RawEventGen') taegen = Configs.LHCb__TAETestCreator('TAECreator') taegen.TAEEvents = 5 app.TopAlg = [evtgen, taegen] mdfCheck() setData(test_castor) addWriter('Writer_0', 'PFN:file://taeData.dat', 1, 1, True, True) CFG.MessageSvc().OutputLevel = 3 return app
def generateOptsOutput(self, all = False): from pprint import pformat conf_dict = Configuration.configurationDict(all) out = [] names = conf_dict.keys() names.sort() for n in names: props = conf_dict[n].keys() props.sort() for p in props: out.append('%s.%s = %s;' % (n,p, repr(conf_dict[n][p]))) return "\n".join(out)
def mdfCheck(): app = setupApp() dmp = Configs.LHCb__RawEventTestDump('Dump') dmp.CheckData = 1 dmp.CheckData = 0 dmp.DumpData = 0 dmp.FullDump = 0 dmp.OutputLevel = 3 exp = CFG.StoreExplorerAlg('Explorer') exp.Load = 1 exp.PrintFreq = 0.00021 exp.AccessForeign = True exp.OutputLevel = 3 app.TopAlg += [dmp, exp] return app
def patchMessages(): """ Messages in the online get redirected. Setup here the FMC message service @author M.Frank """ import OnlineEnv app = Gaudi.ApplicationMgr() Configs.AuditorSvc().Auditors = [] app.MessageSvcType = 'LHCb::FmcMessageSvc' if Gaudi.allConfigurables.has_key('MessageSvc'): del Gaudi.allConfigurables['MessageSvc'] msg = Configs.LHCb__FmcMessageSvc('MessageSvc') msg.fifoPath = os.environ['LOGFIFO'] msg.LoggerOnly = True msg.doPrintAlways = False msg.OutputLevel = MSG_INFO # OnlineEnv.OutputLevel
def setup(self, buffers=['Events', 'Output']): """ Setup the online environment: Buffer managers, event serialisation, etc. @author M.Frank """ import OnlineEnv as Online self.appMgr = Gaudi.ApplicationMgr() self.appMgr.AppName = '' self.appMgr.HistogramPersistency = 'ROOT' forker = Configs.LHCb__CheckpointSvc("CheckpointSvc") forker.NumberOfInstances = 5 forker.UseCores = False forker.ChildSessions = False forker.DumpFiles = False #forker.Checkpoint = "Checkpoint.data" forker.PrintLevel = 3 # 1=MTCP_DEBUG 2=MTCP_INFO 3=MTCP_WARNING 4=MTCP_ERROR forker.OutputLevel = 2 # 1=VERBOSE 2=DEBUG 3=INFO 4=WARNING 5=ERROR 6=FATAL #forker.ExitAfterCheckpoint = False self.appMgr.ExtSvc.append(forker) self.appMgr.SvcOptMapping.append( 'LHCb::OnlineEvtSelector/EventSelector') ##self.appMgr.SvcOptMapping.append('LHCb::DummyMonitorSvc/MonitorSvc') self.appMgr.SvcOptMapping.append('LHCb::FmcMessageSvc/MessageSvc') mep = Online.mepManager(Online.PartitionID, Online.PartitionName, buffers, True) mep.ConnectWhen = 'start' sel = Online.mbmSelector(input=buffers[0], type='ONE', decode=False) self.appMgr.ExtSvc.append(mep) self.appMgr.ExtSvc.append(sel) self.appMgr.EvtSel = sel self.appMgr.Runable = Online.evtRunable(mep) self.appMgr.Runable.NumErrorToStop = 1 self.appMgr.AuditAlgorithms = False ##mon = Configs.LHCb__DummyMonitorSvc("MonitorSvc") mon = Configs.MonitorSvc("MonitorSvc") mon.OutputLevel = 5 mon.UniqueServiceNames = 1 self.appMgr.OutputLevel = 4
def patchMessages(self): """ Messages in the online get redirected. Setup here the FMC message service @author M.Frank """ if self.true_online_version: app = Gaudi.ApplicationMgr() Configs.AuditorSvc().Auditors = [] self.appMgr.MessageSvcType = 'LHCb::FmcMessageSvc' if Gaudi.allConfigurables.has_key('MessageSvc'): del Gaudi.allConfigurables['MessageSvc'] msg = Configs.LHCb__FmcMessageSvc('MessageSvc') msg.fifoPath = os.environ['LOGFIFO'] msg.LoggerOnly = True msg.OutputLevel = 4 #Configs.ToolsSvc().OutputLevel = 5 return msg
def _createMEP(test_castor=None): app = setupApp() exp = CFG.StoreExplorerAlg('Explorer') exp.Load = 1 exp.PrintFreq = 0.00021 exp.AccessForeign = True exp.OutputLevel = 3 app.TopAlg = [Configs.LHCb__RawEventTestCreator('Creator'), exp] app.EvtSel = 'NONE' wr0 = Configs.LHCb__MEPWriter('Writer_0') wr0.Connection = 'file://mep_data_0.dat' wr0.ChecksumType = 0 wr0.Compress = 2 wr0.PackingFactor = 10 wr1 = Configs.LHCb__MEPWriter('Writer_1') wr1.Connection = 'file://mep_data_1.dat' wr1.ChecksumType = 0 wr1.Compress = 2 wr1.PackingFactor = 10 app.OutStream = [wr0, wr1] return app
def _getConfigurations(cas=defaultCas): name = cas.getFullName() appMgr = _appMgr() appMgr.createSvc(name) s = appMgr.service(name, 'IConfigAccessSvc') info = dict() for i in s.configTreeNodeAliases(alias('TOPLEVEL/')): x = Configuration(i, s) info[i.alias().str()] = x for i in s.configTreeNodeAliases(alias('TCK/')): tck = _tck(i.alias().str().split('/')[-1]) id = i.ref().str() for k in info.values(): if k.info['id'] == id: k.info['TCK'].append(tck) for i in s.configTreeNodeAliases(alias('TAG/')): tag = i.alias().str().split('/')[1:] id = i.ref().str() for k in info.values(): if k.info['id'] == id: k.update({'TAG': tag}) print info return info
def rgetConfigurations( self ) : #print 'remote(%s) at pid=%s: rgetConfigurations()' % (self,getpid()) svc = RemoteAccess._svc info = dict() #print 'reading TOPLEVEL' for i in svc.configTreeNodeAliases( alias( 'TOPLEVEL/') ) : x = Configuration( i,svc ) info[ i.alias().str() ] = x #print 'reading TCK' for i in svc.configTreeNodeAliases( alias( 'TCK/' ) ) : tck = _tck(i.alias().str().split('/')[-1]) id = i.ref().str() for k in info.values() : if k.info['id'] == id : k.info['TCK'].append(tck) #print 'reading TAG' for i in svc.configTreeNodeAliases( alias( 'TAG/' ) ) : tag = i.alias().str().split('/')[1:] id = i.ref().str() for k in info.values() : if k.info['id'] == id : k.update( { 'TAG' : tag } ) return info
def defaultFilterApp(partID, partName, percent, print_freq): mepMgr = mepManager(partID, partName, ['Events', 'Send']) mepMgr.HandleSignals = True runable = evtRunable(mepMgr) evtSel = mbmSelector('Events') evtdata = evtDataSvc() evtPers = rawPersistencySvc() seq = CFG.Sequencer('SendSequence') seq.Members = [ prescaler(percent=percent), Configs.LHCb__DecisionSetterAlg('DecisionSetter') ] ###seq.Members = [prescaler(percent=percent)] algs = [storeExplorer(load=1, freq=print_freq), seq] #delay = Configs.LHCb__DelaySleepAlg('Delay') #delay.DelayTime = 999999; #algs.append(delay) return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=algs)
def configureOutput(self, dstType, withMC, handleLumi): global configureBrunelOutput print '[ERROR] Configure Brunel output ....' sys.stdout.flush() if configureBrunelOutput: import OnlineEnv print '[ERROR] Configure Brunel output sequence ....' sys.stdout.flush() Configs.DstConf._doWriteROOT = dstconf_write_root configureBrunelOutput(self, dstType, withMC, handleLumi) ser = Gaudi__SerializeCnvSvc('Gaudi::SerializeCnvSvc') ser.Banks = '/Event/GaudiSerialize' ser.OutputLevel = 1 EventPersistencySvc().CnvServices.append(ser) writer = OnlineEnv.evtMerger(buffer='Output', name='BankWriter', location='/Event/GaudiSerialize', routing=0x100) writer.OutputLevel = 1 seq = GaudiSequencer('Output') seq.Members += [OutputStream('DstWriter'), writer] Gaudi.ApplicationMgr().OutStream = [seq]
def dimFileReaderApp(partID, partName, buffer, partitionBuffers=True, routing=0x1): mepMgr = mepManager(partID, partName, [buffer], partitionBuffers=partitionBuffers) runable = dimFileReaderRunable() evtSel = CFG.EventSelector() evtSel.PrintFreq = 1000 evtdata = evtDataSvc() evtPers = rawPersistencySvc() algs = [ evtMerger(buffer=buffer, name='Writer', location='DAQ/RawEvent', routing=routing) ] return _application('NONE', extsvc=[monSvc(), mepMgr, evtSel], runable=runable, algs=algs)
def setupOnline(): """ Setup the online environment: Buffer managers, event serialisation, etc. @author M.Frank """ import OnlineEnv buffs = ['Events', 'Output'] app = Gaudi.ApplicationMgr() app.AppName = '' app.HistogramPersistency = 'ROOT' app.SvcOptMapping.append('LHCb::OnlineEvtSelector/EventSelector') app.SvcOptMapping.append('LHCb::FmcMessageSvc/MessageSvc') mep = OnlineEnv.mepManager(OnlineEnv.PartitionID, OnlineEnv.PartitionName, buffs, True) mep.ConnectWhen = "start" sel = OnlineEnv.mbmSelector(input=buffs[0], type='ONE', decode=False, event_type=2) if requirement: print '++++ Warning: Setting requirements:', requirement sel.REQ1 = requirement app.EvtSel = sel app.Runable = OnlineEnv.evtRunable(mep) app.Runable.NumErrorToStop = -1 app.ExtSvc.append(mep) app.ExtSvc.append(sel) app.AuditAlgorithms = False app.TopAlg.insert(0, "UpdateAndReset") Configs.MonitorSvc().OutputLevel = MSG_ERROR Configs.MonitorSvc().UniqueServiceNames = 1 Configs.RootHistCnv__PersSvc("RootHistSvc").OutputLevel = MSG_ERROR app.OutputLevel = MSG_INFO if OnlineEnv.RecoStartupMode > 0: ### os.environ.has_key('NBOFSLAVES'): configureForking(app)
PrSeedingXLayers().XOnly = x_only input_files = glob.glob("/tmp/thead/stereo-%i/*.digi"%(stereo)) IOHelper("ROOT").inputFiles(input_files) def setup_mc_truth_matching(): GaudiSequencer("CaloBanksHandler").Members = [] GaudiSequencer("DecodeTriggerSeq").Members = [] GaudiSequencer("MCLinksTrSeq").Members = ["VPClusterLinker", "PrLHCbID2MCParticle", "PrTrackAssociator"] GaudiSequencer("CheckPatSeq" ).Members = ["PrChecker"] from Configurables import PrLHCbID2MCParticle #PrLHCbID2MCParticle().OutputLevel = 2 PrTrackAssociator().RootOfContainers = "/Event/Rec/Track" PrChecker().TriggerNumbers = True PrChecker().Eta25Cut = True PrChecker().WriteVeloHistos = 2 PrChecker().WriteForwardHistos = 2 PrChecker().WriteMatchHistos = 2 PrChecker().WriteDownHistos = 2 PrChecker().WriteUpHistos = 2 PrChecker().WriteTTrackHistos = 2 PrChecker().WriteBestHistos = 2 PrChecker().WriteBestLongHistos = 2 PrChecker().WriteBestDownstreamHistos = 2 GC.appendPostConfigAction(setup_mc_truth_matching)
def generatePyOutput(self, all = False): from pprint import pformat conf_dict = Configuration.configurationDict(all) return pformat(conf_dict)