#include <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 (double x, double y, double z) const |
Vector | inTesla (const Vector &v) 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.
: 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.
: 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().
{return theFrame;}
static Frame& RKLocalFieldProvider::globalFrame | ( | ) | [inline, static, private] |
Vector RKLocalFieldProvider::inTesla | ( | double | x, |
double | y, | ||
double | z | ||
) | const [inline] |
Definition at line 35 of file RKLocalFieldProvider.h.
References inTesla().
{ return inTesla( LocalPoint(x,y,z)); }
Definition at line 39 of file RKLocalFieldProvider.h.
References inTesla().
{ return inTesla( LocalPoint(v)); }
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().
{ if (theVolume != 0) { if (transform_) { LocalPoint vlp( theVolume->toLocal( theFrame.toGlobal( lp))); return theFrame.toLocal( theVolume->toGlobal( theVolume->fieldInTesla( vlp))).basicVector(); } else { return theVolume->fieldInTesla( lp).basicVector(); } } else { /* if (transform_) { GlobalVector gv( MagneticField::inTesla(theFrame.toGlobal(lp))); return theFrame.toLocal(gv).basicVector(); } else { // the "local" frame is actually global return MagneticField::inTesla( GlobalPoint( lp.basicVector())).basicVector(); } */ return RKLocalFieldProvider::Vector(0,0,0); } }
const Frame& RKLocalFieldProvider::theFrame [private] |
Definition at line 49 of file RKLocalFieldProvider.h.
const MagVolume* RKLocalFieldProvider::theVolume [private] |
Definition at line 48 of file RKLocalFieldProvider.h.
Referenced by inTesla().
bool RKLocalFieldProvider::transform_ [private] |
Definition at line 50 of file RKLocalFieldProvider.h.
Referenced by inTesla().