876 def __init__(self, name, viewMaker=None, isProbe=False, **viewMakerArgs):
877 super( InViewRecoCA, self ).
__init__()
878 self.name = name +
"_probe" if isProbe
else name
879 def updateHandle(baseTool, probeTool, handleName):
880 if hasattr(baseTool, handleName)
and getattr(baseTool, handleName).Path!=
"StoreGateSvc+":
881 setattr(probeTool, handleName, getattr(probeTool, handleName).Path +
"_probe")
883 if len(viewMakerArgs) != 0:
884 assert viewMaker
is None,
"No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
887 assert len(viewMakerArgs) == 0,
"No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
889 self.viewMakerAlg = viewMaker.__class__(viewMaker.getName()+
'_probe', **viewMaker._properties)
890 self.viewMakerAlg.Views = viewMaker.Views+
'_probe'
891 roiTool = self.viewMakerAlg.RoITool.__class.__(self.viewMakerAlg.RoITool.getName()+
'_probe', **self.viewMakerAlg.RoITool._properties)
892 log.debug(f
"InViewRecoCA: Setting InputCachedViews on {self.viewMaker.getName()} to read decisions from tag leg {viewMaker.getName()}: {viewMaker.InputMakerOutputDecisions}")
893 self.viewMakerAlg.InputCachedViews = viewMaker.InputMakerOutputDecisions
894 updateHandle(viewMakerArgs[
'RoITool'], roiTool,
"RoisWriteHandleKey")
895 if hasattr(viewMakerArgs[
'RoITool'],
"RoiCreator"):
896 updateHandle(viewMakerArgs[
'RoITool'], roiTool,
"ExtraPrefetchRoIsKey")
897 updateHandle(viewMakerArgs[
'RoITool'].RoiCreator, roiTool.RoiCreator,
"RoisWriteHandleKey")
899 self.viewMakerAlg.RoITool = roiTool
901 self.viewMakerAlg = viewMaker
903 assert 'name' not in viewMakerArgs,
"The name of view maker is predefined by the name of sequence"
904 assert 'Views' not in viewMakerArgs,
"The Views is predefined by the name of sequence"
905 assert 'ViewsNodeName' not in viewMakerArgs,
"The ViewsNodeName is predefined by the name of sequence"
906 if 'RoITool' in viewMakerArgs:
907 roiTool = viewMakerArgs[
'RoITool']
909 roiTool = CompFactory.ViewCreatorInitialROITool()
912 args = {
'name': f
'IM_{self.name}',
913 'ViewFallThrough' :
True,
914 'RoIsLink' :
'initialRoI',
916 'InViewRoIs' : f
'{name}RoIs',
917 'Views' : f
'{name}Views'+
'_probe' if isProbe
else f
'{name}Views',
918 'ViewNodeName' : f
'{name}InViews'+
'_probe' if isProbe
else f
'{name}InViews',
919 'RequireParentView' :
False,
920 'mergeUsingFeature' :
False }
921 args.update(**viewMakerArgs)
922 self.viewMakerAlg = CompFactory.EventViewCreatorAlgorithm(**args)
924 updateHandle(args[
'RoITool'], roiTool,
"RoisWriteHandleKey")
925 if hasattr(args[
'RoITool'],
"RoiCreator"):
926 updateHandle(args[
'RoITool'], roiTool,
"ExtraPrefetchRoIsKey")
927 updateHandle(args[
'RoITool'].RoiCreator, roiTool.RoiCreator,
"RoisWriteHandleKey")
928 self.viewsSeq =
parOR( self.viewMakerAlg.ViewNodeName )
929 self.addSequence( self.viewsSeq )