diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index a3a8c8c9dff7eb236c0e283c69b39c92257c9b49..46b359966db003657ef23058e9134dfa611889cc 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -106,6 +106,39 @@ def TrigBSReadCfg(inputFlags): return acc + +def ByteStreamWriteCfg( flags, typeNames=[] ): + acc = ComponentAccumulator() + outputSvc = CompFactory.ByteStreamEventStorageOutputSvc() + outputSvc.MaxFileMB = 15000 + # event (beyond which it creates a new file) + outputSvc.MaxFileNE = 15000000 + outputSvc.OutputDirectory = "./" + outputSvc.AppName = "Athena" + # release variable depends the way the env is configured + #FileTag = release + allRuns = set(flags.Input.RunNumber) + assert len(allRuns) == 1, "The input is from multiple runs, do not know which one to use {}".format(allRuns) + outputSvc.RunNumber = allRuns.pop() + + bsCnvSvc = CompFactory.ByteStreamCnvSvc("OutBSCnvSvc") + # TODO for technical reasons a separate instance of the ByteStreamCnvSvc have to be created, once all the config (i.e. trigger) is moved to CA based the name needs to be left default + # to test such change the test_trig_data_v1Dev_writeBS_build.py can be used + + bsCnvSvc.ByteStreamOutputSvcList = [ outputSvc.getName() ] + streamAlg = CompFactory.AthenaOutputStream( "BSOutputStreamAlg", + EvtConversionSvc = bsCnvSvc.getName(), + ItemList = typeNames ) + + acc.addService( outputSvc ) + acc.addService( bsCnvSvc ) + acc.addSequence( CompFactory.AthSequencer("AthOutSeq") ) + acc.addEventAlgo( streamAlg, sequenceName="AthOutSeq", primary = True ) + + return acc + + + if __name__ == "__main__": from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaConfiguration.TestDefaults import defaultTestFiles diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index c0c5a366b4df6dfc4d8ab133af1fe4ed5bc95489..1049d7d456198322e1573727284e70d3d02daa79 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -357,19 +357,18 @@ def triggerBSOutputCfg(flags, decObj, decObjHypoOut, summaryAlg, offline=False): # TODO: Decide if stream tags are needed and, if yes, find a way to save updated ones in offline BS saving # Transfer trigger bits to xTrigDecision which is read by offline BS writing ByteStreamCnvSvc - from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMakerMT - decmaker = TrigDecisionMakerMT('TrigDecMakerMT') + #from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMakerMT + #decmaker = TrigDecisionMakerMT('TrigDecMakerMT') + decmaker = CompFactory.getComp( "TrigDec::TrigDecisionMakerMT" )("TrigDecMakerMT") acc.addEventAlgo( decmaker ) # Create OutputStream alg - from ByteStreamCnvSvc import WriteByteStream - StreamBSFileOutput = WriteByteStream.getStream("EventStorage", "StreamBSFileOutput") - StreamBSFileOutput.ItemList += [ "HLT::HLTResultMT#HLTResultMT" ] - StreamBSFileOutput.ExtraInputs = [ + from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamWriteCfg + writingAcc = ByteStreamWriteCfg(flags, [ "HLT::HLTResultMT#HLTResultMT" ] ) + writingAcc.getPrimary().ExtraInputs = [ ("HLT::HLTResultMT", "HLTResultMT"), ("xAOD::TrigDecision", "xTrigDecision")] - acc.addEventAlgo( StreamBSFileOutput ) - + acc.merge( writingAcc ) else: acc.setPrivateTools( [bitsmaker, stmaker, serialiser] ) return acc diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index c1200bd2a66c0d2a8a434ba42b9606605e50803c..99ac7eb206cb09e2227c368c16fd0ad6e28b7dbb 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -554,6 +554,7 @@ if opt.doWriteBS: ConfigFlags.Output.doWriteBS = True # new JO flag ConfigFlags.Trigger.writeBS = True # new JO flag +ConfigFlags.Input.Files = athenaCommonFlags.FilesInput() # ID Cache Creators ConfigFlags.lock() CAtoGlobalWrapper(triggerIDCCacheCreatorsCfg,ConfigFlags)