|
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 432 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 435 of file MenuComponents.py.
435 def __init__(self, name, ChainSteps, L1decisions, nSteps = None, alignmentGroups = None, topoMap=None):
438 Construct the Chain from the steps
439 Out of all arguments the ChainSteps & L1Thresholds are most relevant, the chain name is used in debug messages
443 if nSteps
is None: nSteps = []
444 if alignmentGroups
is None: alignmentGroups = []
447 self.steps = ChainSteps
449 self.alignmentGroups = alignmentGroups
460 self.topoMap.update(topoMap)
464 self.L1decisions = L1decisions
465 log.debug(
"[Chain.__init__] Made Chain %s with seeds: %s ", name, self.L1decisions)
◆ __repr__()
def MenuComponents.Chain.__repr__ |
( |
|
self | ) |
|
Definition at line 584 of file MenuComponents.py.
585 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s \n + Steps: \n %s \n"%(\
586 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 580 of file MenuComponents.py.
581 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s "%(\
582 self.name,
' '.
join(map(str, self.L1decisions)), self.nSteps, self.alignmentGroups)
◆ addTopo()
def MenuComponents.Chain.addTopo |
( |
|
self, |
|
|
|
topoPair, |
|
|
|
step = "last" |
|
) |
| |
Definition at line 575 of file MenuComponents.py.
575 def addTopo(self,topoPair,step="last"):
576 stepname =
"last step" if step==
"last" else step.name
577 log.debug(
"Adding topo configurator %s for %s to %s", topoPair[0].__qualname__, topoPair[1],
"step " + stepname)
578 self.topoMap[step] = topoPair
◆ append_bjet_steps()
def MenuComponents.Chain.append_bjet_steps |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 467 of file MenuComponents.py.
467 def append_bjet_steps(self,new_steps):
468 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!"
469 self.steps = self.steps + new_steps
470 self.nSteps = [len(self.steps)]
◆ append_step_to_jet()
def MenuComponents.Chain.append_step_to_jet |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 472 of file MenuComponents.py.
472 def append_step_to_jet(self,new_steps):
473 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!"
474 self.steps = self.steps + new_steps
475 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 548 of file MenuComponents.py.
548 def checkNumberOfLegs(self):
549 """ return 0 if the chain has unexpected number of step legs """
550 if len(self.steps) == 0:
553 mult=[step.nLegs
for step
in self.steps]
554 not_empty_mult = [m
for m
in mult
if m!=0]
556 if len(not_empty_mult) == 0:
557 log.error(
"checkNumberOfLegs: Chain %s has all steps with nLegs =0: what to do?", self.name)
561 if not_empty_mult.count(not_empty_mult[0]) != len(not_empty_mult):
562 log.error(
"checkNumberOfLegs: Chain %s has steps with differnt number of legs: %s", self.name,
' '.
join(mult))
566 if not_empty_mult[0] != len(self.L1decisions):
567 log.error(
"checkNumberOfLegs: Chain %s has %i legs per step, and %d L1Decisions", self.name, mult, len(self.L1decisions))
569 return not_empty_mult[0]
◆ insertEmptySteps()
def MenuComponents.Chain.insertEmptySteps |
( |
|
self, |
|
|
|
empty_step_name, |
|
|
|
n_new_steps, |
|
|
|
start_position |
|
) |
| |
Definition at line 501 of file MenuComponents.py.
501 def insertEmptySteps(self, empty_step_name, n_new_steps, start_position):
505 if len(self.steps) == 0 :
506 log.error(
"I can't insert empty steps because the chain doesn't have any steps yet!")
508 if len(self.steps) < start_position :
509 log.error(
"I can't insert empty steps at step %d because the chain doesn't have that many steps!", start_position)
512 chain_steps_pre_split = self.steps[:start_position]
513 chain_steps_post_split = self.steps[start_position:]
519 if start_position == 0:
520 next_step_name = chain_steps_post_split[0].name
521 if re.search(
'^Step[0-9]_',next_step_name):
522 next_step_name = next_step_name[6:]
523 elif re.search(
'^Step[0-9]{2}_', next_step_name):
524 next_step_name = next_step_name[7:]
526 prev_step_name =
'empty_'+
str(len(self.L1decisions))+
'L1in'
527 prev_chain_dict = chain_steps_post_split[0].stepDicts
529 if len(chain_steps_post_split) == 0:
530 log.error(
"Adding empty steps to the end of a chain (%s)- why would you do this?",self.name)
532 prev_step_name = chain_steps_pre_split[-1].name
533 next_step_name = chain_steps_post_split[0].name
534 prev_chain_dict = chain_steps_pre_split[-1].stepDicts
538 for stepID
in range(1,n_new_steps+1):
539 new_step_name = prev_step_name+
'_'+empty_step_name+
'%d_'%stepID+next_step_name
541 log.debug(
"Adding empty step %s", new_step_name)
542 steps_to_add += [ChainStep(new_step_name, chainDicts=prev_chain_dict, isEmpty=
True)]
544 self.steps = chain_steps_pre_split + steps_to_add + chain_steps_post_split
◆ numberAllSteps()
def MenuComponents.Chain.numberAllSteps |
( |
|
self | ) |
|
Definition at line 478 of file MenuComponents.py.
478 def numberAllSteps(self):
479 if len(self.steps)==0:
482 for stepID,step
in enumerate(self.steps):
483 step_name = step.name
484 if re.search(
'^Step[0-9]_',step_name):
485 step_name = step_name[6:]
486 elif re.search(
'^Step[0-9]{2}_', step_name):
487 step_name = step_name[7:]
488 step.name =
'Step%d_'%(stepID+1)+step_name
490 for iseq, seq
in enumerate(step.sequenceGens):
492 name = seq.func.__name__
493 if re.search(
'Seq[0-9]_',name):
494 newname = re.sub(
'Seq[0-9]_',
'Seq%d_'%(stepID+1), name)
497 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: