00001 // $Id: TrackFastParabolicExtrapolator.cpp,v 1.1 2005/03/16 14:10:05 hernando Exp $ 00002 00003 // CLHEP 00004 #include "CLHEP/Units/PhysicalConstants.h" 00005 00006 #include "GaudiKernel/ToolFactory.h" 00007 00008 // local 00009 #include "TrackFastParabolicExtrapolator.h" 00010 00011 // Needed for the creation of TrackFastParabolicExtrapolator objects. 00012 static const ToolFactory<TrackFastParabolicExtrapolator> s_factory; 00013 const IToolFactory& TrackFastParabolicExtrapolatorFactory = s_factory; 00014 00026 // TrackFastParabolicExtrapolator constructor. 00027 TrackFastParabolicExtrapolator::TrackFastParabolicExtrapolator 00028 (const std::string& type,const std::string& name,const IInterface* parent): 00029 TrackParabolicExtrapolator(type, name, parent) 00030 { 00031 declareInterface<ITrackExtrapolator>( this ); 00032 } 00033 00034 // TrackFastParabolicExtrapolator destructor. 00035 TrackFastParabolicExtrapolator::~TrackFastParabolicExtrapolator() 00036 { 00037 00038 } 00039 00040 // Create the transport matrix dX/dX_0 for pState's 00041 void TrackFastParabolicExtrapolator::updateTransportMatrix( const double dz, 00042 State& ) 00043 { 00044 m_F(1,3) = dz; 00045 m_F(1,5) = 0.5 * m_ax * eplus * c_light * dz * dz; 00046 m_F(2,4) = dz; 00047 m_F(3,5) = m_ax * eplus * c_light * dz; 00048 }