Follow-up from "Add HltEfficiencyChecker tool to mooreanalysis" - behaviour of the routing bits writer/ Z -> mu mu old seg faults.
The following discussion from !1 (merged) should be addressed:
@olupton and I made some progress on assessing where the
Z \rightarrow \mu\muissue is coming from.
First of all, the control flow of this tool is like so:
trigger_node = CompositeNode( 'trigger_node', combineLogic=NodeLogic.NONLAZY_AND, children=[ top_cf_node, et, #top_cf_node, mc_unpackers()["MCParticles"], mc_unpackers()["MCVertices"], mcdtt ], forceOrder=True)
et(an instance of an
EventTuplealgorithm) is included, all decay modes work except
Z \rightarrow \mu\mu, which seg faults as
TupleToolTriggeris trying to write the tree. If
etis not included, all decays would fail at the 2nd, perhaps 5th event, complaining that they couldn't find the DecReports. This was strange since the code that allows them to find the DecReports was the first thing we did when we started writing this tool.
The fact that it wasn't straight away the first event lead Olli to wonder if the GEC was involved, and indeed we saw that for 1 event the GEC was throwing away, the
ExecutionReportsWriterwasn't called, and therefore there were no DecReports for that event. We verified this by asking the
NoBiasLineto accept everything, and amazingly everything worked for all decays.
We then also saw that everything works now, for all decays, if
etis not in the control flow as well.
But this begs the question, if
MCDecayTreeTuplewas properly declaring its dependencies to the
ExecutionReportsWriter, then shouldn't
ExecutionReportsWriterbe called for every event? So we looked in the debug output of the
HLTControlFlowMgrand saw that indeed,
MCDecayTreeTupleis not declaring any dependencies, whereas
EventTupleis declaring its dependency to
So the question is now, why doesn't
MCDecayTreeTupledeclare its dependencies properly, but
EventTupledoes? They seem to both inherit from
GaudiTupleAlgin the end. I don't know enough about how the scheduler works to be able to find out where it works out the dependencies. @rmatev @nnolte any ideas how I can look for this?