134 {
135 if (RefOld[0] == RefNew[0] && RefOld[1] == RefNew[1] &&
136 RefOld[2] == RefNew[2]) {
137 std::copy(ParOld, ParOld + 5, ParNew);
138 if (CovOld != nullptr) {
139 std::copy(CovOld, CovOld + 15, CovNew);
140 }
141 return;
142 }
143
144
145
146 if (FitControl == nullptr ||
149 nullptr)) {
150
152 PropagateRKM(Charge, ParOld, CovOld, RefOld, RefNew, ParNew, CovNew,
153 FitControl);
154 } else {
155 PropagateSTD(TrkID, Charge, ParOld, CovOld, RefOld, RefNew, ParNew,
156 CovNew, FitControl);
157 }
158 return;
159 }
160
162
163 if (Charge == 0) {
164 PropagateSTD(TrkID, Charge, ParOld, CovOld, RefOld, RefNew, ParNew,
165 CovNew, FitControl);
166 } else {
168 RefNew, ParNew, CovNew,
170 if (ParNew[0] == 0. && ParNew[1] == 0. && ParNew[2] == 0. &&
171 ParNew[3] == 0. && ParNew[4] == 0.) {
172 PropagateRKM(Charge, ParOld, CovOld, RefOld, RefNew, ParNew, CovNew,
173 FitControl);
174 }
175 }
176 return;
177 }
178
180 FitControl->
vk_funcProp(TrkID, Charge, ParOld, CovOld, RefOld, RefNew,
181 ParNew, CovNew);
182 return;
183 }
184
185}
#define vkalUseRKMPropagator
const basePropagator * vk_objProp
const addrPropagator vk_funcProp
virtual void Propagate(long int TrkID, long int Charge, const double *ParOld, const double *CovOld, const double *RefStart, const double *RefEnd, double *ParNew, double *CovNew, IVKalState &istate) const =0