Rework magnetic field interface, add Solenoid field implementation
This MR does two things:
- Change the interface used by magnetic fields: the new interface does not explicitly rely on "FieldCells", since this
concept only makes sense for interpolated field maps. For constant fields or external field sources a generic "Cache"
dependent type is now used. This closes ACTS-516. - Add Solenoid field implementation based on @ncalace's calculations. It adheres to the same interface, so it can be used directly as a field implementation. There is a unit test which checks the expected symmetries, and an integration test which compares the solenoid field to a mapped version.
Closes ACTS-516
Edited by Paul Gessinger