Start work on optimizing of how job groups propagate up a hypo tree.
Job group propagation is correct but inefficient in the presence of identical conditions. Jet group propagation is currently handled in the following manner. Let a parent condition P have n siblings: S_1... S_n Let J_1... J_2 be the jet groups that pass each of the n siblings. JetGroupProduct finds all the distinct job groups formed by selecting one jet group from is taken fron each of the J_i. Only distinct jet groups are retained. Distinct job groups are those obtained by flattening the JobGroup calculated by the combination process, and discounting differences due to the order of the jets. When the siblings are identical Conditions, the same jets pass each of the conditions. The combination process can be optimized. The optimazation exploits the repetion that is _always_ present for identical Conditions. As an example, let J_1 = J_2 = J_3 = {1,2,3}. Then the combinations are - excluding repeated jets - {1,2,3}, {1,3,2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}. After repetition removal, we are left with {1,2,3}. Further we only need to look at jets passing C_1. This optimatiztion replaces n repeated Conditions of capacity = 1 by a single Condition of capacity n. After initially allocating jets to Conditions, a further test needs now to be made: were there enough distinct jets to satisfy the n conditions - i.e. were there at least n jets fulfilling the condition. To this end, the IConditionMT interface is extended by ICheckedCapacityCondition. This PABC provides a checking function: bool capacitySatisfied(const HypoJetVector&,..) which will be passed the selected jets as an argument. Currently, the sole implementation is CheckedCapacityCondition. This commit uses this CheckedCapacityCondition. However the hypo trees remain as before, and no checks are made. It is therefor expected that they will be no visible effects at this stage.
Showing
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/C++/ConfigToCode.tex 456 additions, 0 deletions...er/TrigHypothesis/TrigHLTJetHypo/doc/C++/ConfigToCode.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/C++/Pictures/AlgTools.tex 63 additions, 0 deletions...igHypothesis/TrigHLTJetHypo/doc/C++/Pictures/AlgTools.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/C++/Pictures/hypopass.tex 40 additions, 0 deletions...igHypothesis/TrigHLTJetHypo/doc/C++/Pictures/hypopass.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/JetTriggerPythonConfiguration.tex 365 additions, 0 deletions...igHLTJetHypo/doc/Python/JetTriggerPythonConfiguration.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/ConditionsToolSetterFastreduction_seq.tex 108 additions, 0 deletions...Python/Pictures/ConditionsToolSetterFastreduction_seq.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/Config_seq.tex 68 additions, 0 deletions...othesis/TrigHLTJetHypo/doc/Python/Pictures/Config_seq.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/Node_treeParameterExpander.tex 75 additions, 0 deletions...etHypo/doc/Python/Pictures/Node_treeParameterExpander.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/TreeParameterExpanderVisitor_seq.tex 61 additions, 0 deletions.../doc/Python/Pictures/TreeParameterExpanderVisitor_seq.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/TreeParameterExpanderVister_seq.tex 58 additions, 0 deletions...o/doc/Python/Pictures/TreeParameterExpanderVister_seq.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/class_overview.tex 64 additions, 0 deletions...sis/TrigHLTJetHypo/doc/Python/Pictures/class_overview.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/helpertool_instance.tex 81 additions, 0 deletions...rigHLTJetHypo/doc/Python/Pictures/helpertool_instance.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/hypoStateMachine.tex 91 additions, 0 deletions...s/TrigHLTJetHypo/doc/Python/Pictures/hypoStateMachine.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/node.tex 51 additions, 0 deletions...rigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/node.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/recursive.tex 39 additions, 0 deletions...pothesis/TrigHLTJetHypo/doc/Python/Pictures/recursive.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/doc/Python/Pictures/visitor.tex 40 additions, 0 deletions...Hypothesis/TrigHLTJetHypo/doc/Python/Pictures/visitor.tex
- Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionsToolSetterFastReduction.py 17 additions, 10 deletions...rigHLTJetHypo/python/ConditionsToolSetterFastReduction.py
- Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionsToolSetterFlowNetwork.py 0 additions, 390 deletions.../TrigHLTJetHypo/python/ConditionsToolSetterFlowNetwork.py
- Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionsToolSetterHT.py 5 additions, 1 deletion...ypothesis/TrigHLTJetHypo/python/ConditionsToolSetterHT.py
- Trigger/TrigHypothesis/TrigHLTJetHypo/python/ConditionsToolSetterTree.py 0 additions, 257 deletions...othesis/TrigHLTJetHypo/python/ConditionsToolSetterTree.py
- Trigger/TrigHypothesis/TrigHLTJetHypo/python/FlowNetworkSetter.py 0 additions, 257 deletions...TrigHypothesis/TrigHLTJetHypo/python/FlowNetworkSetter.py
Loading
Please register or sign in to comment