16 long int i, j, k, kk, it;
17 double rob,
res, c[5], darg, absX, roba[5];
40 if(!vk->
vk_fitterControl->m_frozenVersionForBTagging)Scl *= (1.+exp(3.-nIteration));
43 for (it = 0; it < NTRK ; ++it) {
45 if(trk->
Id < 0)
continue;
51 double halfPi=
M_PI/2.;
52 for (it = 0; it < NTRK; ++it) {
54 if(trk->
Id < 0)
continue;
55 c[0]=c[1]=c[2]=c[3]=c[4]=0.;
56 for( k = 0; k < 5; k++){
57 c[0] += trk->
rmnd[k] * trk->
v[0][k];
58 c[1] += trk->
rmnd[k] * trk->
v[1][k];
59 c[2] += trk->
rmnd[k] * trk->
v[2][k];
60 c[3] += trk->
rmnd[k] * trk->
v[3][k];
61 c[4] += trk->
rmnd[k] * trk->
v[4][k];
63 for (k = 0; k < 5; ++k) {
64 darg = c[k]*c[k]*trk->
e[k];
65 if(darg < 1.e-10) darg = 1.e-10;
68 if(irob == 1)
C = 1.58*Scl;
69 if(irob == 2)
C = 2.9846*Scl;
70 if(irob == 3)
C = 2.3849*Scl;
72 if(irob == 5)
C = 1.3998*Scl;
73 if(irob == 6)
C = 1.345 *Scl;
74 if(irob == 7)
C = 1.2107 *Scl;
77 if(irob == 1)rob = 1. / (darg/C2 + 1.);
78 if(irob == 2)rob = C2*(1. - exp(-darg/C2) )/darg;
79 if(irob == 3)rob = C2*log(darg/C2 + 1.)/darg;
80 if(irob == 4)rob = 4.*(sqrt(darg / 2. + 1.) - 1.)/darg;
81 if(irob == 5)rob = 2.*C2*(absX/
C - log(absX/
C + 1.))/darg;
82 if(irob == 6)rob =
C>absX ? 1. : (2*
C/absX -
C*
C/darg) ;
83 if(irob == 7)rob = halfPi>(absX/
C) ? 2*
C*
C*(1-cos(absX/
C))/darg :
84 2*(
C*absX+
C*
C*(1.-halfPi))/darg;
86 if(rob>0.99)roba[k] = 1.;
88 for (i = 0; i < 5; ++i)
if(roba[i]<1.e-3)roba[i]=1.e-3;
90 for (i = 0; i < 5; ++i) {
91 for (j = 0; j <= i; ++j) {
93 for (k = 0; k < 5; ++k) {
94 res += trk->
v[k][i] * trk->
e[k] * trk->
v[k][j]*roba[k];
100 vk->
vk_fitterControl->vk_forcft.robres[it] = roba[0] * roba[1] * roba[2] * roba[3] * roba[4];