Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

TrLinearExtrapolator Class Reference

#include "TrLinearExtrapolator.h"

Inheritance diagram for TrLinearExtrapolator:

ITrExtrapolator List of all members.

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


Detailed Description

A TrLinearExtrapolator is a ITrExtrapolator which does a 'linear' (i.e. straight line) extrapolation of a TrState. It doesn't take into account MS.

Author:
Eduardo Rodrigues (changes and new features for new track event model)
Date:
25/11/2004
Author:
Rutger van der Eijk
Date:
07-04-1999

Definition at line 24 of file TrLinearExtrapolator.h.


Constructor & Destructor Documentation

TrLinearExtrapolator::TrLinearExtrapolator const std::string &    type,
const std::string &    name,
const IInterface *    parent
 

constructor.

Definition at line 30 of file TrLinearExtrapolator.cpp.

References m_F.

00032                                                                     :
00033   GaudiTool(type, name, parent),
00034   m_F()
00035 {
00036   declareInterface<ITrExtrapolator>( this );
00037 
00038   // create transport matrix
00039   m_F = HepMatrix(5, 5, 1);
00040 
00041 }

TrLinearExtrapolator::~TrLinearExtrapolator   [virtual]
 

destructor.

Definition at line 46 of file TrLinearExtrapolator.cpp.

00047 {
00048 }


Member Function Documentation

void TrLinearExtrapolator::extrapolate TrState   state const [private]
 

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 }

StatusCode TrLinearExtrapolator::propagate TrState   state,
HepPlane3D &    plane,
ParticleID &    pid = ParticleID(211)
 

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.

StatusCode TrLinearExtrapolator::propagate TrState   state,
double    z,
ParticleID &    pid = ParticleID(211)
[virtual]
 

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 }

virtual const HepMatrix& TrLinearExtrapolator::transportMatrix   const [virtual]
 

retrieve transport matrix.

Implements ITrExtrapolator.

Referenced by propagate.


Member Data Documentation

HepMatrix TrLinearExtrapolator::m_F [private]
 

transport matrix.

Definition at line 52 of file TrLinearExtrapolator.h.

Referenced by extrapolate, propagate, and TrLinearExtrapolator.


The documentation for this class was generated from the following files:
Generated on Tue Dec 7 10:30:21 2004 for New Track Event Model by doxygen 1.2.14 written by Dimitri van Heesch, © 1997-2002