-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Currently we have an edm4hep::EventHeader and we fill a collection using the edm4hep::EventHeaderName constant as a name.
EDM4hep/include/edm4hep/Constants.h
Line 24 in 4d20c8b
| static constexpr const char* EventHeaderName = "EventHeader"; |
While this is a workable solution, it has lead to a few issues / fixes related to this:
- Always convert EventHeader to lcio k4MarlinWrapper#162
- PodioInput: always read EventHeader k4FWCore#160 (and Make "always read EventHeader" collection more robust k4FWCore#161)
The major issue is that effectively that this approach has to necessarily build on some naming convention, and once they are fully established they became very hard to change even if there would be better approaches. Another smaller issue is the user side of the whole thing, where user code always looks something like this
auto evtHeaderColl = /* get event header coll from somewhere */
auto evtHeader = evtHeaderColl[0];i.e. there is always an indexing operation necessary to get to the actual EventHeader that one is interested in.
If there is interest in a more "integrated" solution we could think about having a dedicated "identifier field" in the podio::Frame where some data can be stored and more easily accessed.