34 const Double_t CutChi2 = 3.5 * 3.5;
35 const Int_t MaxIter = 3;
43 for (Int_t
i = 0;
i < 6;
i++)
46 r[0] = r[1] = r[2] = 0.;
53 C[0] = C[2] = t.
RR / 3.5 / 3.5;
54 C[5] = (t.
dz / 2 / 3.5) * (t.
dz / 2 / 3.5);
59 for (Int_t iteration = 0; iteration < MaxIter; ++iteration) {
63 Double_t r0[3], C0[6];
65 for (Int_t
i = 0;
i < 3;
i++)
67 for (Int_t
i = 0;
i < 6;
i++)
83 for (vector<CbmKFTrackInterface*>::iterator itr =
Tracks.begin();
93 Double_t a = 0, b = 0;
95 Double_t zeta[2] = {r0[0] -
m[0], r0[1] -
m[1]};
99 Double_t S[3] = {(C0[2] + V[2]), -(C0[1] + V[1]), (C0[0] + V[0])};
100 Double_t s = S[2] * S[0] - S[1] * S[1];
101 Double_t chi2 = zeta[0] * zeta[0] * S[0] + 2 * zeta[0] * zeta[1] * S[1]
102 + zeta[1] * zeta[1] * S[2];
103 if (chi2 > s * CutChi2)
continue;
107 s = V[0] * V[2] - V[1] * V[1];
108 if (s < 1.E-20)
continue;
112 * ((V[3] * V[2] - V[4] * V[1]) * zeta[0]
113 + (-V[3] * V[1] + V[4] * V[0]) * zeta[1]);
116 * ((V[6] * V[2] - V[7] * V[1]) * zeta[0]
117 + (-V[6] * V[1] + V[7] * V[0]) * zeta[1]);
126 Double_t zeta[2] = {
m[0] - (r[0] - a * (r[2] - r0[2])),
127 m[1] - (r[1] - b * (r[2] - r0[2]))};
131 Double_t CHt[3][2] = {{C[0] - a * C[3], C[1] - b * C[3]},
132 {C[1] - a * C[4], C[2] - b * C[4]},
133 {C[3] - a * C[5], C[4] - b * C[5]}};
137 Double_t S[3] = {V[0] + CHt[0][0] - a * CHt[2][0],
138 V[1] + CHt[1][0] - b * CHt[2][0],
139 V[2] + CHt[1][1] - b * CHt[2][1]};
143 Double_t w = S[0] * S[2] - S[1] * S[1];
144 if (w < 1.E-20)
continue;
155 + 2 * zeta[0] * zeta[1] * S[1]
164 for (Int_t
i = 0;
i < 3; ++
i) {
165 K[
i][0] = CHt[
i][0] * S[0] + CHt[
i][1] * S[1];
166 K[
i][1] = CHt[
i][0] * S[1] + CHt[
i][1] * S[2];
171 for (Int_t
i = 0;
i < 3; ++
i)
172 r[
i] += K[
i][0] * zeta[0] + K[
i][1] * zeta[1];
176 C[0] -= K[0][0] * CHt[0][0] + K[0][1] * CHt[0][1];
177 C[1] -= K[1][0] * CHt[0][0] + K[1][1] * CHt[0][1];
178 C[2] -= K[1][0] * CHt[1][0] + K[1][1] * CHt[1][1];
179 C[3] -= K[2][0] * CHt[0][0] + K[2][1] * CHt[0][1];
180 C[4] -= K[2][0] * CHt[1][0] + K[2][1] * CHt[1][1];
181 C[5] -= K[2][0] * CHt[2][0] + K[2][1] * CHt[2][1];