Possibility to conditionally run parts of the chain for certain events
- Dominant language
- C++
- Stars
- 14
- Forks
- 34
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 6
Description
This is originally triggered by a discussion related to k4MarlinWrapper, but I think it belongs here as this would probably have to come from the framework core or has the potential to be generally useful.
# The Marlin use case
In Marlin it was possible to conditionally execute processors. Effectively a processor can set an "exit condition" and a subsequent one can check this and only execute if certain conditions are met. A corresponding xml snippet would look like this
```xml
```
In this case the processors guarded by the `if` condition only run if the `MyPreSelectionDecayType` has set the `GoodEvent` condition. In Marlin this is fairly flexible and a given processor can in principle set multiple conditions which can then be checked at runtime.
# The Gaudi world
I think a similar functionality is also possible in Gaudi, but I am not entirely sure how. Does this work with Gaudi at all? In that case, I think we should document how this is done in principle and then we can think about how to make it available in the k4MarlinWrapper.
Contributor guide
Research direction
Start by investigating whether Gaudi supports conditional execution of processors, using the Marlin example in this issue as the comparison point. Document the applicable Gaudi mechanism if one exists, and describe what would be needed to expose it through k4MarlinWrapper; completion requires resolving the feasibility question and agreeing on the scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100