CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h

Go to the documentation of this file.
00001 #ifndef Interpolation_SpecialCylindricalMFGrid_h
00002 #define Interpolation_SpecialCylindricalMFGrid_h
00003 
00014 #include "FWCore/Utilities/interface/Visibility.h"
00015 #include "MFGrid3D.h"
00016 
00017 class binary_ifstream;
00018 
00019 class dso_internal SpecialCylindricalMFGrid : public MFGrid3D {
00020 public:
00021 
00025   SpecialCylindricalMFGrid( binary_ifstream& istr, 
00026                             const GloballyPositioned<float>& vol,
00027                             int gridType);
00028 
00029   virtual LocalVector uncheckedValueInTesla( const LocalPoint& p) const;
00030 
00031   virtual void dump() const;
00032 
00033   virtual void toGridFrame( const LocalPoint& p, double& a, double& b, double& c) const;
00034 
00035   virtual LocalPoint fromGridFrame( double a, double b, double c) const;
00036 
00037 private:
00038 
00039   //double RParAsFunOfPhi[4];     // R = f(phi) or const. (0,2: const. par. ; 1,3: const./sin(phi))
00040 
00041   double stepConstTerm_;
00042   double stepPhiTerm_;
00043   double startConstTerm_;
00044   double startPhiTerm_;
00045 
00046   double stepSize( double sinPhi) const {return stepConstTerm_ + stepPhiTerm_ /sinPhi;}
00047   double startingPoint( double sinPhi) const {return startConstTerm_ + startPhiTerm_/sinPhi;}
00048   bool sector1;
00049 };
00050 
00051 #endif