CMS 3D CMS Logo

RKLocalFieldProvider Class Reference

#include <TrackPropagation/RungeKutta/interface/RKLocalFieldProvider.h>

List of all members.

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 Frameframe () 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 FrameglobalFrame ()

Private Attributes

const FrametheFrame
const MagVolumetheVolume
bool transform_


Detailed Description

Definition at line 8 of file RKLocalFieldProvider.h.


Member Typedef Documentation

typedef GloballyPositioned<float> RKLocalFieldProvider::Frame

Definition at line 11 of file RKLocalFieldProvider.h.

typedef Frame::GlobalPoint RKLocalFieldProvider::GlobalPoint

Definition at line 13 of file RKLocalFieldProvider.h.

typedef Frame::GlobalVector RKLocalFieldProvider::GlobalVector

Definition at line 12 of file RKLocalFieldProvider.h.

typedef Frame::LocalPoint RKLocalFieldProvider::LocalPoint

Definition at line 15 of file RKLocalFieldProvider.h.

typedef Frame::LocalVector RKLocalFieldProvider::LocalVector

Definition at line 14 of file RKLocalFieldProvider.h.

typedef Frame::PositionType RKLocalFieldProvider::Position

Definition at line 16 of file RKLocalFieldProvider.h.

typedef Frame::RotationType RKLocalFieldProvider::Rotation

Definition at line 17 of file RKLocalFieldProvider.h.

typedef GlobalVector::BasicVectorType RKLocalFieldProvider::Vector

Definition at line 18 of file RKLocalFieldProvider.h.


Constructor & Destructor Documentation

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) {}

RKLocalFieldProvider::RKLocalFieldProvider ( const MagVolume vol,
const Frame frame 
)

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) {}


Member Function Documentation

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 52 of file RKLocalFieldProvider.h.

References gf.

00052                                 {
00053       static Frame gf( Position(0,0,0), Rotation());
00054       return gf;
00055     }

Vector RKLocalFieldProvider::inTesla ( const Vector v  )  const [inline]

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 }


Member Data Documentation

const Frame& RKLocalFieldProvider::theFrame [private]

Definition at line 49 of file RKLocalFieldProvider.h.

Referenced by frame(), and inTesla().

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:30:48 2009 for CMSSW by  doxygen 1.5.4