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