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

Public Member Functions

 __init__ (self, Alg)
 addOutput (self, name)
 addHypoTool (self, flags, hypoToolConf)
 setPreviousDecision (self, prev)
 __repr__ (self)
 setPar (self, propname, value)
 readOutputList (self)
 addInput (self, name)
 readInputList (self)
 getOutputList (self)
 getInputList (self)

Public Attributes

list previous = []
 outputProp = outputProp
 inputProp = inputProp
tuple name = ("%sNode")%( Alg.getName() )
 Alg = Alg
list inputs = []
list outputs = []

Static Public Attributes

str initialOutput = 'StoreGateSvc+UNSPECIFIED_OUTPUT'

Detailed Description

AlgNode for HypoAlgs

Definition at line 123 of file MenuComponents.py.

Constructor & Destructor Documentation

◆ __init__()

MenuComponents.HypoAlgNode.__init__ ( self,
Alg )

Definition at line 126 of file MenuComponents.py.

126 def __init__(self, Alg):
127 assert isHypoBase(Alg), "Error in creating HypoAlgNode from Alg " + Alg.name
128 AlgNode.__init__(self, Alg, 'HypoInputDecisions', 'HypoOutputDecisions')
129 self.previous=[]
130

Member Function Documentation

◆ __repr__()

MenuComponents.HypoAlgNode.__repr__ ( self)

Definition at line 161 of file MenuComponents.py.

161 def __repr__(self):
162 return "HypoAlg::%s [%s] -> [%s], previous = [%s], HypoTools=[%s]" % \
163 (self.Alg.name,' '.join(map(str, self.getInputList())),
164 ' '.join(map(str, self.getOutputList())),
165 ' '.join(map(str, self.previous)),
166 ' '.join([t.getName() for t in self.Alg.HypoTools]))
167
168
STL class.

◆ addHypoTool()

MenuComponents.HypoAlgNode.addHypoTool ( self,
flags,
hypoToolConf )

Definition at line 141 of file MenuComponents.py.

141 def addHypoTool (self, flags, hypoToolConf):
142 log.debug("Adding HypoTool %s for chain %s to %s", hypoToolConf.name, hypoToolConf.chainDict['chainName'], self.Alg.getName())
143 try:
144 result = hypoToolConf.create(flags)
145 if isinstance(result, ComponentAccumulator):
146 tool = result.popPrivateTools()
147 assert not isinstance(tool, list), "Cannot handle list of tools"
148 self.Alg.HypoTools.append(tool)
149 return result
150 else:
151 self.Alg.HypoTools.append(result)
152
153 except NoHypoToolCreated as e:
154 log.debug("%s returned empty tool: %s", hypoToolConf.name, e)
155 return None
156

◆ addInput()

MenuComponents.AlgNode.addInput ( self,
name )
inherited

Reimplemented from MenuComponents.Node.

Definition at line 81 of file MenuComponents.py.

81 def addInput(self, name):
82 inputs = self.readInputList()
83 if name in inputs:
84 log.debug("Input DH not added in %s: %s already set!", self.Alg.getName(), name)
85 else:
86 if self.inputProp != '':
87 self.setPar(self.inputProp, name)
88 else:
89 log.debug("no InputProp set for input of %s", self.Alg.getName())
90 Node.addInput(self, name)
91 return len(self.readInputList())
92

◆ addOutput()

MenuComponents.HypoAlgNode.addOutput ( self,
name )

Reimplemented from MenuComponents.AlgNode.

Definition at line 131 of file MenuComponents.py.

131 def addOutput(self, name):
132 outputs = self.readOutputList()
133 if name in outputs:
134 log.debug("Output DH not added in %s: %s already set!", self.name, name)
135 elif self.initialOutput in outputs:
136 AlgNode.addOutput(self, name)
137 else:
138 log.error("Hypo %s has already %s as configured output: you may want to duplicate the Hypo!",
139 self.name, outputs[0])
140

◆ getInputList()

MenuComponents.Node.getInputList ( self)
inherited

Definition at line 42 of file MenuComponents.py.

42 def getInputList(self):
43 return self.inputs
44

◆ getOutputList()

MenuComponents.Node.getOutputList ( self)
inherited

Definition at line 39 of file MenuComponents.py.

39 def getOutputList(self):
40 return self.outputs
41

◆ readInputList()

MenuComponents.AlgNode.readInputList ( self)
inherited

Definition at line 93 of file MenuComponents.py.

93 def readInputList(self):
94 cval = getattr(self.Alg, self.inputProp)
95 return (cval if isinstance(cval, MutableSequence) else
96 ([str(cval)] if cval else []))
97

◆ readOutputList()

MenuComponents.AlgNode.readOutputList ( self)
inherited

Definition at line 76 of file MenuComponents.py.

76 def readOutputList(self):
77 cval = getattr(self.Alg, self.outputProp)
78 return (cval if isinstance(cval, MutableSequence) else
79 ([str(cval)] if cval else []))
80

◆ setPar()

MenuComponents.AlgNode.setPar ( self,
propname,
value )
inherited

Definition at line 57 of file MenuComponents.py.

57 def setPar(self, propname, value):
58 cval = getattr( self.Alg, propname)
59 if isinstance(cval, MutableSequence):
60 cval.append(value)
61 return setattr(self.Alg, propname, cval)
62 else:
63 return setattr(self.Alg, propname, value)
64

◆ setPreviousDecision()

MenuComponents.HypoAlgNode.setPreviousDecision ( self,
prev )

Definition at line 157 of file MenuComponents.py.

157 def setPreviousDecision(self,prev):
158 self.previous.append(prev)
159 return self.addInput(prev)
160

Member Data Documentation

◆ Alg

MenuComponents.Node.Alg = Alg
inherited

Definition at line 29 of file MenuComponents.py.

◆ initialOutput

str MenuComponents.HypoAlgNode.initialOutput = 'StoreGateSvc+UNSPECIFIED_OUTPUT'
static

Definition at line 125 of file MenuComponents.py.

◆ inputProp

MenuComponents.AlgNode.inputProp = inputProp
inherited

Definition at line 55 of file MenuComponents.py.

◆ inputs

list MenuComponents.Node.inputs = []
inherited

Definition at line 30 of file MenuComponents.py.

◆ name

tuple MenuComponents.Node.name = ("%sNode")%( Alg.getName() )
inherited

Definition at line 28 of file MenuComponents.py.

◆ outputProp

MenuComponents.AlgNode.outputProp = outputProp
inherited

Definition at line 54 of file MenuComponents.py.

◆ outputs

list MenuComponents.Node.outputs = []
inherited

Definition at line 31 of file MenuComponents.py.

◆ previous

MenuComponents.HypoAlgNode.previous = []

Definition at line 129 of file MenuComponents.py.


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