772 def __init__(self, name, viewMaker=None, isProbe=False, **viewMakerArgs):
773 super( InViewRecoCA, self ).__init__()
774 self.name = name +"_probe" if isProbe else name
775 def updateHandle(baseTool, probeTool, handleName):
776 if hasattr(baseTool, handleName) and getattr(baseTool, handleName).Path!="StoreGateSvc+":
777 setattr(probeTool, handleName, getattr(probeTool, handleName).Path + "_probe")
779 if len(viewMakerArgs) != 0:
780 assert viewMaker is None, "No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
783 assert len(viewMakerArgs) == 0, "No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
785 self.viewMakerAlg = viewMaker.__class__(viewMaker.getName()+'_probe', **viewMaker._properties)
786 self.viewMakerAlg.Views = viewMaker.Views+'_probe'
787 roiTool = self.viewMakerAlg.RoITool.__class.__(self.viewMakerAlg.RoITool.getName()+'_probe', **self.viewMakerAlg.RoITool._properties)
788 log.debug(f"InViewRecoCA: Setting InputCachedViews on {self.viewMaker.getName()} to read decisions from tag leg {viewMaker.getName()}: {viewMaker.InputMakerOutputDecisions}")
789 self.viewMakerAlg.InputCachedViews = viewMaker.InputMakerOutputDecisions
790 updateHandle(viewMakerArgs['RoITool'], roiTool, "RoisWriteHandleKey")
791 if hasattr(viewMakerArgs['RoITool'], "RoiCreator"):
792 updateHandle(viewMakerArgs['RoITool'].RoiCreator, roiTool.RoiCreator, "RoisWriteHandleKey")
794 self.viewMakerAlg.RoITool = roiTool
796 self.viewMakerAlg = viewMaker
798 assert 'name' not in viewMakerArgs, "The name of view maker is predefined by the name of sequence"
799 assert 'Views' not in viewMakerArgs, "The Views is predefined by the name of sequence"
800 assert 'ViewsNodeName' not in viewMakerArgs, "The ViewsNodeName is predefined by the name of sequence"
801 if 'RoITool' in viewMakerArgs:
802 roiTool = viewMakerArgs['RoITool']
804 roiTool = CompFactory.ViewCreatorInitialROITool()
807 args = {'name': f'IM_{self.name}',
808 'ViewFallThrough' : True,
809 'RoIsLink' : 'initialRoI',
811 'InViewRoIs' : f'{name}RoIs',
812 'Views' : f'{name}Views'+'_probe' if isProbe else f'{name}Views',
813 'ViewNodeName' : f'{name}InViews'+'_probe' if isProbe else f'{name}InViews',
814 'RequireParentView' : False,
815 'mergeUsingFeature' : False }
816 args.update(**viewMakerArgs)
817 self.viewMakerAlg = CompFactory.EventViewCreatorAlgorithm(**args)
819 updateHandle(args['RoITool'], roiTool, "RoisWriteHandleKey")
820 if hasattr(args['RoITool'], "RoiCreator"):
821 updateHandle(args['RoITool'].RoiCreator, roiTool.RoiCreator, "RoisWriteHandleKey")
822 self.viewsSeq = parOR( self.viewMakerAlg.ViewNodeName )
823 self.addSequence( self.viewsSeq )