ATLASRECTS-4687 : Magnetic Field multithreading
First implementation of multithreading safe magnetic field access.
- Introduce a conditions object for the magnetic field map
AtlasFieldMapCondObj
- Introduce a conditions object for constructing a magentic fiedl cache
AtlasFieldCacheCondObj
taking into account the map and relevant scaling e.g due to IOV-varying magnet currents. - The IPropagator/IPatternParametersPropagator interfaces have been changed to pass in EventContext to allow to avoid the thread lookup in the propagator clients when accessing the read handle for the CondObj.
- The Step propagator now uses the new cache for the field access by default, and a switch allows the old way (via the AtlasFieldSvc) to be used.
- Both Step and RungaKutta propagators use the new interface with
EventContext
. - In general a few clients interacting with the MagneticField need to pass the
EventContext
- The old service is still retained and there is a fallback mechanism
- This prb will go after we are sure all clients are migrated.
Edited by Christos Anastopoulos