#include "TrLinearExtrapolator.h"
Inheritance diagram for TrLinearExtrapolator:
Public Methods | |
TrLinearExtrapolator (const std::string &type, const std::string &name, const IInterface *parent) | |
constructor. More... | |
virtual | ~TrLinearExtrapolator () |
destructor. More... | |
StatusCode | propagate (TrState *state, double z, ParticleID &pid=ParticleID(211)) |
Propagate a TrState to a given z-position. More... | |
StatusCode | propagate (TrState *state, HepPlane3D &plane, ParticleID &pid=ParticleID(211)) |
Propagate a TrState to the intersection point with a given plane. More... | |
virtual const HepMatrix & | transportMatrix () const |
retrieve transport matrix. More... | |
Private Methods | |
void | extrapolate (TrState *state) const |
extrapolate. More... | |
Private Attributes | |
HepMatrix | m_F |
transport matrix. More... |
Definition at line 24 of file TrLinearExtrapolator.h.
|
constructor.
Definition at line 30 of file TrLinearExtrapolator.cpp. References m_F.
|
|
destructor.
Definition at line 46 of file TrLinearExtrapolator.cpp.
00047 { 00048 } |
|
extrapolate.
Definition at line 54 of file TrLinearExtrapolator.cpp. References m_F. Referenced by propagate.
00055 { 00056 // get reference to the TrState vector and covariance 00057 HepVector& tX = state -> state(); 00058 HepSymMatrix& tC = state -> covariance(); 00059 00060 // calculate new state 00061 tX = m_F * tX; // X*F (can this be done more efficiently?) 00062 tC = tC.similarity(m_F); // F*C*F.T() 00063 } |
|
Propagate a TrState to the intersection point with a given plane.
Definition at line 97 of file TrLinearExtrapolator.cpp. References m_F, ITrExtrapolator::position, propagate, ITrExtrapolator::slopes, and transportMatrix. |
|
Propagate a TrState to a given z-position.
Implements ITrExtrapolator. Definition at line 68 of file TrLinearExtrapolator.cpp. References extrapolate, and m_F. Referenced by propagate.
00070 { 00071 00072 // check for state 00073 if ( !state ) { 00074 return Error( "propagate() should be called with a pointer to a TrState !", 00075 StatusCode::FAILURE); 00076 } 00077 00078 // create transport matrix 00079 m_F = HepMatrix(5, 5, 1); 00080 00081 // check current z-position 00082 double dz = zNew - state -> z(); 00083 if ( fabs(dz) > TrGeneral::hiTolerance ) { 00084 m_F[0][2] = dz; // tx*dz 00085 m_F[1][3] = dz; // ty*dz 00086 // extrapolate 00087 extrapolate(state); 00088 state -> setZ( zNew ); 00089 } 00090 00091 return StatusCode::SUCCESS; 00092 } |
|
retrieve transport matrix.
Implements ITrExtrapolator. Referenced by propagate. |
|
transport matrix.
Definition at line 52 of file TrLinearExtrapolator.h. Referenced by extrapolate, propagate, and TrLinearExtrapolator. |