File indexing completed on 2024-04-06 12:22:32
0001 #ifndef TrapezoidalCylindricalMFGrid_H
0002 #define TrapezoidalCylindricalMFGrid_H
0003
0004 #include "MFGrid3D.h"
0005 #include "Trapezoid2RectangleMappingX.h"
0006 #include "FWCore/Utilities/interface/Visibility.h"
0007
0008 namespace magneticfield::interpolation {
0009 class binary_ifstream;
0010 }
0011
0012 class dso_internal TrapezoidalCylindricalMFGrid : public MFGrid3D {
0013 public:
0014 using binary_ifstream = magneticfield::interpolation::binary_ifstream;
0015
0016 TrapezoidalCylindricalMFGrid(binary_ifstream& istr, const GloballyPositioned<float>& vol);
0017
0018 LocalVector uncheckedValueInTesla(const LocalPoint& p) const override;
0019
0020 void dump() const override;
0021
0022 void toGridFrame(const LocalPoint& p, double& a, double& b, double& c) const override;
0023
0024 LocalPoint fromGridFrame(double a, double b, double c) const override;
0025
0026 private:
0027 Trapezoid2RectangleMappingX mapping_;
0028 };
0029
0030 #endif