Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:43

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