-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow easier extension of data models (e.g. EIC builds on edm4hep) #263
Comments
We have had a similar discussion already in #168, so this is something that is on our list, but maybe can be bumped in priority now that we have another request for this. Just to add a bit of technical context to this. From the c++ side there is in principle nothing that prevents this, as long as you make sure that you have your includes straight. This might necessitate to tweak some podio/python/podio_config_reader.py Lines 227 to 239 in 3cf787f
As you can see, we specifically check that relations are inside the datamodel, but patching out that requirement should in principle not break the code generation, if you want a quick fix already now. However, we have never tested this, so there might be some other hidden issues lurking. |
Conceptually it is not too complicated to do. Thinking about it, so far I think we need this:
With this we should be able to do it. |
In EIC we have found ourselves unable to build on edm4hep, and instead necessitated to reimplement edm4hep in an eicd namespace. While we can create new data types and combine them in the same file with edm4hep data types, this ultimately does not allow that much freedom since we wish to maintian a 'chain of custody' with relations to the originating objects. Pretty quickly that means we cannot extricate ourselves from a web of edm4hep data types.
While it is to some extent intentional that inheritance of podio data models is restricted to avoid fragmentation with incompatible extensions of data models, this is now leading to duplication of the same data model in a different namespace where there is no connection any more to the originating data model. That would appear on the face of it to be a worse situation. As we understand this is not limited to EIC vis-a-vis edm4hep.
We wonder if a more flexible structure that allows some inheriting of data model components can be allowed.
The text was updated successfully, but these errors were encountered: