#include <TrackPropagation/RungeKutta/interface/RKLocalFieldProvider.h>
Public Types | |
typedef GloballyPositioned< float > | Frame |
typedef Frame::GlobalPoint | GlobalPoint |
typedef Frame::GlobalVector | GlobalVector |
typedef Frame::LocalPoint | LocalPoint |
typedef Frame::LocalVector | LocalVector |
typedef Frame::PositionType | Position |
typedef Frame::RotationType | Rotation |
typedef GlobalVector::BasicVectorType | Vector |
Public Member Functions | |
const Frame & | frame () const |
The reference frame in which the field is defined. | |
Vector | inTesla (const Vector &v) const |
Vector | inTesla (double x, double y, double z) const |
Vector | inTesla (const LocalPoint &lp) const |
the argument lp is in the local frame specified in the constructor | |
RKLocalFieldProvider (const MagVolume &vol, const Frame &frame) | |
Local field access to the MagVolume field, transformed to the "frame" frame. | |
RKLocalFieldProvider (const MagVolume &vol) | |
Global field access, result in global frame. | |
Static Private Member Functions | |
static Frame & | globalFrame () |
Private Attributes | |
const Frame & | theFrame |
const MagVolume * | theVolume |
bool | transform_ |
Definition at line 8 of file RKLocalFieldProvider.h.
typedef GloballyPositioned<float> RKLocalFieldProvider::Frame |
Definition at line 11 of file RKLocalFieldProvider.h.
Definition at line 13 of file RKLocalFieldProvider.h.
Definition at line 12 of file RKLocalFieldProvider.h.
Definition at line 15 of file RKLocalFieldProvider.h.
Definition at line 14 of file RKLocalFieldProvider.h.
Definition at line 16 of file RKLocalFieldProvider.h.
Definition at line 17 of file RKLocalFieldProvider.h.
Definition at line 18 of file RKLocalFieldProvider.h.
RKLocalFieldProvider::RKLocalFieldProvider | ( | const MagVolume & | vol | ) |
Global field access, result in global frame.
Global field access, result transformed to frame Local field access to the MagVolume field, in the MagVolume frame
Definition at line 5 of file RKLocalFieldProvider.cc.
00005 : 00006 theVolume( &vol), theFrame(vol), transform_(false) {}
Local field access to the MagVolume field, transformed to the "frame" frame.
Definition at line 8 of file RKLocalFieldProvider.cc.
00008 : 00009 theVolume( &vol), theFrame(frame), transform_(true) {}
const Frame& RKLocalFieldProvider::frame | ( | ) | const [inline] |
The reference frame in which the field is defined.
Definition at line 44 of file RKLocalFieldProvider.h.
References theFrame.
Referenced by RKPropagatorInS::propagateParametersOnPlane().
00044 {return theFrame;}
static Frame& RKLocalFieldProvider::globalFrame | ( | ) | [inline, static, private] |
Definition at line 39 of file RKLocalFieldProvider.h.
References inTesla().
00039 { 00040 return inTesla( LocalPoint(v)); 00041 }
Vector RKLocalFieldProvider::inTesla | ( | double | x, | |
double | y, | |||
double | z | |||
) | const [inline] |
Definition at line 35 of file RKLocalFieldProvider.h.
References inTesla().
00035 { 00036 return inTesla( LocalPoint(x,y,z)); 00037 }
RKLocalFieldProvider::Vector RKLocalFieldProvider::inTesla | ( | const LocalPoint & | lp | ) | const |
the argument lp is in the local frame specified in the constructor
Definition at line 19 of file RKLocalFieldProvider.cc.
References PV3DBase< T, PVType, FrameType >::basicVector(), MagVolume::fieldInTesla(), theFrame, theVolume, GloballyPositioned< T >::toGlobal(), GloballyPositioned< T >::toLocal(), and transform_.
Referenced by inTesla(), PathToPlane2Order::operator()(), CartesianLorentzForce::operator()(), and RKPropagatorInS::propagateParametersOnPlane().
00020 { 00021 if (theVolume != 0) { 00022 if (transform_) { 00023 LocalPoint vlp( theVolume->toLocal( theFrame.toGlobal( lp))); 00024 return theFrame.toLocal( theVolume->toGlobal( theVolume->fieldInTesla( vlp))).basicVector(); 00025 } 00026 else { 00027 return theVolume->fieldInTesla( lp).basicVector(); 00028 } 00029 } 00030 else { 00031 /* 00032 if (transform_) { 00033 GlobalVector gv( MagneticField::inTesla(theFrame.toGlobal(lp))); 00034 return theFrame.toLocal(gv).basicVector(); 00035 } 00036 else { 00037 // the "local" frame is actually global 00038 return MagneticField::inTesla( GlobalPoint( lp.basicVector())).basicVector(); 00039 } 00040 */ 00041 00042 return RKLocalFieldProvider::Vector(0,0,0); 00043 } 00044 }
const Frame& RKLocalFieldProvider::theFrame [private] |
const MagVolume* RKLocalFieldProvider::theVolume [private] |
bool RKLocalFieldProvider::transform_ [private] |