Model service
The model service is the container and manager for model related equations:
intersection with surfaces, propagation of states, random noise computation, etc.
It contains an extensible collection of Model's. Each Model performs three major operations related with the propagation of State's:
intersection with surfaces, extrapolation of the state vector and calculation of the extrapolation error (covariance matrix).
A State can be propagated to a given surface or length. This implies propagating not only the state vector but also its
covariance matrix.
This model service is not used directly by the user but internally by all other services, except for
selecting the propagation model:
// Select the RP::particle_helix model (particle is because it has MS)
manager.model_svc().select_model(RP::particle_helix);
and for enabling/disabling noisers and model correctors:
// Enable multiple scattering for the particle_helix model
manager.model_svc().enable_noiser(RP::particle_helix, RP::ms, true);
// Disable energy loss correction for the particle_sline model
manager.model_svc().enable_noiser(RP::particle_sline, RP::de_dx, false);