780 def __init__(self, name, viewMaker=None, isProbe=False, **viewMakerArgs):
781 super( InViewRecoCA, self ).
__init__()
782 self.name = name +
"_probe" if isProbe
else name
783 def updateHandle(baseTool, probeTool, handleName):
784 if hasattr(baseTool, handleName)
and getattr(baseTool, handleName).Path!=
"StoreGateSvc+":
785 setattr(probeTool, handleName, getattr(probeTool, handleName).Path +
"_probe")
787 if len(viewMakerArgs) != 0:
788 assert viewMaker
is None,
"No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
791 assert len(viewMakerArgs) == 0,
"No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
793 self.viewMakerAlg = viewMaker.__class__(viewMaker.getName()+
'_probe', **viewMaker._properties)
794 self.viewMakerAlg.Views = viewMaker.Views+
'_probe'
795 roiTool = self.viewMakerAlg.RoITool.__class.__(self.viewMakerAlg.RoITool.getName()+
'_probe', **self.viewMakerAlg.RoITool._properties)
796 log.debug(f
"InViewRecoCA: Setting InputCachedViews on {self.viewMaker.getName()} to read decisions from tag leg {viewMaker.getName()}: {viewMaker.InputMakerOutputDecisions}")
797 self.viewMakerAlg.InputCachedViews = viewMaker.InputMakerOutputDecisions
798 updateHandle(viewMakerArgs[
'RoITool'], roiTool,
"RoisWriteHandleKey")
799 if hasattr(viewMakerArgs[
'RoITool'],
"RoiCreator"):
800 updateHandle(viewMakerArgs[
'RoITool'], roiTool,
"ExtraPrefetchRoIsKey")
801 updateHandle(viewMakerArgs[
'RoITool'].RoiCreator, roiTool.RoiCreator,
"RoisWriteHandleKey")
803 self.viewMakerAlg.RoITool = roiTool
805 self.viewMakerAlg = viewMaker
807 assert 'name' not in viewMakerArgs,
"The name of view maker is predefined by the name of sequence"
808 assert 'Views' not in viewMakerArgs,
"The Views is predefined by the name of sequence"
809 assert 'ViewsNodeName' not in viewMakerArgs,
"The ViewsNodeName is predefined by the name of sequence"
810 if 'RoITool' in viewMakerArgs:
811 roiTool = viewMakerArgs[
'RoITool']
813 roiTool = CompFactory.ViewCreatorInitialROITool()
816 args = {
'name': f
'IM_{self.name}',
817 'ViewFallThrough' :
True,
818 'RoIsLink' :
'initialRoI',
820 'InViewRoIs' : f
'{name}RoIs',
821 'Views' : f
'{name}Views'+
'_probe' if isProbe
else f
'{name}Views',
822 'ViewNodeName' : f
'{name}InViews'+
'_probe' if isProbe
else f
'{name}InViews',
823 'RequireParentView' :
False,
824 'mergeUsingFeature' :
False }
825 args.update(**viewMakerArgs)
826 self.viewMakerAlg = CompFactory.EventViewCreatorAlgorithm(**args)
828 updateHandle(args[
'RoITool'], roiTool,
"RoisWriteHandleKey")
829 if hasattr(args[
'RoITool'],
"RoiCreator"):
830 updateHandle(args[
'RoITool'], roiTool,
"ExtraPrefetchRoIsKey")
831 updateHandle(args[
'RoITool'].RoiCreator, roiTool.RoiCreator,
"RoisWriteHandleKey")
832 self.viewsSeq =
parOR( self.viewMakerAlg.ViewNodeName )
833 self.addSequence( self.viewsSeq )