|
def | __init__ (self, name, ChainSteps, L1decisions, nSteps=None, alignmentGroups=None, topoMap=None) |
|
def | append_bjet_steps (self, new_steps) |
|
def | append_step_to_jet (self, new_steps) |
|
def | numberAllSteps (self) |
|
def | insertEmptySteps (self, empty_step_name, n_new_steps, start_position) |
|
def | checkNumberOfLegs (self) |
|
def | addTopo (self, topoPair, step="last") |
|
def | __str__ (self) |
|
def | __repr__ (self) |
|
Basic class to define the trigger menu
Definition at line 433 of file MenuComponents.py.
◆ __init__()
def MenuComponents.Chain.__init__ |
( |
|
self, |
|
|
|
name, |
|
|
|
ChainSteps, |
|
|
|
L1decisions, |
|
|
|
nSteps = None , |
|
|
|
alignmentGroups = None , |
|
|
|
topoMap = None |
|
) |
| |
Construct the Chain from the steps
Out of all arguments the ChainSteps & L1Thresholds are most relevant, the chain name is used in debug messages
Definition at line 436 of file MenuComponents.py.
436 def __init__(self, name, ChainSteps, L1decisions, nSteps = None, alignmentGroups = None, topoMap=None):
439 Construct the Chain from the steps
440 Out of all arguments the ChainSteps & L1Thresholds are most relevant, the chain name is used in debug messages
444 if nSteps
is None: nSteps = []
445 if alignmentGroups
is None: alignmentGroups = []
448 self.steps = ChainSteps
450 self.alignmentGroups = alignmentGroups
461 self.topoMap.update(topoMap)
465 self.L1decisions = L1decisions
466 log.debug(
"[Chain.__init__] Made Chain %s with seeds: %s ", name, self.L1decisions)
◆ __repr__()
def MenuComponents.Chain.__repr__ |
( |
|
self | ) |
|
Definition at line 585 of file MenuComponents.py.
586 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s \n + Steps: \n %s \n"%(\
587 self.name,
' '.
join(map(str, self.L1decisions)), self.nSteps, self.alignmentGroups,
'\n '.
join(map(str, self.steps)))
◆ __str__()
def MenuComponents.Chain.__str__ |
( |
|
self | ) |
|
Definition at line 581 of file MenuComponents.py.
582 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s "%(\
583 self.name,
' '.
join(map(str, self.L1decisions)), self.nSteps, self.alignmentGroups)
◆ addTopo()
def MenuComponents.Chain.addTopo |
( |
|
self, |
|
|
|
topoPair, |
|
|
|
step = "last" |
|
) |
| |
Definition at line 576 of file MenuComponents.py.
576 def addTopo(self,topoPair,step="last"):
577 stepname =
"last step" if step==
"last" else step.name
578 log.debug(
"Adding topo configurator %s for %s to %s", topoPair[0].__qualname__, topoPair[1],
"step " + stepname)
579 self.topoMap[step] = topoPair
◆ append_bjet_steps()
def MenuComponents.Chain.append_bjet_steps |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 468 of file MenuComponents.py.
468 def append_bjet_steps(self,new_steps):
469 assert len(self.nSteps) == 1,
"[Chain.append_bjet_steps] appending already-merged step lists - chain object will be broken. This should only be used to append Bjets to jets!"
470 self.steps = self.steps + new_steps
471 self.nSteps = [len(self.steps)]
◆ append_step_to_jet()
def MenuComponents.Chain.append_step_to_jet |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 473 of file MenuComponents.py.
473 def append_step_to_jet(self,new_steps):
474 assert len(self.nSteps) == 1,
"[Chain.append_step_to_jet] appending already-merged step lists - chain object will be broken. This is used either for appending Beamspot algorithms to jets!"
475 self.steps = self.steps + new_steps
476 self.nSteps = [len(self.steps)]
◆ checkNumberOfLegs()
def MenuComponents.Chain.checkNumberOfLegs |
( |
|
self | ) |
|
return 0 if the chain has unexpected number of step legs
Definition at line 549 of file MenuComponents.py.
549 def checkNumberOfLegs(self):
550 """ return 0 if the chain has unexpected number of step legs """
551 if len(self.steps) == 0:
554 mult=[step.nLegs
for step
in self.steps]
555 not_empty_mult = [m
for m
in mult
if m!=0]
557 if len(not_empty_mult) == 0:
558 log.error(
"checkNumberOfLegs: Chain %s has all steps with nLegs =0: what to do?", self.name)
562 if not_empty_mult.count(not_empty_mult[0]) != len(not_empty_mult):
563 log.error(
"checkNumberOfLegs: Chain %s has steps with differnt number of legs: %s", self.name,
' '.
join(mult))
567 if not_empty_mult[0] != len(self.L1decisions):
568 log.error(
"checkNumberOfLegs: Chain %s has %i legs per step, and %d L1Decisions", self.name, mult, len(self.L1decisions))
570 return not_empty_mult[0]
◆ insertEmptySteps()
def MenuComponents.Chain.insertEmptySteps |
( |
|
self, |
|
|
|
empty_step_name, |
|
|
|
n_new_steps, |
|
|
|
start_position |
|
) |
| |
Definition at line 502 of file MenuComponents.py.
502 def insertEmptySteps(self, empty_step_name, n_new_steps, start_position):
506 if len(self.steps) == 0 :
507 log.error(
"I can't insert empty steps because the chain doesn't have any steps yet!")
509 if len(self.steps) < start_position :
510 log.error(
"I can't insert empty steps at step %d because the chain doesn't have that many steps!", start_position)
513 chain_steps_pre_split = self.steps[:start_position]
514 chain_steps_post_split = self.steps[start_position:]
520 if start_position == 0:
521 next_step_name = chain_steps_post_split[0].name
522 if re.search(
'^Step[0-9]_',next_step_name):
523 next_step_name = next_step_name[6:]
524 elif re.search(
'^Step[0-9]{2}_', next_step_name):
525 next_step_name = next_step_name[7:]
527 prev_step_name =
'empty_'+
str(len(self.L1decisions))+
'L1in'
528 prev_chain_dict = chain_steps_post_split[0].stepDicts
530 if len(chain_steps_post_split) == 0:
531 log.error(
"Adding empty steps to the end of a chain (%s)- why would you do this?",self.name)
533 prev_step_name = chain_steps_pre_split[-1].name
534 next_step_name = chain_steps_post_split[0].name
535 prev_chain_dict = chain_steps_pre_split[-1].stepDicts
539 for stepID
in range(1,n_new_steps+1):
540 new_step_name = prev_step_name+
'_'+empty_step_name+
'%d_'%stepID+next_step_name
542 log.debug(
"Adding empty step %s", new_step_name)
543 steps_to_add += [ChainStep(new_step_name, chainDicts=prev_chain_dict, comboHypoCfg=ComboHypoCfg, isEmpty=
True)]
545 self.steps = chain_steps_pre_split + steps_to_add + chain_steps_post_split
◆ numberAllSteps()
def MenuComponents.Chain.numberAllSteps |
( |
|
self | ) |
|
Definition at line 479 of file MenuComponents.py.
479 def numberAllSteps(self):
480 if len(self.steps)==0:
483 for stepID,step
in enumerate(self.steps):
484 step_name = step.name
485 if re.search(
'^Step[0-9]_',step_name):
486 step_name = step_name[6:]
487 elif re.search(
'^Step[0-9]{2}_', step_name):
488 step_name = step_name[7:]
489 step.name =
'Step%d_'%(stepID+1)+step_name
491 for iseq, seq
in enumerate(step.sequenceGens):
493 name = seq.func.__name__
494 if re.search(
'Seq[0-9]_',name):
495 newname = re.sub(
'Seq[0-9]_',
'Seq%d_'%(stepID+1), name)
498 step.sequenceGens[iseq]=functools.partial(thisEmpty, flags=
None, name=newname)
◆ __slots__
MenuComponents.Chain.__slots__ |
|
staticprivate |
◆ alignmentGroups
MenuComponents.Chain.alignmentGroups |
◆ L1decisions
MenuComponents.Chain.L1decisions |
◆ name
MenuComponents.Chain.name |
◆ nSteps
MenuComponents.Chain.nSteps |
◆ steps
MenuComponents.Chain.steps |
◆ topoMap
MenuComponents.Chain.topoMap |
The documentation for this class was generated from the following file: