73 double aa, ca, cb, cc, detm;
81 if ( _debug ) std::cout <<
" Emc_helix *** wrong id_cdfztrk =" << Id_cdfztrk << std::endl;
113 if (
abs( a[3] ) > 50.0 ||
abs( a[4] ) > 500.0 )
return ( -5 );
116 Helix helix1( pivot1, a );
118 Phi0 = helix1.
a()[1];
121 Tanl = helix1.
a()[4];
139 if ( xc == 0.0 && yc == 0.0 )
return ( -3 );
142 ca = xc * xc + yc * yc;
143 aa = 0.5 * ( ca - rho * rho +
R_emc *
R_emc );
150 detm = cb * cb - ca * cc;
153 yy[0] = ( cb + sqrt( detm ) ) / ca;
154 xx[0] = ( aa - yy[0] * yc ) / xc;
155 yy[1] = ( cb - sqrt( detm ) ) / ca;
156 xx[1] = ( aa - yy[1] * yc ) / xc;
165 detm = cb * cb - ca * cc;
168 xx[0] = ( cb + sqrt( detm ) ) / ca;
169 yy[0] = ( aa - xx[0] * xc ) / yc;
170 xx[1] = ( cb - sqrt( detm ) ) / ca;
171 yy[1] = ( aa - xx[1] * xc ) / yc;
178 if ( xx[0] * nx + yy[0] * ny > 0.0 )
189 double fi = atan2( emcy, emcx );
191 if ( fi < 0.0 ) fi = pi2 + fi;
196 helix1.
pivot( pivot2 );
199 Phi1 = helix1.
a()[1];
203 Hep3Vector intersec( emcx, emcy,
Z_emc );