Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

TrExtrapolator Class Reference

#include <TrackExtrapolator/TrExtrapolator.h>

Inheritance diagram for TrExtrapolator:

TrLinearExtrapolator List of all members.

Public Member Functions

virtual StatusCode propagate (const Track &track, double z, State &state, ParticleID pid=ParticleID(211))
 Propagate a track to a given z-position.
virtual StatusCode propagate (const Track &track, const HepPlane3D &plane, State &state, ParticleID pid=ParticleID(211))
 Propagate a track to the intersection point with a given plane.
virtual StatusCode propagate (State &state, double z, ParticleID pid=ParticleID(211))
 Propagate a state to a given z-position.
virtual StatusCode propagate (State &state, const HepPlane3D &plane, ParticleID pid=ParticleID(211))
 Propagate a state to the intersection point with a given plane.
virtual StatusCode positionAndMomentum (const Track &track, double z, HepPoint3D &pos, HepVector3D &mom, HepSymMatrix &cov6D, ParticleID pid=ParticleID(211))
virtual StatusCode positionAndMomentum (const Track &track, const HepPlane3D &plane, HepPoint3D &pos, HepVector3D &mom, HepSymMatrix &cov6D, ParticleID pid=ParticleID(211))
virtual StatusCode positionAndMomentum (const Track &track, double z, HepPoint3D &pos, HepVector3D &mom, ParticleID pid=ParticleID(211))
 Retrieve the position and momentum vectors of a track at a given z-position.
virtual StatusCode positionAndMomentum (const Track &track, const HepPlane3D &plane, HepPoint3D &pos, HepVector3D &mom, ParticleID pid=ParticleID(211))
 Retrieve the position and momentum vectors at the intersection of a track with a given plane.
virtual StatusCode position (const Track &track, double z, HepPoint3D &pos, HepSymMatrix &errPos, ParticleID pid=ParticleID(211))
 Retrieve the 3D-position vector and error matrix of a track at a given z-position.
virtual StatusCode position (const Track &track, const HepPlane3D &plane, HepPoint3D &pos, HepSymMatrix &errPos, ParticleID pid=ParticleID(211))
 Retrieve the 3D-position vector and error matrix at the intersection of a track with a given plane.
virtual StatusCode position (const Track &track, double z, HepPoint3D &pos, ParticleID pid=ParticleID(211))
 Retrieve the 3D-position vector of a track at a given z-position.
virtual StatusCode position (const Track &track, const HepPlane3D &plane, HepPoint3D &pos, ParticleID pid=ParticleID(211))
 Retrieve the 3D-position vector at the intersection of a track with a given plane.
virtual StatusCode slopes (const Track &track, double z, HepVector3D &slopes, HepSymMatrix &errSlopes, ParticleID pid=ParticleID(211))
 Retrieve the slopes (dx/dz,dy/dz,1) and error matrix of a track at a given z-position.
virtual StatusCode slopes (const Track &track, const HepPlane3D &plane, HepVector3D &slopes, HepSymMatrix &errSlopes, ParticleID pid=ParticleID(211))
 Retrieve the slopes (dx/dz,dy/dz,1) and error matrix at the intersection of a track with a given plane.
virtual StatusCode slopes (const Track &track, double z, HepVector3D &slopes, ParticleID pid=ParticleID(211))
 Retrieve the slopes (dx/dz,dy/dz,1) of a track at a given z-position.
virtual StatusCode slopes (const Track &track, const HepPlane3D &plane, HepVector3D &slopes, ParticleID pid=ParticleID(211))
 Retrieve the slopes (dx/dz,dy/dz,1) at the intersection of a track with a given plane.
virtual StatusCode p (const Track &track, double z, double &p, ParticleID pid=ParticleID(211))
 Retrieve the momentum of a track at a given z-position.
virtual StatusCode p (const Track &track, const HepPlane3D &plane, double &p, ParticleID pid=ParticleID(211))
 Retrieve the momentum at the intersection of a track with a given plane.
virtual StatusCode pt (const Track &track, double z, double &pt, ParticleID pid=ParticleID(211))
 Retrieve the transverse momentum of a track at a given z-position.
virtual StatusCode pt (const Track &track, const HepPlane3D &plane, double &pt, ParticleID pid=ParticleID(211))
 Retrieve the transverse momentum at the intersection of a track with a given plane.
virtual StatusCode momentum (const Track &track, double z, HepVector3D &mom, HepSymMatrix &errMom, ParticleID pid=ParticleID(211))
 Retrieve the momentum vector and error matrix of a track at a given z-position.
virtual StatusCode momentum (const Track &track, const HepPlane3D &plane, HepVector3D &mom, HepSymMatrix &errMom, ParticleID pid=ParticleID(211))
 Retrieve the momentum vector and error matrix at the intersection of a track with a given plane.
virtual StatusCode momentum (const Track &track, double z, HepVector3D &mom, ParticleID pid=ParticleID(211))
 Retrieve the momentum vector of a track at a given z-position.
virtual StatusCode momentum (const Track &track, const HepPlane3D &plane, HepVector3D &mom, ParticleID pid=ParticleID(211))
 Retrieve the momentum vector at the intersection of a track with a given plane.
virtual const HepMatrix & transportMatrix () const
 retrieve transport matrix
 TrExtrapolator (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor.
virtual ~TrExtrapolator ()
 Destructor.

Protected Member Functions

virtual void updateState (State &state, double z) const
 Update the properties of the state.

Protected Attributes

HepMatrix m_F
 Transport matrix.

Detailed Description

A TrExtrapolator is a base class implementing methods from the ITrExtrapolator interface.

Author:
Eduardo Rodrigues
Date:
2004-12-17

Definition at line 22 of file TrExtrapolator.h.


Constructor & Destructor Documentation

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

Standard constructor.

Definition at line 479 of file TrExtrapolator.cpp.

References m_F.

00482   : GaudiTool ( type, name , parent )
00483   , m_F()
00484 {
00485   declareInterface<ITrExtrapolator>( this );
00486 
00487   // create transport matrix
00488   m_F = HepMatrix(5, 5, 1);
00489 }

TrExtrapolator::~TrExtrapolator  )  [virtual]
 

Destructor.

Definition at line 494 of file TrExtrapolator.cpp.

00494 {}; 


Member Function Documentation

StatusCode TrExtrapolator::momentum const Track track,
const HepPlane3D &  plane,
HepVector3D &  mom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum vector at the intersection of a track with a given plane.

Definition at line 453 of file TrExtrapolator.cpp.

References State::momentum(), and propagate().

00457 {
00458   State tmpState;
00459 
00460   StatusCode sc = propagate( track, plane, tmpState, pid );
00461 
00462   if ( sc.isSuccess() ) {
00463     mom    = tmpState.momentum();
00464   }
00465   return sc;
00466 }

StatusCode TrExtrapolator::momentum const Track track,
double  z,
HepVector3D &  mom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum vector of a track at a given z-position.

Definition at line 434 of file TrExtrapolator.cpp.

References State::momentum(), and propagate().

00438 {
00439   State tmpState;
00440 
00441   StatusCode sc = propagate( track, z, tmpState, pid );
00442 
00443   if ( sc.isSuccess() ) {
00444     mom    = tmpState.momentum();
00445   }
00446   return sc;
00447 }

StatusCode TrExtrapolator::momentum const Track track,
const HepPlane3D &  plane,
HepVector3D &  mom,
HepSymMatrix &  errMom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum vector and error matrix at the intersection of a track with a given plane.

Definition at line 413 of file TrExtrapolator.cpp.

References State::errMomentum(), State::momentum(), and propagate().

00418 {
00419   State tmpState;
00420 
00421   StatusCode sc = propagate( track, plane, tmpState, pid );
00422 
00423   if ( sc.isSuccess() ) {
00424     mom    = tmpState.momentum();
00425     errMom = tmpState.errMomentum();
00426   }
00427   return sc;
00428 
00429 }

StatusCode TrExtrapolator::momentum const Track track,
double  z,
HepVector3D &  mom,
HepSymMatrix &  errMom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum vector and error matrix of a track at a given z-position.

Definition at line 392 of file TrExtrapolator.cpp.

References State::errMomentum(), State::momentum(), and propagate().

00397 {
00398   State tmpState;
00399 
00400   StatusCode sc = propagate( track, z, tmpState, pid );
00401 
00402   if ( sc.isSuccess() ) {
00403     mom    = tmpState.momentum();
00404     errMom = tmpState.errMomentum();
00405   }
00406   return sc;
00407 }

StatusCode TrExtrapolator::p const Track track,
const HepPlane3D &  plane,
double &  p,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum at the intersection of a track with a given plane.

Definition at line 334 of file TrExtrapolator.cpp.

References State::p(), p(), and propagate().

00338 {
00339   State tmpState;
00340 
00341   StatusCode sc = propagate( track, plane, tmpState, pid );
00342 
00343   if ( sc.isSuccess() ) {
00344     p = tmpState.p();
00345   }
00346   
00347   return sc;
00348 }

StatusCode TrExtrapolator::p const Track track,
double  z,
double &  p,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the momentum of a track at a given z-position.

Definition at line 316 of file TrExtrapolator.cpp.

References State::p(), p(), and propagate().

Referenced by p().

00320 {
00321   State tmpState;
00322 
00323   StatusCode sc = propagate( track, z, tmpState, pid );
00324 
00325   if ( sc.isSuccess() ) {
00326     p = tmpState.p();
00327   }
00328   return sc;
00329 }

StatusCode TrExtrapolator::position const Track track,
const HepPlane3D &  plane,
HepPoint3D &  pos,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the 3D-position vector at the intersection of a track with a given plane.

Definition at line 216 of file TrExtrapolator.cpp.

References State::position(), and propagate().

00220 {
00221   State tmpState;
00222 
00223   StatusCode sc = propagate( track, plane, tmpState, pid );
00224 
00225   if ( sc.isSuccess() ) {
00226     pos    = tmpState.position();
00227   }
00228 
00229   return sc;
00230 }

StatusCode TrExtrapolator::position const Track track,
double  z,
HepPoint3D &  pos,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the 3D-position vector of a track at a given z-position.

Definition at line 195 of file TrExtrapolator.cpp.

References State::position(), and propagate().

00200 {
00201   State tmpState;
00202 
00203   StatusCode sc = propagate( track, z, tmpState, pid );
00204 
00205   if ( sc.isSuccess() ) {
00206     pos    = tmpState.position();
00207   }
00208   
00209   return sc;
00210 }

StatusCode TrExtrapolator::position const Track track,
const HepPlane3D &  plane,
HepPoint3D &  pos,
HepSymMatrix &  errPos,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the 3D-position vector and error matrix at the intersection of a track with a given plane.

Definition at line 175 of file TrExtrapolator.cpp.

References State::errPosition(), State::position(), and propagate().

00180 {
00181   State tmpState;
00182 
00183   StatusCode sc = propagate( track, plane, tmpState, pid );
00184 
00185   if ( sc.isSuccess() ) {
00186     pos    = tmpState.position();
00187     errPos = tmpState.errPosition();
00188   }
00189   return sc;
00190 }

StatusCode TrExtrapolator::position const Track track,
double  z,
HepPoint3D &  pos,
HepSymMatrix &  errPos,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the 3D-position vector and error matrix of a track at a given z-position.

Definition at line 152 of file TrExtrapolator.cpp.

References State::errPosition(), State::position(), and propagate().

00158 {
00159   State tmpState;
00160 
00161   StatusCode sc = propagate( track, z, tmpState, pid );
00162 
00163   if ( sc.isSuccess() ) {
00164     pos    = tmpState.position();
00165     errPos = tmpState.errPosition();
00166   }
00167   
00168   return sc;
00169 }

StatusCode TrExtrapolator::positionAndMomentum const Track track,
const HepPlane3D &  plane,
HepPoint3D &  pos,
HepVector3D &  mom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the position and momentum vectors at the intersection of a track with a given plane.

Definition at line 129 of file TrExtrapolator.cpp.

References State::momentum(), State::position(), and propagate().

00134 {
00135 
00136   State tmpState;
00137 
00138   StatusCode sc = propagate( track, plane, tmpState, pid );
00139 
00140   if ( sc.isSuccess() ) {
00141     pos = tmpState.position();
00142     mom = tmpState.momentum();
00143   }
00144   
00145   return sc;
00146 }

StatusCode TrExtrapolator::positionAndMomentum const Track track,
double  z,
HepPoint3D &  pos,
HepVector3D &  mom,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the position and momentum vectors of a track at a given z-position.

Definition at line 106 of file TrExtrapolator.cpp.

References State::momentum(), State::position(), and propagate().

00111 {
00112   State tmpState;
00113 
00114   StatusCode sc = propagate( track, z, tmpState, pid );
00115 
00116   if ( sc.isSuccess() ) {
00117     pos = tmpState.position();
00118     mom = tmpState.momentum();
00119   }
00120   
00121   return sc;
00122 
00123 }

StatusCode TrExtrapolator::positionAndMomentum const Track track,
const HepPlane3D &  plane,
HepPoint3D &  pos,
HepVector3D &  mom,
HepSymMatrix &  cov6D,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the position and momentum vectors and the corresponding 6D covariance matrix (pos:1->3,mom:4-6) at the intersection of a track with a given plane

Definition at line 86 of file TrExtrapolator.cpp.

References State::positionAndMomentum(), and propagate().

00092 {
00093   State tmpState;
00094 
00095   StatusCode sc = propagate( track, plane, tmpState, pid );
00096 
00097   if ( sc.isSuccess() ) 
00098     tmpState.positionAndMomentum( pos, mom, cov6D );
00099 
00100   return sc;
00101 }

StatusCode TrExtrapolator::positionAndMomentum const Track track,
double  z,
HepPoint3D &  pos,
HepVector3D &  mom,
HepSymMatrix &  cov6D,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the position and momentum vectors and the corresponding 6D covariance matrix (pos:1->3,mom:4-6) of a track at a given z-position

Returns:
status code the position of the track the momentum of the track the full position-momentum covariance matrix
Parameters:
the input track
the z-position at which to extrapolate

Definition at line 64 of file TrExtrapolator.cpp.

References State::positionAndMomentum(), and propagate().

00070 {
00071   State tmpState;
00072 
00073   StatusCode sc = propagate( track, z, tmpState, pid );
00074 
00075   if ( sc.isSuccess() ) 
00076     tmpState.positionAndMomentum( pos, mom, cov6D );
00077 
00078   return sc;
00079 }

virtual StatusCode TrExtrapolator::propagate State state,
const HepPlane3D &  plane,
ParticleID  pid = ParticleID(211)
[virtual]
 

Propagate a state to the intersection point with a given plane.

virtual StatusCode TrExtrapolator::propagate State state,
double  z,
ParticleID  pid = ParticleID(211)
[virtual]
 

Propagate a state to a given z-position.

Reimplemented in TrLinearExtrapolator.

StatusCode TrExtrapolator::propagate const Track track,
const HepPlane3D &  plane,
State state,
ParticleID  pid = ParticleID(211)
[virtual]
 

Propagate a track to the intersection point with a given plane.

Definition at line 45 of file TrExtrapolator.cpp.

References propagate().

00049 {
00050   // get state closest to the plane
00051   const State& closest = track.closestState( plane );
00052   state = closest;
00053 
00054   // propagate the closest state
00055   StatusCode sc = propagate( state, plane, pid );
00056 
00057   return sc;
00058 }

StatusCode TrExtrapolator::propagate const Track track,
double  z,
State state,
ParticleID  pid = ParticleID(211)
[virtual]
 

Propagate a track to a given z-position.

Definition at line 27 of file TrExtrapolator.cpp.

Referenced by momentum(), p(), position(), positionAndMomentum(), propagate(), pt(), and slopes().

00031 {
00032   // get state closest to z
00033   const State& closest = track.closestState( z );
00034   state = closest;
00035 
00036   // propagate the closest state
00037   StatusCode sc = propagate( state, z, pid );
00038 
00039   return sc;
00040 }

StatusCode TrExtrapolator::pt const Track track,
const HepPlane3D &  plane,
double &  pt,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the transverse momentum at the intersection of a track with a given plane.

Definition at line 372 of file TrExtrapolator.cpp.

References propagate(), State::pt(), and pt().

00376 {
00377   State tmpState;
00378 
00379   StatusCode sc = propagate( track, plane, tmpState, pid );
00380 
00381   if ( sc.isSuccess() ) {
00382     pt = tmpState.pt();
00383   }
00384   return sc;
00385 
00386 }

StatusCode TrExtrapolator::pt const Track track,
double  z,
double &  pt,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the transverse momentum of a track at a given z-position.

Definition at line 353 of file TrExtrapolator.cpp.

References propagate(), State::pt(), and pt().

Referenced by pt().

00357 {
00358   State tmpState;
00359 
00360   StatusCode sc = propagate( track, z, tmpState, pid );
00361 
00362   if ( sc.isSuccess() ) {
00363     pt = tmpState.pt();
00364   }
00365   return sc;
00366 }

StatusCode TrExtrapolator::slopes const Track track,
const HepPlane3D &  plane,
HepVector3D &  slopes,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the slopes (dx/dz,dy/dz,1) at the intersection of a track with a given plane.

Definition at line 298 of file TrExtrapolator.cpp.

References propagate(), State::slopes(), and slopes().

00302 {
00303   State tmpState;
00304 
00305   StatusCode sc = propagate( track, plane, tmpState, pid );
00306 
00307   if ( sc.isSuccess() ) {
00308     slopes = tmpState.slopes();
00309   }
00310   return sc;
00311 }

StatusCode TrExtrapolator::slopes const Track track,
double  z,
HepVector3D &  slopes,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the slopes (dx/dz,dy/dz,1) of a track at a given z-position.

Definition at line 279 of file TrExtrapolator.cpp.

References propagate(), State::slopes(), and slopes().

00283 {
00284   State tmpState;
00285 
00286   StatusCode sc = propagate( track, z, tmpState, pid );
00287 
00288   if ( sc.isSuccess() ) {
00289     slopes    = tmpState.slopes();
00290   }
00291   return sc;
00292 }

StatusCode TrExtrapolator::slopes const Track track,
const HepPlane3D &  plane,
HepVector3D &  slopes,
HepSymMatrix &  errSlopes,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the slopes (dx/dz,dy/dz,1) and error matrix at the intersection of a track with a given plane.

Definition at line 258 of file TrExtrapolator.cpp.

References State::errSlopes(), propagate(), State::slopes(), and slopes().

00263 {
00264   State tmpState;
00265 
00266   StatusCode sc = propagate( track, plane, tmpState, pid );
00267 
00268   if ( sc.isSuccess() ) {
00269     slopes    = tmpState.slopes();
00270     errSlopes = tmpState.errSlopes();
00271   }
00272 
00273   return sc;
00274 }

StatusCode TrExtrapolator::slopes const Track track,
double  z,
HepVector3D &  slopes,
HepSymMatrix &  errSlopes,
ParticleID  pid = ParticleID(211)
[virtual]
 

Retrieve the slopes (dx/dz,dy/dz,1) and error matrix of a track at a given z-position.

Definition at line 236 of file TrExtrapolator.cpp.

References State::errSlopes(), propagate(), State::slopes(), and slopes().

Referenced by slopes().

00241 {
00242   State tmpState;
00243 
00244   StatusCode sc = propagate( track, z, tmpState, pid );
00245 
00246   if ( sc.isSuccess() ) {
00247     slopes    = tmpState.slopes();
00248     errSlopes = tmpState.errSlopes();
00249   }
00250   
00251   return sc;
00252 }

const HepMatrix & TrExtrapolator::transportMatrix  )  const [virtual]
 

retrieve transport matrix

Definition at line 471 of file TrExtrapolator.cpp.

References m_F.

00472 {
00473   return m_F;
00474 };

void TrExtrapolator::updateState State state,
double  z
const [protected, virtual]
 

Update the properties of the state.

Definition at line 499 of file TrExtrapolator.cpp.

References State::covariance(), m_F, State::setZ(), and State::state().

Referenced by TrLinearExtrapolator::propagate().

00500 {
00501   // get reference to the State vector and covariance
00502   HepVector& tX = state.state();
00503   HepSymMatrix& tC = state.covariance();
00504 
00505   // calculate new state
00506   state.setZ( z );
00507   tX = m_F * tX; // X*F  (can this be done more efficiently?)
00508   tC = tC.similarity(m_F); // F*C*F.T()
00509 }


Member Data Documentation

HepMatrix TrExtrapolator::m_F [protected]
 

Transport matrix.

Reimplemented in TrLinearExtrapolator.

Definition at line 201 of file TrExtrapolator.h.

Referenced by transportMatrix(), TrExtrapolator(), and updateState().


The documentation for this class was generated from the following files:
Generated on Thu Apr 7 22:43:32 2005 for New Track Event Model by doxygen 1.4.1