-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add brief description of new test case
- Loading branch information
Showing
1 changed file
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
<!-- | ||
Copyright (c) 2019-2023 Key4hep-Project. | ||
This file is part of Key4hep. | ||
See https://key4hep.github.io/key4hep-doc/ for further info. | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
--> | ||
# k4MarlinWrapper tests | ||
|
||
The test cases for the k4MarlinWrapper are somewhat involved in some cases. | ||
Hence, we try to describe their intent and their high level layout a bit here. | ||
We will be refering to the test cases by name as they are defined in the | ||
[`CMakeLists.txt`](./CMakeLists.txt) file in here. | ||
|
||
## `global_converter_maps` | ||
|
||
The main purpose of this test is to make sure that the EDM conversions work as | ||
expected, even if the event is converted piece-by-piece. In order to make that | ||
work the individual converter tool instances have to share a mapping of all | ||
corresponding LCIO and EDM4hep objects that have been converted (in either | ||
direction). This map is referred to as the *global object map*. | ||
|
||
### Setup | ||
|
||
The test is using the | ||
[`global_converter_maps.sh`](./scripts/global_converter_maps.sh) script which | ||
effectively simply runs the | ||
[`test_global_converter_maps.py`](./gaudi_opts/test_global_converter_maps.py) | ||
options file after downloading some input data. This options file uses two | ||
wrapped MarlinProcessors and one GaudiAlgorithm plus some converters inbetween | ||
them: | ||
- `PodioInput` to read the *MCParticles* collection from the input file (in | ||
EDM4hep format) | ||
- [`PseudoRecoProcessor`](./src/PseudoRecoProcessor.cc) creates a reco particle | ||
for every MC particle in the input collection | ||
- An EDM4hep to LCIO converter converts the input MC particles up front | ||
- An LCIO to EDM4hep converter converts the output reco particles afterwards | ||
- [`TrivalMCTruthLinkerProcessor`](./src/TrivialMCTruthLinkerProcessor.cc) | ||
creates trivial links from the MC particles to the reco particles. | ||
- An LCIO to EDM4hep converter converts the output collction to EDM4hep | ||
- [`MCRecoLinkChecker`](./src/MCRecoLinkChecker.cc) is a Gaudi algorithm that | ||
simply checks whether the MC-reco links are as expected. | ||
|
||
Without the global converter map, the second LCIO to EDM4hep converter that is | ||
run after the MC - reco linker will not produce valid MC - reco links, as it | ||
does not have any knowledge about the input MCs and recos. |