示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
def start():
    """
        Finish configuration and configure Gaudi application manager

        @author M.Frank
  """
    import OnlineEnv
    Gaudi.appendPostConfigAction(postConfig)
    OnlineEnv.end_config(False)
示例#5
0
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()
示例#6
0
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()
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
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()
示例#11
0
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)
示例#12
0
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)
示例#13
0
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
示例#14
0
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)
示例#15
0
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
示例#16
0
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
示例#17
0
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])
示例#18
0
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
示例#19
0
文件: Main.py 项目: atlas-org/gaudi
 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)
示例#20
0
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
示例#21
0
文件: Main.py 项目: atlas-org/gaudi
 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)
示例#22
0
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
示例#23
0
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
示例#24
0
    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
示例#25
0
    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
示例#26
0
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
示例#27
0
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
示例#28
0
 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
示例#29
0
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)
示例#30
0
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]
示例#31
0
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)
示例#32
0
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)
示例#33
0
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)
示例#34
0
文件: Main.py 项目: atlas-org/gaudi
 def generatePyOutput(self, all = False):
     from pprint import pformat
     conf_dict = Configuration.configurationDict(all)
     return pformat(conf_dict)