CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Private Member Functions | Private Attributes
RKLocalFieldProvider Class Reference

#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 Frameframe () const
 The reference frame in which the field is defined. More...
 
Vector inTesla (const LocalPoint &lp) const
 the argument lp is in the local frame specified in the constructor More...
 
Vector inTesla (double x, double y, double z) const
 
Vector inTesla (const Vector &v) const
 
 RKLocalFieldProvider (const MagVolume &vol)
 Global field access, result in global frame. More...
 
 RKLocalFieldProvider (const MagVolume &vol, const Frame &frame)
 Local field access to the MagVolume field, transformed to the "frame" frame. More...
 

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.

5  :
6  theVolume( &vol), theFrame(vol), transform_(false) {}
const MagVolume * theVolume
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.

8  :
9  theVolume( &vol), theFrame(frame), transform_(true) {}
const MagVolume * theVolume
const Frame & frame() const
The reference frame in which the field is defined.

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

45 {return theFrame;}
static Frame& RKLocalFieldProvider::globalFrame ( )
inlinestaticprivate

Definition at line 53 of file RKLocalFieldProvider.h.

53  {
54  static Frame gf( Position(0,0,0), Rotation());
55  return gf;
56  }
Frame::PositionType Position
Frame::RotationType Rotation
GloballyPositioned< float > Frame
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 CartesianLorentzForce::operator()(), PathToPlane2Order::operator()(), and RKPropagatorInS::propagateParametersOnPlane().

20 {
21  if (theVolume != 0) {
22  if (transform_) {
25  }
26  else {
27  return theVolume->fieldInTesla( lp).basicVector();
28  }
29  }
30  else {
31  /*
32  if (transform_) {
33  GlobalVector gv( MagneticField::inTesla(theFrame.toGlobal(lp)));
34  return theFrame.toLocal(gv).basicVector();
35  }
36  else {
37  // the "local" frame is actually global
38  return MagneticField::inTesla( GlobalPoint( lp.basicVector())).basicVector();
39  }
40  */
41 
42  return RKLocalFieldProvider::Vector(0,0,0);
43  }
44 }
const MagVolume * theVolume
LocalPoint toLocal(const GlobalPoint &gp) const
GlobalPoint toGlobal(const LocalPoint &lp) const
LocalVector fieldInTesla(const LocalPoint &lp) const
Definition: MagVolume.cc:11
GlobalVector::BasicVectorType Vector
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:56
Vector RKLocalFieldProvider::inTesla ( double  x,
double  y,
double  z 
) const
inline

Definition at line 36 of file RKLocalFieldProvider.h.

36  {
37  return inTesla( LocalPoint(x,y,z));
38  }
double double double z
Frame::LocalPoint LocalPoint
x
Definition: VDTMath.h:216
Vector inTesla(const LocalPoint &lp) const
the argument lp is in the local frame specified in the constructor
Vector RKLocalFieldProvider::inTesla ( const Vector v) const
inline

Definition at line 40 of file RKLocalFieldProvider.h.

40  {
41  return inTesla( LocalPoint(v));
42  }
Frame::LocalPoint LocalPoint
mathSSE::Vec4< T > v
Vector inTesla(const LocalPoint &lp) const
the argument lp is in the local frame specified in the constructor

Member Data Documentation

const Frame& RKLocalFieldProvider::theFrame
private

Definition at line 50 of file RKLocalFieldProvider.h.

Referenced by inTesla().

const MagVolume* RKLocalFieldProvider::theVolume
private

Definition at line 49 of file RKLocalFieldProvider.h.

Referenced by inTesla().

bool RKLocalFieldProvider::transform_
private

Definition at line 51 of file RKLocalFieldProvider.h.

Referenced by inTesla().