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