Skip to content
Snippets Groups Projects
Commit ae17aacd authored by Melissa Yexley's avatar Melissa Yexley
Browse files

passing streamToFileTool to AlgoJive

parent f00f6a5f
Branches
No related tags found
No related merge requests found
......@@ -182,8 +182,8 @@ if not testWithoutPartition:
def StreamToFileToolCfg(flags, name='StreamToFileTool',**kwargs):
result = ComponentAccumulator()
prefixFileName = "%s/.Unknown/JiveXMLtest" % outputDirectory
kwargs.setdefault("FileNamePrefix", prefixFileName)
#prefixFileName = "%s/.Unknown/JiveXMLtest" % outputDirectory
#kwargs.setdefault("FileNamePrefix", prefixFileName)
kwargs.setdefault("MyTest", "EDOcofig")
the_tool = CompFactory.JiveXML.StreamToFileTool(**kwargs)
result.setPrivateTools(the_tool)
......@@ -201,9 +201,20 @@ if not isOfflineTest:
result.addPublicTool(the_tool)
return result
acc.merge(StreamToServerToolCfg(flags))
print('type in ED: ', type(streamToFileTool))
print('StreamToFileTool in ED',getattr(streamToFileTool,'MyTest'))
from JiveXML.JiveXMLConfig import AlgoJiveXMLCfg
acc.merge(AlgoJiveXMLCfg(flags))
acc.merge(AlgoJiveXMLCfg(flags,StreamToFileTool=streamToFileTool))
# This creates an ESD file per event which is renamed and moved to the desired output
# dir in the VP1 Event Prod alg
from AthenaServices.OutputStreamSequencerSvcConfig import OutputStreamSequencerSvcCfg
acc.merge(OutputStreamSequencerSvcCfg(flags,incidentName="EndEvent"))
StreamESD = acc.getEventAlgo("OutputStreamESD")
print('StreamESD',type(StreamESD))
vp1Alg = CompFactory.VP1EventProd(name="VP1EventProd", InputPoolFile = StreamESD.OutputFile)
acc.addEventAlgo(vp1Alg)
from EventDisplaysOnline.OnlineEventDisplaysSvc import OnlineEventDisplaysSvc
svc = OnlineEventDisplaysSvc(
......@@ -214,6 +225,7 @@ svc = OnlineEventDisplaysSvc(
ProjectTags = projectTags, # Project tags that are allowed to be made public
Public = publicStreams, # These streams go into public stream when Ready4Physics
StreamToFileTool = streamToFileTool,
VP1EventProducer = vp1Alg,
)
acc.addService(svc, create=True)
......
......@@ -27,9 +27,9 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ):
self.zpgid = None
self.partition = None
self.StreamToFileTool = None #kw.get('StreamToFileTool')
self.StreamToFileTool = kw.get('StreamToFileTool')
self.StreamToServerTool = None
self.VP1EventProducer = None
self.VP1EventProducer = None#kw.get('VP1EventProducer')
self.run = 0
self.event = 0
......@@ -57,17 +57,18 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ):
return StatusCode.Success
def getJobOptions(self):
self.StreamToFileTool = PyAthena.py_tool('JiveXML::StreamToFileTool', iface='IProperty')
self.StreamToFileTool = PyAthena.py_tool(self.StreamToFileTool.getFullName(), iface='IProperty')#createIf=False
self.StreamToServerTool = PyAthena.py_tool('JiveXML::StreamToServerTool', iface='IProperty')
help(self.StreamToFileTool)
# Some casting magic is needed to access algorithm properties
from GaudiPython.Bindings import gbl, InterfaceCast
vp1alg = PyAthena.py_alg('VP1EventProd')
self.VP1EventProducer = InterfaceCast(gbl.IProperty).cast(vp1alg)
self.msg.info("StreamToFileTool: %s", self.StreamToFileTool)
self.msg.info("StreamToServerTool: %s", self.StreamToServerTool)
self.msg.info("VP1EventProducer: %s", self.VP1EventProducer)
def beginEvent(self):
if not (self.StreamToFileTool and self.StreamToServerTool and self.VP1EventProducer):
self.getJobOptions()
......@@ -172,11 +173,12 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ):
# Set output stream for JiveXML event streaming (file and server)
print('stream name and file name prefix:',"%s" % self.stream, "%s/JiveXML" % self.directory)
self.StreamToServerTool.getProperty('StreamName').setValue("%s" % self.stream)
print('before changing my test in online svc:',self.StreamToFileTool.getProperty("MyTest").value())
self.StreamToFileTool.getProperty('FileNamePrefix').setValue("%s/JiveXML" % self.directory)
self.StreamToFileTool.getProperty("MyTest").setValue("updatedinOsvc")
print(self.StreamToFileTool.getProperty("MyTest").value())
self.msg.debug("Directory in try: %s", self.directory)
except Exception as err:
self.msg.error("Exception occured while setting job options: %s", err)
......@@ -190,6 +192,9 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ):
# So we set the directory of the current event in endEvent to pass it to the next event.
if self.VP1EventProducer:
self.VP1EventProducer.getProperty('DestinationDirectory').setValue(self.directory)
#print(getattr(self.VP1EventProducer,'DestinationDirectory'))
#setattr(self.VP1EventProducer, 'DestinationDirectory', self.directory)
#print(getattr(self.VP1EventProducer,'DestinationDirectory'))
# Prune events and make index file for atlas-live.cern.ch
if self.directory:
......
......@@ -74,8 +74,8 @@ namespace JiveXML {
* Streaming tools that pass the formatted XML text
* into a file, to a server, etc.
**/
ToolHandle<JiveXML::IStreamTool> m_StreamToFileTool {this, "StreamToFileTool", "JiveXML::StreamToFileTool/StreamToFileTool", "Stream to file tool"};
ToolHandle<JiveXML::IStreamTool> m_StreamToServerTool {this, "StreamToServerTool", "JiveXML::StreamToServerTool/StreamToServerTool", "Stream to server tool"};
ToolHandle<JiveXML::IStreamTool> m_StreamToFileTool {this, "StreamToFileTool", "JiveXML::StreamToFileTool", "Stream to file tool"};
ToolHandle<JiveXML::IStreamTool> m_StreamToServerTool {this, "StreamToServerTool", "JiveXML::StreamToServerTool", "Stream to server tool"};
};
......
......@@ -415,6 +415,8 @@ def AlgoJiveXMLCfg(flags, name="AlgoJiveXML", **kwargs):
# JiveXML_RecEx_config.py
# JiveXML_jobOptionBase.py
result = ComponentAccumulator()
stft=kwargs.get('StreamToFileTool')
print('StreamToFileTool',type(stft), getattr(stft,'MyTest'))
kwargs.setdefault("AtlasRelease", getATLASVersion())
kwargs.setdefault("WriteToFile", True)
kwargs.setdefault("OnlineMode", False)
......
......@@ -298,7 +298,7 @@ namespace JiveXML{
/**
* Now stream the events to all registered streaming tools
*/
ATH_MSG_INFO("Streaming event to file");
if ( (m_StreamToFileTool->StreamEvent(eventNo, runNo, m_FormatTool->getFormattedEvent()).isFailure() )){
ATH_MSG_WARNING( "Could not stream event to file" );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment