SIM: Adding experiment versions and dynamic library loading#13148
Conversation
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
96c037a to
ccde71a
Compare
|
Thanks. Will take a look. |
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
|
Hi @sawenzel, I update the code and the help description AFAICT it does what we discussed. Maybe after testing, should I undraft to test CI? |
|
Thanks. Already took away the draft status. Will test it once more then merge it. |
|
PR is fine for me. Only problem is the build/AliceO2/O2/o2/macOS-arm CI. Some macros seem to fail... should probably take a look. @ktf : Is this a known problem ? |
|
The mac issue is not a known problem (or better, there was a known issue that got hopefully fixed which was masking this other one, I guess). I need to check what is going on. |
|
Actually, I think it's a problem with this PR. It looks like a clash between boost filesystem and std::filesystem. |
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
|
Error while checking build/O2/fullCI for 569748d at 2024-05-27 23:01: Full log here. |
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
|
Works fine for me. Thanks a lot for this development. Merging. |
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
* SIM: Add detectorList option:
Gaining more flexibility with detector geometries.
(a) Allows to select a detector list
from a pre-defined list of ALICE2, ALICE2.1, ALICE3 (corresponding to Run3, Run4, Run5).
Arguments for -m, --skipModules, --readoutDetectors will then be checked against that list.
`o2-sim -n 1 --detectorList ALICE2.1 -m IT3 -o bar2`
(b) Allows to define a custom detector list "MyList" in a JSON file, and following the notation:
`o2-sim --detectorList MyList:${PWD}/myDetector.json`
* SIM: Add dynamic detector library loading
This commit also adds the possibility to instantiate/construct detector modules as a dynamic plugin.
The benefit is that we no longer need to link all possible detector libraries into the simulation executable.
(cherry picked from commit be5cdb9)
Hi @sawenzel, this a draft based on our discussion to have the possibility to specify the detectors via list.
The first commit introduces two new program options, namely
detectorVersion versionanddetectorVersionJSON fileand the relevant parsing. Two cases are covered:detectorVersionspecify: then the version is taken from a predefined map with 'official' versionsAFAICT this 'works' but I did not test this really thoroughly but running 'o2-sim' with different options seems to do what I want.
The second commit introduces dynamic library loading with a custom dll manager modelled as a singleton. As an example I removed the dependency on 'O2{ITS,TPC,TRK}Simulation' which works as expected and I think can be extended to most other detector simulation libraries. I do not have much experience with this and was more fun experiment :).