Skip to content

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.

@christos @amoussa

Edited by Christos Anastopoulos

Merge request reports