// ------------------------------------------------------------------------- // ----- CbmLitRK4TrackExtrapolator header file ----- // ----- Created 16/07/07 by A. Lebedev ----- // ------------------------------------------------------------------------- /** CbmLitRK4TrackExtrapolator.h *@author A.Lebedev ** ** **/ #ifndef CBMLITRK4TRACKEXTRAPOLATOR_H_ #define CBMLITRK4TRACKEXTRAPOLATOR_H_ #include "CbmLitTrackExtrapolator.h" #include "CbmLitTrackParam.h" #include "CbmField.h" #include class CbmLitRK4TrackExtrapolator: public CbmLitTrackExtrapolator { public: CbmLitRK4TrackExtrapolator(); virtual ~CbmLitRK4TrackExtrapolator(); // derived from CbmTool virtual LitStatus Initialize(); virtual LitStatus Finalize(); virtual LitStatus Extrapolate( const CbmLitTrackParam *parIn, CbmLitTrackParam *parOut, Double_t zOut); virtual LitStatus Extrapolate( CbmLitTrackParam *par, Double_t zOut ); virtual void TransportMatrix( std::vector& F); virtual void TransportMatrix( TMatrixD& F); protected: void RK4Order( const std::vector& xIn, Double_t zIn, std::vector& xOut, Double_t zOut, std::vector& derivs) const; Double_t CalcOut( Double_t in, const Double_t k[4]) const; void TransportC( const std::vector& cIn, const std::vector& F, std::vector& cOut) const; private: std::vector fF; CbmField *fMagneticField; ClassDef(CbmLitRK4TrackExtrapolator,1) }; #endif //CBMLITRK4TRACKEXTRAPOLATOR_H_