Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add some documentation about the current limitation
Browse files Browse the repository at this point in the history
tmadlener committed Dec 10, 2024
1 parent 165fb75 commit 0e60c23
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions doc/MarlinWrapperIntroduction.md
Original file line number Diff line number Diff line change
@@ -220,3 +220,25 @@ collection in the process, you would configure the tool like so
lcio2edm4hepConv = Lcio2EDM4hepTool("Lcio2EDM4hep")
lcio2edm4hepConv.collNameMapping = {"MCParticle": "MCParticles"}
```

## Potential pitfals when using other Gaudi Algorithms

Although mixing wrapped Marlin Processors with other Gaudi Algorithms is working
for most cases, there are a few conceptual differences that have not yet been
completely mapped. This might lead to unexpected or different results when
running in Gaudi vs. running the same processors via Marlin (as far as
possible). This list aims to collect them and where possible also tries to point
out ways to work around them.

- In Marlin processors can use a `marlin::SkipEventException` to skip the
processing of the rest of the event.
- In Marlin a `marlin::StopProcessingException` will immediately stop the
processing of the event loop. However, in Gaudi the current event will still
finish processing.

For the `MarlinProcessorWrapper` algorithm we have put in checks and effectively
skip the execution of the actual wrapped processor in these cases. However,
other Gaudi algorithms will not have this check. Hence, execution chains that
**only consist of wrapped Marlin processors will work as expected** here.
However, **mixed chains will most likely not work as expected** (e.g. algorithms
will not find expected inputs, etc.).

0 comments on commit 0e60c23

Please sign in to comment.