ATLAS Offline Software
Public Member Functions | Public Attributes | Private Attributes | List of all members
MenuComponents.MenuSequence Class Reference
Collaboration diagram for MenuComponents.MenuSequence:

Public Member Functions

def __init__ (self, flags, selectionCA, HypoToolGen)
 
def __del__ (self)
 
def name (self)
 
def sequence (self)
 
def maker (self)
 
def hypo (self)
 
def getOutputList (self)
 
def connectToFilter (self, outfilter)
 
def getHypoToolConf (self)
 
def buildDFDot (self, cfseq_algs, all_hypos, last_step_hypo_nodes, file)
 
def __repr__ (self)
 

Public Attributes

 ca
 
 hypoAcc
 

Private Attributes

 _sequence
 
 _maker
 
 _name
 
 _hypo
 
 _hypoToolConf
 

Detailed Description

Class to group reco sequences with the Hypo.
By construction it has one Hypo only, which gives the name to this class object

Definition at line 373 of file MenuComponents.py.

Constructor & Destructor Documentation

◆ __init__()

def MenuComponents.MenuSequence.__init__ (   self,
  flags,
  selectionCA,
  HypoToolGen 
)

Definition at line 377 of file MenuComponents.py.

377  def __init__(self, flags, selectionCA, HypoToolGen):
378  self.ca = selectionCA
379  # separate the HypoCA to be merged later
380  self.hypoAcc = selectionCA.hypoAcc
381 
382  sequence = self.ca.topSequence()
383  self._sequence = Node(Alg=sequence)
384 
385  # get the InputMaker
386  inputMaker = [ a for a in self.ca.getEventAlgos() if isInputMakerBase(a)]
387  assert len(inputMaker) == 1, f"{len(inputMaker)} input makers in the ComponentAccumulator"
388  inputMaker = inputMaker[0]
389  assert inputMaker.name.startswith("IM"), f"Input maker {inputMaker.name} name needs to start with 'IM'"
390  self._maker = InputMakerNode( Alg = inputMaker )
391  input_maker_output = self.maker.readOutputList()[0] # only one since it's merged
392 
393 
394  # get the HypoAlg
395  hypoAlg = selectionCA.hypoAcc.getEventAlgos()
396  assert len(hypoAlg) == 1, f"{len(hypoAlg)} hypo algs in the ComponentAccumulator"
397  hypoAlg = hypoAlg[0]
398  hypoAlg.RuntimeValidation = flags.Trigger.doRuntimeNaviVal
399 
400  self._name = CFNaming.menuSequenceName(hypoAlg.name)
401  self._hypo = HypoAlgNode( Alg = hypoAlg )
402  self._hypo.addOutput( CFNaming.hypoAlgOutName(hypoAlg.name) )
403  self._hypo.setPreviousDecision( input_maker_output )
404  self._hypoToolConf = HypoToolConf( HypoToolGen )
405 
406  # Connect InputMaker output to ROBPrefetchingAlg(s) if there is any
407  if ROBPrefetching.StepRoI in flags.Trigger.ROBPrefetchingOptions:
408  for child in sequence.Members:
409  if ( isinstance(child, CompFactory.ROBPrefetchingAlg) and
410  input_maker_output not in child.ROBPrefetchingInputDecisions ):
411  child.ROBPrefetchingInputDecisions.append(input_maker_output)
412 
413  log.debug("connecting InputMaker and HypoAlg, adding: InputMaker::%s.output=%s",
414  self.maker.Alg.name, input_maker_output)
415  log.debug("HypoAlg::%s.HypoInputDecisions=%s, HypoAlg::%s.HypoOutputDecisions=%s",
416  self.hypo.Alg.name, self.hypo.readInputList()[0],
417  self.hypo.Alg.name, self.hypo.readOutputList()[0])
418 

◆ __del__()

def MenuComponents.MenuSequence.__del__ (   self)

Definition at line 419 of file MenuComponents.py.

419  def __del__(self):
420  self.ca.wasMerged()
421  self.hypoAcc.wasMerged()
422 

Member Function Documentation

◆ __repr__()

def MenuComponents.MenuSequence.__repr__ (   self)

Definition at line 465 of file MenuComponents.py.

465  def __repr__(self):
466  hyponame = self._hypo.Alg.name
467  hypotool = self._hypoToolConf.name
468  return "MenuSequence::%s \n Hypo::%s \n Maker::%s \n Sequence::%s \n HypoTool::%s\n"\
469  %(self.name, hyponame, self.maker.Alg.name, self.sequence.Alg.name, hypotool)
470 
471 

◆ buildDFDot()

def MenuComponents.MenuSequence.buildDFDot (   self,
  cfseq_algs,
  all_hypos,
  last_step_hypo_nodes,
  file 
)

Definition at line 455 of file MenuComponents.py.

455  def buildDFDot(self, cfseq_algs, all_hypos, last_step_hypo_nodes, file):
456  cfseq_algs.append(self.maker)
457  cfseq_algs.append(self.sequence)
458  file.write(" %s[fillcolor=%s]\n"%(self.maker.Alg.getName(), algColor(self.maker.Alg)))
459  file.write(" %s[fillcolor=%s]\n"%(self.sequence.Alg.getName(), algColor(self.sequence.Alg)))
460  cfseq_algs.append(self._hypo)
461  file.write(" %s[color=%s]\n"%(self._hypo.Alg.getName(), algColor(self._hypo.Alg)))
462  all_hypos.append(self._hypo)
463  return cfseq_algs, all_hypos, last_step_hypo_nodes
464 

◆ connectToFilter()

def MenuComponents.MenuSequence.connectToFilter (   self,
  outfilter 
)
Connect filter to the InputMaker

Definition at line 446 of file MenuComponents.py.

446  def connectToFilter(self, outfilter):
447  """Connect filter to the InputMaker"""
448  log.debug("connecting %s to inputs of %s", outfilter, self.maker.Alg.name)
449  self.maker.addInput(outfilter)
450 

◆ getHypoToolConf()

def MenuComponents.MenuSequence.getHypoToolConf (   self)

Definition at line 451 of file MenuComponents.py.

451  def getHypoToolConf(self) :
452  return self._hypoToolConf
453 
454 

◆ getOutputList()

def MenuComponents.MenuSequence.getOutputList (   self)

Definition at line 443 of file MenuComponents.py.

443  def getOutputList(self):
444  return [self._hypo.readOutputList()[0]]
445 

◆ hypo()

def MenuComponents.MenuSequence.hypo (   self)

Definition at line 440 of file MenuComponents.py.

440  def hypo(self):
441  return self._hypo
442 

◆ maker()

def MenuComponents.MenuSequence.maker (   self)

Definition at line 432 of file MenuComponents.py.

432  def maker(self):
433  # Input makers are added during DataFlow building (connectToFilter) when a chain
434  # uses this sequence in another step. So we need to make sure to update the
435  # algorithm when accessed.
436  self._maker.Alg = self.ca.getEventAlgo(self._maker.Alg.name)
437  return self._maker
438 

◆ name()

def MenuComponents.MenuSequence.name (   self)

Definition at line 424 of file MenuComponents.py.

424  def name(self):
425  return self._name
426 

◆ sequence()

def MenuComponents.MenuSequence.sequence (   self)

Definition at line 428 of file MenuComponents.py.

428  def sequence(self):
429  return self._sequence
430 

Member Data Documentation

◆ _hypo

MenuComponents.MenuSequence._hypo
private

Definition at line 401 of file MenuComponents.py.

◆ _hypoToolConf

MenuComponents.MenuSequence._hypoToolConf
private

Definition at line 404 of file MenuComponents.py.

◆ _maker

MenuComponents.MenuSequence._maker
private

Definition at line 390 of file MenuComponents.py.

◆ _name

MenuComponents.MenuSequence._name
private

Definition at line 400 of file MenuComponents.py.

◆ _sequence

MenuComponents.MenuSequence._sequence
private

Definition at line 383 of file MenuComponents.py.

◆ ca

MenuComponents.MenuSequence.ca

Definition at line 378 of file MenuComponents.py.

◆ hypoAcc

MenuComponents.MenuSequence.hypoAcc

Definition at line 380 of file MenuComponents.py.


The documentation for this class was generated from the following file:
AthenaPoolTestReadDoubleSelector.topSequence
topSequence
Definition: AthenaPoolTestReadDoubleSelector.py:18
detail::addInput
void addInput(T &c, const Primitive &input, A a=defaultAccessor< T >)
Definition: PrimitiveHelpers.h:50
HLTCFTools.isInputMakerBase
def isInputMakerBase(alg)
Definition: HLTCFTools.py:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.AthDsoLogger.__del__
def __del__(self)
Definition: AthDsoLogger.py:82
HLTCFTools.algColor
def algColor(alg)
Definition: HLTCFTools.py:15