key4hep / k4MarlinWrapper

GaudifyMarlinProcessors
Apache License 2.0
2 stars 19 forks source link

Converters do not work with `IOSvc` #202

Open tmadlener opened 2 months ago

tmadlener commented 2 months ago

The converters still partially refer to the PodioDataSvc explicitly and will fail with a segmentation violation when used with the IOSvc.

tmadlener commented 2 months ago

This probably needs a bit more work, because currently the PodioDataSvc is pretty ingrained in some places, and for some things I am not sure if they will work with the IOSvc.

The LcioEventAlgo currently puts an LCEventWrapper into the eventSvc https://github.com/key4hep/k4MarlinWrapper/blob/3165e403823a2f6bc80091cc4cef94a1d99f8d2f/k4MarlinWrapper/src/components/LcioEventAlgo.cpp#L67-L68 Does this still work with the IOSvc? @jmcarcell IIUC, this should still work, but the LCEvent will not be available for our functional algorithms, right?

For the converters it should be possible to put in place checks that check the IOSvc, resp. MetadataSvc and the PodioDataSvc.

tmadlener commented 1 month ago

As discussed during the EDM4hep meeting, we will not put too much effort into supporting IOSvc with the k4MarlinWrapper, because that is intended mainly for multithreaded usage, and only very few Marlin processors are actually thread safe. We will keep this issue open, so that it is visible for people who try to use the IOSvc with the wrapper.

If necessary we will come back to this in the future to add support. For now we will mainly try to avoid the segmentation fault and rather give users a proper error for that.