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.