52 else if (&s1.
end < &s2.
end)
98 Double_t dz = zOut - parIn.GetZ();
99 Double_t tx = parIn.GetTx();
100 Double_t ty = parIn.GetTy();
103 parOut.SetX(parIn.GetX() + tx * dz);
104 parOut.SetY(parIn.GetY() + ty * dz);
105 parOut.SetTx(parIn.GetTx());
106 parOut.SetTy(parIn.GetTy());
107 parOut.
SetTime(parIn.
GetTime() + tx * timeCoeff + ty * timeCoeff);
110 parIn.CovMatrix(covIn);
114 Double_t t1 = covIn[2];
115 Double_t t4 = covIn[9];
116 Double_t t6 = dz * t4 + t1;
117 covOut[0] = dz * t1 + t6 * dz + covIn[0] +
fScatXSq;
118 Double_t t8 = covIn[6];
119 Double_t t11 = covIn[10];
120 Double_t t12 = dz * t11;
121 Double_t t14 = t12 + covIn[3];
122 Double_t covOut2 = t6;
123 Double_t covOut3 = t14;
124 Double_t t18 = covIn[11];
125 covOut[1] = t14 * dz + dz * t8 + covIn[1];
126 Double_t t21 = covIn[7];
127 Double_t t24 = covIn[12];
128 Double_t t26 = dz * t24 + t21;
129 covOut[5] = dz * t21 + t26 * dz + covIn[5] +
fScatYSq;
130 Double_t covOut5 = t12 + t8;
131 Double_t covOut6 = t26;
132 Double_t t30 = covIn[13];
136 Double_t covOut8 = t11;
137 Double_t t34 = timeCoeff * covOut8;
140 covOut[10] = covOut8;
142 covOut[4] = covOut2 * timeCoeff + covOut3 * timeCoeff + dz * t18 + covIn[4];
143 covOut[8] = covOut5 * timeCoeff + covOut6 * timeCoeff + dz * t30 + covIn[8];
144 covOut[11] = timeCoeff * covOut[9] + t18 + t34;
145 covOut[13] = timeCoeff * covOut[12] + t30 + t34;
146 covOut[14] = timeCoeff * t18 + timeCoeff * t30 + covOut[11] * timeCoeff
147 + covOut[13] * timeCoeff + covIn[14];
149 parOut.SetCovMatrix(covOut);
195 Double_t xIn = par.GetX();
196 Double_t yIn = par.GetY();
197 Double_t txIn = par.GetTx();
198 Double_t tyIn = par.GetTy();
199 Double_t timeIn = par.
GetTime();
202 par.CovMatrix(covIn);
204 Double_t xMes = hit->
GetX();
205 Double_t yMes = hit->
GetY();
206 Double_t timeMes = hit->
GetTime();
208 Double_t dx = hit->
GetDx();
209 Double_t dy = hit->
GetDy();
210 Double_t dxy = hit->
GetDxy();
220 Double_t t1 = covIn[0];
221 Double_t t2 = dt * dt;
222 Double_t t3 = dy * dy;
223 Double_t t4 = t2 * t3;
224 Double_t t5 = covIn[5];
225 Double_t t7 = covIn[14];
226 Double_t t10 = covIn[8];
227 Double_t t11 = t10 * t10;
228 Double_t t12 = t2 * t5 + t3 * t7 + t5 * t7 - t11 + t4;
229 Double_t t14 = dx * dx;
230 Double_t t15 = t2 * t14;
231 Double_t t19 = t14 * t3;
232 Double_t t21 = dxy * dxy;
233 Double_t t23 = t2 * dxy;
234 Double_t t24 = covIn[1];
235 Double_t t27 = t2 * t1;
236 Double_t t29 = t24 * t24;
237 Double_t t31 = t14 * t5;
238 Double_t t34 = t3 * t1;
239 Double_t t36 = covIn[4];
240 Double_t t37 = t36 * t36;
241 Double_t t40 = dxy * t24;
242 Double_t t43 = dxy * t36;
243 Double_t t46 = t1 * t5;
244 Double_t t50 = t24 * t36;
245 Double_t t54 = -t1 * t11 + t4 * t1 + 2 * t43 * t10 + 2 * t50 * t10
246 - t14 * t11 + t15 * t3 + t15 * t5 + t19 * t7 - t2 * t21
247 - t2 * t29 - t21 * t7 - 2 * t23 * t24 + t27 * t5 - t29 * t7
248 - t3 * t37 + t31 * t7 + t34 * t7 - t37 * t5 - 2 * t40 * t7
250 Double_t t55 = 1 / t54;
251 Double_t t61 = dxy * t7 - t36 * t10 + t2 * t24 + t24 * t7 + t23;
252 Double_t t63 = t24 * t61 * t55;
253 Double_t t68 = dxy * t10 + t24 * t10 - t3 * t36 - t36 * t5;
254 Double_t t70 = t36 * t68 * t55;
255 Double_t t71 = t1 * t12 * t55 - t63 + t70;
256 Double_t t72 = xMes - xIn;
257 Double_t t78 = t1 * t7 + t14 * t7 + t15 + t27 - t37;
258 Double_t t83 = t1 * t10 + t14 * t10 - t43 - t50;
259 Double_t t86 = -t1 * t61 * t55 + t24 * t78 * t55 - t36 * t83 * t55;
260 Double_t t87 = yMes - yIn;
261 Double_t t94 = t19 + t31 + t34 - t21 - 2 * t40 + t46 - t29;
262 Double_t t97 = t1 * t68 * t55 - t24 * t83 * t55 + t36 * t94 * t55;
263 Double_t t98 = timeMes - timeIn;
264 xOut = t71 * t72 + t86 * t87 + t97 * t98 + xIn;
265 Double_t t106 = t10 * t68 * t55 + t24 * t12 * t55 - t5 * t61 * t55;
266 Double_t t111 = t10 * t83 * t55;
267 Double_t t112 = t5 * t78 * t55 - t111 - t63;
268 Double_t t120 = t10 * t94 * t55 + t24 * t68 * t55 - t5 * t83 * t55;
269 yOut = t106 * t72 + t112 * t87 + t120 * t98 + yIn;
270 Double_t t122 = covIn[2];
271 Double_t t125 = covIn[6];
272 Double_t t128 = covIn[11];
273 Double_t t131 = t122 * t12 * t55 - t125 * t61 * t55 + t128 * t68 * t55;
274 Double_t t139 = -t122 * t61 * t55 + t125 * t78 * t55 - t128 * t83 * t55;
275 Double_t t147 = t122 * t68 * t55 - t125 * t83 * t55 + t128 * t94 * t55;
276 txOut = t131 * t72 + t139 * t87 + t147 * t98 + txIn;
277 Double_t t149 = covIn[3];
278 Double_t t152 = covIn[7];
279 Double_t t155 = covIn[13];
280 Double_t t158 = t149 * t12 * t55 - t152 * t61 * t55 + t155 * t68 * t55;
281 Double_t t166 = -t149 * t61 * t55 + t152 * t78 * t55 - t155 * t83 * t55;
282 Double_t t174 = t149 * t68 * t55 - t152 * t83 * t55 + t155 * t94 * t55;
283 tyOut = t158 * t72 + t166 * t87 + t174 * t98 + tyIn;
284 Double_t t182 = -t10 * t61 * t55 + t36 * t12 * t55 + t7 * t68 * t55;
285 Double_t t190 = t10 * t78 * t55 - t36 * t61 * t55 - t7 * t83 * t55;
286 Double_t t194 = t7 * t94 * t55 - t111 + t70;
287 timeOut = t182 * t72 + t190 * t87 + t194 * t98 + timeIn;
288 covOut[0] = -t71 * t1 - t86 * t24 - t97 * t36 + t1;
289 covOut[1] = -t97 * t10 - t71 * t24 - t86 * t5 + t24;
290 covOut[5] = -t120 * t10 - t106 * t24 - t112 * t5 + t5;
291 covOut[2] = -t71 * t122 - t86 * t125 - t97 * t128 + t122;
292 covOut[6] = -t106 * t122 - t112 * t125 - t120 * t128 + t125;
293 covOut[9] = -t131 * t122 - t139 * t125 - t147 * t128 + covIn[9];
294 covOut[3] = -t71 * t149 - t86 * t152 - t97 * t155 + t149;
295 covOut[7] = -t106 * t149 - t112 * t152 - t120 * t155 + t152;
296 covOut[10] = -t131 * t149 - t139 * t152 - t147 * t155 + covIn[10];
297 covOut[12] = -t158 * t149 - t166 * t152 - t174 * t155 + covIn[12];
298 covOut[4] = -t86 * t10 - t71 * t36 - t97 * t7 + t36;
299 covOut[8] = -t112 * t10 - t106 * t36 - t120 * t7 + t10;
300 covOut[11] = -t139 * t10 - t131 * t36 - t147 * t7 + t128;
301 covOut[13] = -t166 * t10 - t158 * t36 - t174 * t7 + t155;
302 covOut[14] = -t190 * t10 - t182 * t36 - t194 * t7 + t7;
305 t2 = dy * dy - covOut[5];
307 t4 = covOut[8] * covOut[8];
309 Double_t t6 = dx * dx;
310 t7 = covOut[1] * covOut[1];
311 Double_t t8 = t2 * t6;
312 Double_t t9 = t2 * covOut[0];
313 t10 = -t8 + t7 + t9 + t5;
314 t6 = -covOut[0] + t6;
315 t11 = covOut[4] * covOut[4];
316 t12 = -dxy + covOut[1];
317 Double_t t13 = dxy * covOut[1];
318 t14 = t12 * covOut[8];
320 t5 = -t15 * (t14 * covOut[4] + t13 * (covOut[14] - t3)) - t10 * t3
321 - t11 * t2 - t4 * t6 - (t8 - t7 - t9 - t5) * covOut[14];
323 t8 = -t12 * t3 + t12 * covOut[14] - covOut[4] * covOut[8];
324 t9 = timeMes - timeOut;
325 t14 = -t2 * covOut[4] - t14;
327 t12 = -t12 * covOut[4] - t6 * covOut[8];
334 par.SetCovMatrix(covOut);
337 t1 * (t1 * (t2 * t3 - t2 * covOut[14] - t4) - t7 * t8 - t9 * t14) * t5
338 - t7 * (t1 * t8 - t7 * (t3 * t6 - t6 * covOut[14] - t11) + t9 * t12) * t5
339 - t9 * (t1 * t14 + t12 * t7 - t9 * (t13 * t15 - t10)) * t5;
587 for (std::set<Segment, SegmentComp>::iterator
i =
fSegments.begin();
590 handleSegment(
const_cast<Segment&
>(*
i));
601 for (std::set<Segment, SegmentComp>::iterator
i =
fSegments.begin();