Open tmadlener opened 1 month ago
Not with k4FWCore::
functional algorithms as they require collections or std::vector
s of collections
Gaudi::Functional
algorithms with std::vector<TrackerHit>
give compilation error from a template about AnyDataWrapper<std::vector<TrackerHit>>
. Non-interface types give no error
Interesting. What does the compiler complain about in that case? I would have (naively) expected that interface types and non-interface types behave the same in this regard.
The interface types have templated constructor and for some reason it's AnyDataWrapper
wants to construct TrackerHit
with vector<TrackerHit>
rather than use move constructor (I guess) for the vector
Ah. I didn't foresee that. This constructor here would probably have to use some std::enable_if
instead of a (late) static_assert
That should take care of matching a wrong constructor. We might have to add a default constructor as well.
Yes, see linked PR 😁 aidasoft/podio#683
I don't know if my problem is related to this issue, the title made me think so but the topic being discussed is different.
I cannot pass to k4run the input files to process via --IOSvc.input blah.root. On the other hand IOSvc.output foo.root works like a charm. The difference between the two is that output is a string property while input is a vector
This is valid but different issue. Opened #241
I just stumbled over this question while looking at some tracking code. EDM4hep has the
TrackerHit
interface, which means that there is noTrackerHitCollection
. Hence, if I want to move a heterogenous collection ofTrackerHitPlane
andTrackerHit3D
around between algorithms, I have to do it viastd::vector<TrackerHitPlane>
. Is this possible at the moment?