eic / EICrecon

EIC Reconstruction - JANA based
https://eic.github.io/EICrecon
GNU Lesser General Public License v3.0
6 stars 28 forks source link

Some EICrecon algorithms are broken with PODIO 00-17-04 #1366

Closed veprbl closed 4 months ago

veprbl commented 5 months ago

Environment: (where does this bug occur, have you tried other environments)

Steps to reproduce: (give a step by step account of how to trigger the bug)

  1. compile and run with PODIO 00-17-04
  2. check empty collections in the output

Expected Result: (what do you expect when you execute the steps above)

Everything works as well as with 00-17-03

Actual Result: (what do you get when you execute the steps above)

At least few calorimetry factories are broken https://github.com/eic/EICrecon/blob/d9b185cac2b6284444f67d31d13aabee73a50f4d/src/algorithms/calorimetry/CalorimeterClusterRecoCoG.cc#L76 https://github.com/eic/EICrecon/blob/d9b185cac2b6284444f67d31d13aabee73a50f4d/src/algorithms/calorimetry/ImagingClusterReco.h#L92 https://github.com/eic/EICrecon/blob/d9b185cac2b6284444f67d31d13aabee73a50f4d/src/algorithms/calorimetry/ImagingClusterReco.h#L95 Possibly others, hard to tell until we fix the error reporting via #1069 or something else.

Adding a try {} catch(...) { std::terminate(); } block detects an std::invalid_argument "Can only add immutable objects to subset collections". A workaround is to add some clone() calls.