ATLAS Offline Software
Loading...
Searching...
No Matches
MenuComponents.InViewRecoCA Class Reference
Inheritance diagram for MenuComponents.InViewRecoCA:
Collaboration diagram for MenuComponents.InViewRecoCA:

Public Member Functions

 __init__ (self, name, viewMaker=None, isProbe=False, **viewMakerArgs)
 mergeReco (self, ca)
 addRecoAlgo (self, algo)
 inputMaker (self)

Public Attributes

str name = name +"_probe" if isProbe else name
 viewMakerAlg = viewMaker.__class__(viewMaker.getName()+'_probe', **viewMaker._properties)
 viewsSeq = parOR( self.viewMakerAlg.ViewNodeName )

Detailed Description

Class to handle in-view reco, sets up the View maker if not provided and exposes InputMaker so that more inputs to it can be added in the process of assembling the menu 

Definition at line 770 of file MenuComponents.py.

Constructor & Destructor Documentation

◆ __init__()

MenuComponents.InViewRecoCA.__init__ ( self,
name,
viewMaker = None,
isProbe = False,
** viewMakerArgs )

Definition at line 772 of file MenuComponents.py.

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")
778
779 if len(viewMakerArgs) != 0:
780 assert viewMaker is None, "No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
781
782 if viewMaker:
783 assert len(viewMakerArgs) == 0, "No support for explicitly passed view maker and args for EventViewCreatorAlgorithm"
784 if isProbe:
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")
793
794 self.viewMakerAlg.RoITool = roiTool
795 else:
796 self.viewMakerAlg = viewMaker
797 else:
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']
803 else:
804 roiTool = CompFactory.ViewCreatorInitialROITool()
805
806
807 args = {'name': f'IM_{self.name}',
808 'ViewFallThrough' : True,
809 'RoIsLink' : 'initialRoI',
810 'RoITool' : roiTool,
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)
818 if isProbe:
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 )
824

Member Function Documentation

◆ addRecoAlgo()

MenuComponents.InViewRecoCA.addRecoAlgo ( self,
algo )
Place algorithm in the correct reconstruction sequence 

Definition at line 830 of file MenuComponents.py.

830 def addRecoAlgo( self, algo ):
831 """ Place algorithm in the correct reconstruction sequence """
832 return self.addEventAlgo( algo, sequenceName=self.viewsSeq.name )
833
834

◆ inputMaker()

MenuComponents.InViewRecoCA.inputMaker ( self)

Definition at line 835 of file MenuComponents.py.

835 def inputMaker( self ):
836 return self.viewMakerAlg
837
838

◆ mergeReco()

MenuComponents.InViewRecoCA.mergeReco ( self,
ca )
Merge CA moving reconstruction algorithms into the right sequence 

Definition at line 825 of file MenuComponents.py.

825 def mergeReco( self, ca ):
826 """ Merge CA moving reconstruction algorithms into the right sequence """
827 return self.merge( ca, sequenceName=self.viewsSeq.name )
828
829

Member Data Documentation

◆ name

str MenuComponents.InViewRecoCA.name = name +"_probe" if isProbe else name

Definition at line 774 of file MenuComponents.py.

◆ viewMakerAlg

MenuComponents.InViewRecoCA.viewMakerAlg = viewMaker.__class__(viewMaker.getName()+'_probe', **viewMaker._properties)

Definition at line 785 of file MenuComponents.py.

◆ viewsSeq

MenuComponents.InViewRecoCA.viewsSeq = parOR( self.viewMakerAlg.ViewNodeName )

Definition at line 822 of file MenuComponents.py.


The documentation for this class was generated from the following file: