Add an algorithm to post-fill cellID encodings#477
Conversation
cd305de to
4320341
Compare
|
CI failures are unrelated. However, thinking about this, this might be better placed in
Thoughts @jmcarcell |
bf65e08 to
5d28bae
Compare
|
Absorbed #478 for now to at least make some things work. All of this will be properly solved in another way |
Don't use the to be deprecated DataHandle for the PodioDataSvc and instead store directly into format that is understood and usable via Functionals and IOSvc. Use new k4FWCore functionality to assign an id on the fly.
This breaks conversion using the PodioDataSvc since the MetadataSvc does not talk to that frame
Since due to 4c89e08c2a29b4c4b3c82bac06a59797faf2dd82 in k4FWCore, it is not possible to set parameters in the event loop anymore.
This can be necessary if the collection patcher fills empty collections without parameters. However, in some cases it might be necessary to have a CellID encoding parameter set on these empty collections. This is a slightly hacky way of getting these encodings in.
5d28bae to
4b1f0ba
Compare
|
Also absorbed #475 for now and removed the in-event parameter setting for the particle ID meta information. (I think that can be handled in a similar fashion as the CellIDEncoding, but it will be potentially more cumbersome to collect...) |
|
For the CellIDEncoding, this can not be automatically discovered as it depends on what algorithms are going to run. Checking back #478 I have seen that it may not be necessary to fill the CellIDEncodings that we have in
#478 however doesn't work because the |
|
The problems usually arise when "mixing and matching" Running a full chain in LCIO and converting to EDM4hep at the end is rather straight forward. Coming from EDM4hep and then running the same chain is a bit more tricky, but would can be solved by front-loading the information (I think). In the end, I don't think we can (and / or have to) come up with a fully automatic solution. I think for the existing large marlin based configurations this information is stable enough to just collect it once and pass it through some pre-processing step to then load it up front. Whether we store a bit more information than necessary would be a secondary concern to me. Also we want more people to move off of the Marlin wrapper, so this might serve as another nudge ;) |
This can be necessary if the collection patcher fills empty collections without parameters. However, in some cases it might be necessary to have a CellID encoding parameter set on these empty collections. This is a slightly hacky way of getting these encodings in.
BEGINRELEASENOTES
CellIDEncodingFilleralgorithm to set cellID encoding parameters externallyENDRELEASENOTES