41 int pdg, std::vector<litfloat>* F,
litfloat* length)
44 return Propagate(parOut, zOut, pdg, F, length);
64 bool downstream = dz > 0;
79 stepSize = std::abs(dz);
86 if (length) *length = 0;
89 for (
int iStep = 0; iStep < nofSteps + 1; iStep++) {
97 if (iStep != nofSteps) {
98 z = (downstream) ? z + stepSize : z - stepSize;
105 std::vector<CbmLitMaterialInfo> inter;
111 for (
unsigned int iMat = 0; iMat < inter.size(); iMat++) {
119 std::vector<litfloat>* Fnew = NULL;
121 Fnew =
new std::vector<litfloat>(36, 0.);
132 if (Fnew != NULL)
delete Fnew;
135 fMaterial->Update(par, &mat, pdg, downstream);
151 std::vector<litfloat> A(36);
153 F.assign(A.begin(), A.end());
162 if (std::abs(par->
GetTx()) > maxSlope || std::abs(par->
GetTy()) > maxSlope || std::abs(par->
GetTx()) < minSlope
163 || std::abs(par->
GetTy()) < minSlope || std::abs(par->
GetQp()) > maxQp) {
167 if (std::isnan(par->
GetX()) || std::isnan(par->
GetY()) || std::isnan(par->
GetTx()) || std::isnan(par->
GetTy())
168 || std::isnan(par->
GetQp())) {
Calculation of multiple scattering and energy loss.
bool Mult36(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
Data class for track parameters.
boost::shared_ptr< CbmLitMaterialEffects > MaterialEffectsPtr
boost::shared_ptr< CbmLitGeoNavigator > GeoNavigatorPtr
boost::shared_ptr< CbmLitTrackExtrapolator > TrackExtrapolatorPtr
Calculation of multiple scattering and energy loss.
litfloat GetLength() const
virtual LitStatus Propagate(const CbmLitTrackParam *parIn, CbmLitTrackParam *parOut, litfloat zOut, int pdg, std::vector< litfloat > *F, litfloat *length)
Track parameter propagation.
void UpdateF(std::vector< litfloat > &F, const std::vector< litfloat > &newF)
CbmLitTGeoTrackPropagator(TrackExtrapolatorPtr extrapolator)
TrackExtrapolatorPtr fExtrapolator
MaterialEffectsPtr fMaterial
static litfloat MAXIMUM_PROPAGATION_STEP_SIZE
GeoNavigatorPtr fNavigator
virtual ~CbmLitTGeoTrackPropagator()
bool IsParCorrect(const CbmLitTrackParam *par)
Data class for track parameters.
static const litfloat MINIMUM_PROPAGATION_DISTANCE