#include "CbmPropagatorLit.h" #include "CbmLitTrackPropagator.h" #include "CbmLitToolFactory.h" #include "CbmLitConverter.h" #include "CbmTrackParam.h" CbmPropagatorLit::CbmPropagatorLit( const std::string& type) { CbmLitToolFactory* factory = CbmLitToolFactory::Instance(); fPropagator = factory->CreateTrackPropagator(type); } CbmPropagatorLit::~CbmPropagatorLit() { if (fPropagator) delete fPropagator; } StatusCode CbmPropagatorLit::Propagate( const CbmTrackParam *parIn, CbmTrackParam *parOut, Double_t zOut, Int_t pdg) { *parOut = *parIn; return Propagate(parOut, zOut, pdg); } StatusCode CbmPropagatorLit::Propagate( CbmTrackParam *par, Double_t zOut, Int_t pdg) { CbmLitTrackParam param; LitStatus result; CbmLitConverter::TrackParamToLitTrackParam(par, ¶m); result = fPropagator->Propagate(¶m, zOut, pdg); if (result == kLITSUCCESS) { CbmLitConverter::LitTrackParamToTrackParam(¶m, par); return kCBMSUCCESS; } else { return kCBMERROR; } } void CbmPropagatorLit::TransportMatrix( std::vector& F) { fPropagator->TransportMatrix(F); } void CbmPropagatorLit::TransportMatrix( TMatrixD& F) { fPropagator->TransportMatrix(F); } ClassImp(CbmPropagatorLit)