File indexing completed on 2024-04-06 12:31:43
0001 #ifndef CylindricalLorentzForce_H
0002 #define CylindricalLorentzForce_H
0003
0004 #include "FWCore/Utilities/interface/Visibility.h"
0005 #include "RKDerivative.h"
0006
0007 class RKLocalFieldProvider;
0008
0009 template <typename T, int N>
0010 class dso_internal CylindricalLorentzForce final : public RKDerivative<T, N> {
0011 public:
0012 typedef RKDerivative<T, N> Base;
0013 typedef typename Base::Scalar Scalar;
0014 typedef typename Base::Vector Vector;
0015
0016 CylindricalLorentzForce(const RKLocalFieldProvider& field) : theField(field) {}
0017
0018 Vector operator()(Scalar r, const Vector& state) const override;
0019
0020 private:
0021 const RKLocalFieldProvider& theField;
0022 };
0023
0024 #include "TrackPropagation/RungeKutta/src/CylindricalLorentzForce.icc"
0025
0026 #endif