Closed omar-moreno closed 4 years ago
Omar, can this be discussed in the software meeting? I understand that you like C++17, but I am quite concerned that pushing to C++17 will make hpstr even less accessible to new people. I am not convinced that std::variant is really a needed feature to achieve the enhancement you are looking for.
Sure.
On Mon, May 4, 2020, 6:37 AM Maurik Holtrop notifications@github.com wrote:
Omar, can this be discussed in the software meeting? I understand that you like C++17, but I am quite concerned that pushing to C++17 will make hpstr even less accessible to new people. I am not convinced that std::variant is really a needed feature to achieve the enhancement you are looking for.
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/JeffersonLab/hpstr/issues/93#issuecomment-623468993, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4JMXCQNCSN5PI6VAEBKWTRP3ALJANCNFSM4MYOFY7A .
Looks like this can be closed. I am currently compiling and running hpstr with -std=c++17 on MacOS without issue. On Ubuntu 20.04 and Centos 7 with gcc 9.3 the LCIO version needs to be "master" or the ldmx-sw fork should be used. No modifications to hpstr are needed though. Can you close this issue, since there is a separate one for the event bus?
At the moment, there are issues with being able to read both an LCIO file and a newly created collection. The reason for this is because each processor is currently accessing the input/output tree directly instead of going through the EventFile which took care of buffering all collections.
I came across this issue when trying to do the following:
Run two processors at a time configured to run in LCIO mode. The first processor converts LCIO mc particles hits to MCParticles while the second processor converts LCIO tracker hits to MCTrackerHits. However, the second processor also wants to add a reference to the MCParticle which requires access to the newly created MCParticle collection. Currently, you can't easily do this in a clean way.
Handling everything through an event bus will fix this and being able to use std::variant would make it easy to implement.