|
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 | checkMultiplicity (self) |
|
def | addTopo (self, topoPair, step="last") |
|
def | __str__ (self) |
|
def | __repr__ (self) |
|
Basic class to define the trigger menu
Definition at line 480 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 483 of file MenuComponents.py.
483 def __init__(self, name, ChainSteps, L1decisions, nSteps = None, alignmentGroups = None, topoMap=None):
486 Construct the Chain from the steps
487 Out of all arguments the ChainSteps & L1Thresholds are most relevant, the chain name is used in debug messages
491 if nSteps
is None: nSteps = []
492 if alignmentGroups
is None: alignmentGroups = []
495 self.steps = ChainSteps
497 self.alignmentGroups = alignmentGroups
508 self.topoMap.update(topoMap)
512 self.L1decisions = L1decisions
513 log.debug(
"[Chain.__init__] Made Chain %s with seeds: %s ", name, self.L1decisions)
◆ __repr__()
def MenuComponents.Chain.__repr__ |
( |
|
self | ) |
|
Definition at line 627 of file MenuComponents.py.
628 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s \n + Steps: \n %s \n"%(\
629 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 623 of file MenuComponents.py.
624 return "\n-*- Chain %s -*- \n + Seeds: %s, Steps: %s, AlignmentGroups: %s "%(\
625 self.name,
' '.
join(map(str, self.L1decisions)), self.nSteps, self.alignmentGroups)
◆ addTopo()
def MenuComponents.Chain.addTopo |
( |
|
self, |
|
|
|
topoPair, |
|
|
|
step = "last" |
|
) |
| |
Definition at line 618 of file MenuComponents.py.
618 def addTopo(self,topoPair,step="last"):
619 stepname =
"last step" if step==
"last" else step.name
620 log.debug(
"Adding topo configurator %s for %s to %s", topoPair[0].__qualname__, topoPair[1],
"step " + stepname)
621 self.topoMap[step] = topoPair
◆ append_bjet_steps()
def MenuComponents.Chain.append_bjet_steps |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 515 of file MenuComponents.py.
515 def append_bjet_steps(self,new_steps):
516 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!"
517 self.steps = self.steps + new_steps
518 self.nSteps = [len(self.steps)]
◆ append_step_to_jet()
def MenuComponents.Chain.append_step_to_jet |
( |
|
self, |
|
|
|
new_steps |
|
) |
| |
Definition at line 520 of file MenuComponents.py.
520 def append_step_to_jet(self,new_steps):
521 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!"
522 self.steps = self.steps + new_steps
523 self.nSteps = [len(self.steps)]
◆ checkMultiplicity()
def MenuComponents.Chain.checkMultiplicity |
( |
|
self | ) |
|
Definition at line 596 of file MenuComponents.py.
596 def checkMultiplicity(self):
598 if len(self.steps) == 0:
600 mult=[
sum(step.multiplicity)
for step
in self.steps]
601 not_empty_mult = [m
for m
in mult
if m!=0]
602 if len(not_empty_mult) == 0:
603 log.error(
"checkMultiplicity: Chain %s has all steps with multiplicity =0: what to do?", self.name)
605 if not_empty_mult.count(not_empty_mult[0]) != len(not_empty_mult):
606 log.error(
"checkMultiplicity: Chain %s has steps with differnt multiplicities: %s", self.name,
' '.
join(mult))
609 if not_empty_mult[0] != len(self.L1decisions):
610 log.error(
"checkMultiplicity: Chain %s has %d multiplicity per step, and %d L1Decisions", self.name, mult, len(self.L1decisions))
612 return not_empty_mult[0]
◆ insertEmptySteps()
def MenuComponents.Chain.insertEmptySteps |
( |
|
self, |
|
|
|
empty_step_name, |
|
|
|
n_new_steps, |
|
|
|
start_position |
|
) |
| |
Definition at line 549 of file MenuComponents.py.
549 def insertEmptySteps(self, empty_step_name, n_new_steps, start_position):
553 if len(self.steps) == 0 :
554 log.error(
"I can't insert empty steps because the chain doesn't have any steps yet!")
556 if len(self.steps) < start_position :
557 log.error(
"I can't insert empty steps at step %d because the chain doesn't have that many steps!", start_position)
560 chain_steps_pre_split = self.steps[:start_position]
561 chain_steps_post_split = self.steps[start_position:]
567 if start_position == 0:
568 next_step_name = chain_steps_post_split[0].name
569 if re.search(
'^Step[0-9]_',next_step_name):
570 next_step_name = next_step_name[6:]
571 elif re.search(
'^Step[0-9]{2}_', next_step_name):
572 next_step_name = next_step_name[7:]
574 prev_step_name =
'empty_'+
str(len(self.L1decisions))+
'L1in'
575 prev_chain_dict = chain_steps_post_split[0].stepDicts
577 if len(chain_steps_post_split) == 0:
578 log.error(
"Adding empty steps to the end of a chain (%s)- why would you do this?",self.name)
580 prev_step_name = chain_steps_pre_split[-1].name
581 next_step_name = chain_steps_post_split[0].name
582 prev_chain_dict = chain_steps_pre_split[-1].stepDicts
586 for stepID
in range(1,n_new_steps+1):
587 new_step_name = prev_step_name+
'_'+empty_step_name+
'%d_'%stepID+next_step_name
589 log.debug(
"Adding empty step %s", new_step_name)
590 steps_to_add += [ChainStep(new_step_name, chainDicts=prev_chain_dict, comboHypoCfg=ComboHypoCfg, isEmpty=
True)]
592 self.steps = chain_steps_pre_split + steps_to_add + chain_steps_post_split
◆ numberAllSteps()
def MenuComponents.Chain.numberAllSteps |
( |
|
self | ) |
|
Definition at line 526 of file MenuComponents.py.
526 def numberAllSteps(self):
527 if len(self.steps)==0:
530 for stepID,step
in enumerate(self.steps):
531 step_name = step.name
532 if re.search(
'^Step[0-9]_',step_name):
533 step_name = step_name[6:]
534 elif re.search(
'^Step[0-9]{2}_', step_name):
535 step_name = step_name[7:]
536 step.name =
'Step%d_'%(stepID+1)+step_name
538 for iseq, seq
in enumerate(step.sequenceGens):
540 name = seq.func.__name__
541 if re.search(
'Seq[0-9]_',name):
542 newname = re.sub(
'Seq[0-9]_',
'Seq%d_'%(stepID+1), name)
545 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: