Allow users to specify startup order for BoardReader processes
Currently in DAQInterface, transitions are sent to artdaq process types in a specific order. E.g., the "start" transition is sent first to the dispatchers, then to the data loggers, then to the eventbuilders, and then to the boardreaders. However, within the boardreader process type, it's not possible to order the transition. On some experiments (e.g., protoDUNE) it matters that some fragment generators receive transitions before other fragment generators. It should be possible to specify this in DAQInterface.
JCF: installed the concept of a process priority, which allows us to order transitions within a process type (see Issue #16637)
#1 Updated by John Freeman over 3 years ago
- Status changed from New to Resolved
With commit 7aa999f3b14d9c6f1e28c2c81c6e1897f8cddf6d, it's now possible to add a line labeled "boardreader priorities" to the
.settings file to specify the order in which transitions are sent to different fragment generator types. E.g.
boardreader priorities: component03|component04 component06 component05
...can be parsed to mean "On the init or start transition, first send the command to the boardreaders running components 3 and 4. Then send it to component 6. Then send it to component 5. Then send it to any other components, if applicable. Do this in reverse for the stop transition.". In other words, you supply one or more regexps, and the regexp a component name matches determines its priority. If there's no match for a component name, that component gets lowest priority.