...
What is more: The following is an example of how to instantiate Tracks from Particles.
The approach is simple: Get a Particle, make a Track from it and compare Track momentum and particle momentum. This is kind of the whole idea of a track.
Naive approach 1: Swim the Track to the Origin of the Particle and compare momenta.
OK, that looks pretty bad. Now, remember that the old Track has the wrong reference point, and that it is instantiated at the origin of the MCParticle. Let's compare this then to a new fast mc track that is properly smeared and swum to the origin of the particle.
Aha ! So as long as we use Tracks from the IP (which admittedly is the majority of the tracks) or know exactly where in the detector the Track was created from the particle (...) this seems to do OK.
Just for kicks: The new interface can of course turn off smearing. So let's make some unsmeared tracks and swim them.
A new Track
Interface Design goals:
...