CMS 3D CMS Logo

Public Types | Public Member Functions | Static Private Member Functions | Private Attributes

RKLocalFieldProvider Class Reference

#include <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 (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 FrameglobalFrame ()

Private Attributes

const FrametheFrame
const MagVolumetheVolume
bool transform_

Detailed Description

Definition at line 9 of file RKLocalFieldProvider.h.


Member Typedef Documentation

Definition at line 12 of file RKLocalFieldProvider.h.

Definition at line 14 of file RKLocalFieldProvider.h.

Definition at line 13 of file RKLocalFieldProvider.h.

Definition at line 16 of file RKLocalFieldProvider.h.

Definition at line 15 of file RKLocalFieldProvider.h.

Definition at line 17 of file RKLocalFieldProvider.h.

Definition at line 18 of file RKLocalFieldProvider.h.

Definition at line 19 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.

                                                                :
  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.

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

Referenced by RKPropagatorInS::propagateParametersOnPlane().

{return theFrame;}
static Frame& RKLocalFieldProvider::globalFrame ( ) [inline, static, private]

Definition at line 53 of file RKLocalFieldProvider.h.

References gf.

                                {
      static Frame gf( Position(0,0,0), Rotation());
      return gf;
    }
Vector RKLocalFieldProvider::inTesla ( double  x,
double  y,
double  z 
) const [inline]

Definition at line 36 of file RKLocalFieldProvider.h.

                                                        {
        return inTesla( LocalPoint(x,y,z));
    }
Vector RKLocalFieldProvider::inTesla ( const Vector v) const [inline]

Definition at line 40 of file RKLocalFieldProvider.h.

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

Member Data Documentation

Definition at line 50 of file RKLocalFieldProvider.h.

Referenced by inTesla().

Definition at line 49 of file RKLocalFieldProvider.h.

Referenced by inTesla().

Definition at line 51 of file RKLocalFieldProvider.h.

Referenced by inTesla().