CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/TrackPropagation/RungeKutta/src/RKLocalFieldProvider.h

Go to the documentation of this file.
00001 #ifndef RKLocalFieldProvider_H
00002 #define RKLocalFieldProvider_H
00003 
00004 #include "FWCore/Utilities/interface/Visibility.h"
00005 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h"
00006 
00007 class MagVolume;
00008 
00009 class dso_internal RKLocalFieldProvider {
00010 public:
00011 
00012     typedef GloballyPositioned<float>            Frame;
00013     typedef Frame::GlobalVector                  GlobalVector;
00014     typedef Frame::GlobalPoint                   GlobalPoint;
00015     typedef Frame::LocalVector                   LocalVector;
00016     typedef Frame::LocalPoint                    LocalPoint;
00017     typedef Frame::PositionType                  Position;
00018     typedef Frame::RotationType                  Rotation;
00019     typedef GlobalVector::BasicVectorType        Vector;
00020 
00022     explicit RKLocalFieldProvider( const MagVolume& vol);
00023 
00025     RKLocalFieldProvider( const MagVolume& vol, const Frame& frame);
00026 
00028     Vector inTesla( const LocalPoint& lp) const;
00029 
00030     Vector inTesla( double x, double y, double z) const {
00031         return inTesla( LocalPoint(x,y,z));
00032     }
00033 
00034     Vector inTesla( const Vector& v) const {
00035         return inTesla( LocalPoint(v));
00036     }
00037 
00039     const Frame& frame() const {return theFrame;}
00040 
00041 private:
00042 
00043     const MagVolume & theVolume;
00044     const Frame&     theFrame;
00045     bool             transform_;
00046 
00047 
00048 };
00049 
00050 #endif