-
Notifications
You must be signed in to change notification settings - Fork 19
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
Switch LCIO to EDM4hep conversion to use k4EDM4hep2LcioConv functionality #114
Conversation
Thanks a lot Thomas, I will try it out and report back :) |
I think I was able to significantly simplify this by exploiting more functionality already present in the conversion library. You will need to get the latest versions of both PRs for testing. |
At the moment I don't get very far before it segfaults
should be reproducible by running
from https://github.com/Zehvogel/resolutions (might want to reduce the number of events) |
Thanks for the scripts to easily reproduce this. It took me a bit but I tracked down the seg fault to the |
Thanks for the fast fix Thomas! Simple things first:
I guess that just needs one more if/else case. During the reconstruction I also get what looks like one of these per particle in the event
additionally I think the problem is that |
Thanks for testing so quickly. The CaloHit -> MCParticle association should indeed just be one more case to handle for the association creation. Having a mapping of EDM4hep <-> LCIO MCParticles is something that is not entirely as easy to handle I think, since this is something that needs to be shared between converters in both directions, and it needs to be continuously updated for each conversion that happens. I have to check if that is even possible with GaudiTools. If that is possible that should fix the case we have here, since there is one complete conversion of the sim input to LCIO, right? |
Yes, there is one complete sim input conversion to LCIO in the beginning. For the simple case now with one LCIO to EDM4hep conversion in the beginning and one EDM4hep to LCIO conversion in the end, I do not get the part about any need of updating. The main MCParticle collection (MCParticles) should not change and all other MCParticle collections should be subset collections. Is it not enough to read in the EDM4hep MCParticles collection to populate the mapping at the time of the LCIO to EDM4hep conversion? However there might(will?) be a need for synchronisation if I want to call a regular EDM4hep Gaudi algorithm between a bunch of MarlinWrapper ones? |
It would be, but that is not what is currently happening. At the moment each of the individual converters has its own mapping that is not shared with any of the others. Additionally, the mapping structures are slightly different for the two directions. So what we need is
I hope there is a possibility to transport the information via the TES, otherwise we will have to fall back to some |
@tmadlener So far I noticed no other obvious bugs. Can we get this merged and do the synchronisation later? |
456b30a
to
54276b6
Compare
From what I gathered today CI is failing because:
|
@Zehvogel @andresailer @jmcarcell how do we go forward with this? CI is horribly broken and fixing it might require some work (see #119 ). On the other hand fixing all of that would probably be easier on top of these changes. Do we merge this now (and potentially #118 to at least have some tests back alive)? Or do we want one PR that fixes everything? (Not sure yet how big that would become, or how easy it actually is to get there) |
I would be in favour of merging this (and #118) quickly and continue fixing from there. Merging this will not make anything more broken, right? |
It shouldn't but at this point is not really easy to tell. This seemed to at least have worked for you and for me locally, so I suppose it should be OK. #118 is only fixes, although it doesn't fix everything yet. |
54276b6
to
e542dc5
Compare
Merging this after at least the format check has passed as it is working in manual tests and we need it for #120 |
Something is still off with the |
Hm yes it would be good if that one works. Even better if that test had any meaningful output at all on what goes wrong... :D |
I am not entirely sure why the |
Reduce necessary type information for DataHandles to minimum
DataHandle is not properly initialized when used this way for some reason, going through the DataSvc seems to work
67dd475
to
b393135
Compare
BEGINRELEASENOTES
k4LCIOReader
based conversion from LCIO to EDM4hep with new functionality that has been added tok4EDM4hep2LCIOConv
in Add LCIO to EDM4hep conversion functionality k4EDM4hep2LcioConv#11ENDRELEASENOTES
@Zehvogel you want to give this a go and test it?