Skip to content

Trigger streamers in TMMT

Implemented HypoAlg and HypoTool for streamers (needed for ATR-20083, ATR-20015)

Thanks to @rbielski, using RuntimeValidation = False avoids the errors. I'm leaving the description of the original errors below for reference

Cheers, Javier


However it is failing with a complaint about decision not having a 'feature' ElementLink. A streamer with no selection that starts from a random L1 has no physics object to link, the event could well be empty.

StreamerHypoAlg                         0   0     ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
StreamerHypoAlg                         0   0     ERROR ! RUNTIME TRIGGER NAVIGATION VALIDATION ERROR
StreamerHypoAlg                         0   0     ERROR ! Caused by Decision with index:0
StreamerHypoAlg                         0   0     ERROR ! From collection:HLTNav_StreamerHypo__L1FS
StreamerHypoAlg                         0   0     ERROR ! TrigComposite_v1 name:''
StreamerHypoAlg                         0   0     ERROR ! Decision has no 'feature' ElementLink. Nor does its immediate parents (Combo case).
StreamerHypoAlg                         0   0     ERROR ! Every Decision created by a HypoAlg must correspond to some physics object, and be linked to the object.
StreamerHypoAlg                         0   0     ERROR ! (For steering controlled multi-slice ComboHypo algs, it is the earlier slice-controlled HypoAlgs which attach the features)
StreamerHypoAlg                         0   0     ERROR ! SOLUTION: If this is a ComboHypo, ensure all parent Decision objects are from HypoAlg, and hence have a 'feature' ElementLink.
StreamerHypoAlg                         0   0     ERROR ! SOLUTION: If this is not a ComboHypo, ensure that all produced Decision objects are assigned their feature:
StreamerHypoAlg                         0   0     ERROR ! SOLUTION:    decision->setObjectLink<MY_FEATURE_CONTANER_TYPE>(featureString(), MY_FEATURE_ELEMENT_LINK);
StreamerHypoAlg                         0   0     ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
StreamerHypoAlg                         0   0     ERROR DecisionHandling/src/HypoBase.cxx:59 (StatusCode HypoBase::runtimeValidation(SG::WriteHandle<DataVector<xAOD::TrigComposite_v1> >&) const): code FAILURE: validateHasFeature(dEL)
StreamerHypoAlg                         0   0     ERROR DecisionHandling/src/HypoBase.cxx:45 (StatusCode HypoBase::hypoBaseOutputProcessing(SG::WriteHandle<DataVector<xAOD::TrigComposite_v1> >&, MSG::Level) const): code FAILURE: runtimeValidation(outputHandle)
StreamerHypoAlg                         0   0     ERROR TrigStreamerHypo/src/TrigStreamerHypoAlgMT.cxx:81 (StatusCode TrigStreamerHypoAlgMT::execute(const EventContext&) const): code FAILURE: hypoBaseOutputProcessing(outputHandle)
StreamerHypoAlg                         0   0     ERROR Maximum number of errors ( 'ErrorMax':1) reached.
AvalancheSchedulerSvc                   0   0     ERROR *** Stall detected in slot 0! ***
AvalancheSchedulerSvc                   0   0     ERROR Event 0 on slot 0 failed
AthenaHiveEventLoopMgr                            FATAL Failed event detected on s: 0  e: 0 w/ fail mode: AlgStall

Instead of having HypoTool/Alg for streamers I also tried having a fully empty sequence. I get

Py:MenuComponents   ERROR setSeedsToSequences: found 0 sequences in the chain HLT_noalg_L1RD0_FILLED and 1 seeds ['']. What to do??
Py:MenuComponents   ERROR setSeedsToSequences: found 0 sequences in the chain HLT_noalg_L1EM3 and 1 seeds ['']. What to do??

The code still runs and the events seem to pass:

TriggerSummaryStep1                     1   0     DEBUG In summary 14 chains passed:
TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_noalg_L1RD0_FILLED ID#211699639

However I don't see counts in expert-monitoring.root, probably because there is no HypoTool to monitor.

Maybe @tbold , @fpastore , @bernius have some better ideas on how to implement streamers.

Edited by Javier Montejo Berlingen

Merge request reports