Skip to content

Fix the trigger counts passed to analyses from StarFelixTriggerLoop

Zhengcheng Tao requested to merge fix_strip_fwtrigloop into devel

StarFelixTriggerLoop computes the trickle sequence to be loaded to the trickle memory based on the requested number of triggers and trigger frequency. In the case that the total number of the requested triggers is not divisible by the number of triggers per trickle sequence, StarFelixTriggerLoop would just send more triggers than what is requested. (Alternatively, StarFelixTriggerLoop needs to compute the remainder and update the sequence in the trickle memory for the last iteration to send the exact number of triggers.)

Previously setTrigCnt(nTotalTrigs); is called in StarFelixTriggerLoop::init(), but AnalysisAlgorithm::init() is called earlier during a scan so the analysis didn't get the updated n_triggers. Now the computation of the trickle sequence as well as the actual total number of triggers is moved into StarFelixTriggerLoop::loadConfig(), while StarFelixTriggerLoop::init() now only does the writing of trickle memory using the stored sequence. This should ensure that the AnalysisAlgorithm gets the updated number of triggers for further calculation of e.g. occupancy or mask.

Merge request reports