File indexing completed on 2024-04-06 12:31:44
0001 #ifndef RKLocalFieldProvider_H
0002 #define RKLocalFieldProvider_H
0003 #include "FWCore/Utilities/interface/Visibility.h"
0004
0005 #include "FWCore/Utilities/interface/Visibility.h"
0006 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h"
0007
0008 class MagVolume;
0009
0010 class dso_internal RKLocalFieldProvider {
0011 public:
0012 typedef GloballyPositioned<float> Frame;
0013 typedef Frame::GlobalVector GlobalVector;
0014 typedef Frame::GlobalPoint GlobalPoint;
0015 typedef Frame::LocalVector LocalVector;
0016 typedef Frame::LocalPoint LocalPoint;
0017 typedef Frame::PositionType Position;
0018 typedef Frame::RotationType Rotation;
0019 typedef GlobalVector::BasicVectorType Vector;
0020
0021
0022 explicit RKLocalFieldProvider(const MagVolume& vol);
0023
0024
0025 RKLocalFieldProvider(const MagVolume& vol, const Frame& frame);
0026
0027
0028 Vector inTesla(const LocalPoint& lp) const;
0029
0030 Vector inTesla(double x, double y, double z) const { return inTesla(LocalPoint(x, y, z)); }
0031
0032 Vector inTesla(const Vector& v) const { return inTesla(LocalPoint(v)); }
0033
0034
0035 const Frame& frame() const { return theFrame; }
0036
0037 private:
0038 const MagVolume& theVolume;
0039 const Frame& theFrame;
0040 bool transform_;
0041 };
0042
0043 #endif