key4hep / key4hep/k4MarlinWrapper
Marlin processor migration
- Dominant language
- Python
- Stars
- 3
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
This is a top level issue for discussing and keeping track of the general progress of the general migration. It also aims at containing a basic description of the various labels as well as decisions that have been taken along the lines that should help in understanding what *migrated* actually means.
The list of issues is also being tracked in [this project](https://github.com/orgs/key4hep/projects/6).
The labels and the issues have been collected via some automation, so **if you feel they are mislabeled feel free to either re-label or comment with a suggestion**.
**The list contains only Marlin processors that are centrally built with Key4hep. Hence, it's unlikely to find user defined processors in the list**
> [!NOTE]
> **If you are interested in porting a processor, please let us know, by leaving a comment in the respective issue and if you start working on the port please assign the issue to yourself, so that we can avoid duplicated work.**
# General structure of the issues
Each processor that was picked up by `Marlin -x` on Dec 2 in the Key4hep nightlies has **its own issue** for dedicated discussion on specific processors. (See the [project side pane](https://github.com/orgs/key4hep/projects/6?pane=info) for technical details) It is also labelled with *Marlin Migration*. Depending on its usage there are other labels
- [*Used by CLD*](https://github.com/key4hep/k4MarlinWrapper/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22Used%20by%20CLD%22) - These processors are used in the [CLDReconstruction](https://github.com/key4hep/CLDConfig/blob/main/CLDConfig/CLDReconstruction.py)
- [*Used by ILD*](https://github.com/key4hep/k4MarlinWrapper/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22Used%20by%20ILD%22) - These processors are used either in the [ILD standard reconcstruction](https://github.com/iLCSoft/ILDConfig/blob/master/StandardConfig/production/ILDReconstruction.py) or in the [ILD mini DST workflow](https://github.com/iLCSoft/ILDConfig/blob/master/StandardConfig/production/MarlinStdRecoMiniDST.xml)
Other labels indicate that status of the migration or whether such a migration is planned at all
- [*No port planned*](https://github.com/key4hep/k4MarlinWrapper/issues?q=is%3Aissue%20state%3Aclosed%20label%3A%22No%20port%20planned%22) - These processors are not planned to be ported. Reasons include: There is a different way of doing this in Gaudi / Key4hep (e.g. a service), or this processor has been considered as unused.
- [*Ported to Gaudi*](https://github.com/key4hep/k4MarlinWrapper/issues?q=is%3Aissue%20state%3Aclosed%20label%3A%22Ported%20to%20Gaudi%22) - These processors have already been ported to Gaudi either in full or as a collection of smaller algorithms. For these processors the issue will state where to find the replacement and how it's called. Once we consider these processors as *validated* the corresponding issue will also be closed.
# Validation of ported processors
We consider a ported algorithm validated **if it produces the same (or statistically indistinguishable) outputs as the corresponding Marlin processor when invoked with the same parameters**. This usually implies that **we do not check the full possible phase space of input parameters** but rather fall back to examples that we find in actual use of the processors.
See also some discussions in https://github.com/key4hep/k4MarlinWrapper/issues/370.
Contributor guide
Research direction
Start with the linked Key4hep project and the processor-specific issues, then read the discussion in issue 370. Use the CLDReconstruction and ILD workflow references to identify usage, and treat the migration as complete only when each processor's porting status, replacement, and validation against Marlin are recorded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100