99 if( !(*this).valid( 0 ) ){
110 double nr_np( nr*np );
111 double denom( 1.0 - nr_np*nr_np );
116 double fac( 1.0 / sqrt( denom ) );
117 Hep3Vector nx( ( nr - nr_np * np ) * fac );
118 Hep3Vector ny( np.cross( nx ) );
120 (*this).set_plane_errs( nx, ny, np );
122 double sigma2( m_err3( 1, 1 ) );
124 error = sqrt( sigma2 ) * fac;
141 const Hep3Vector &nr,
const Hep3Vector &nt )
const
155 if( !(*this).valid( 1 ) ){
160 double nr_np( nr*np );
161 double denom_r( 1.0 - nr_np*nr_np );
165 double nt_np( nt*np );
166 double denom_t( 1.0 - nt_np*nt_np );
167 double fac_r( 1.0 / sqrt( denom_r ) );
168 Hep3Vector nx( ( nr - nr_np * np ) * fac_r );
169 Hep3Vector ny( np.cross( nx ) );
171 (*this).set_plane_errs( nx, ny, np );
173 double sigma2( m_err3( 1, 1 ) );
175 m_err2( 1 ) = sqrt( sigma2 ) * fac_r;
181 double fac_t( 1.0 / sqrt( denom_t ) );
182 sigma2 = m_err3( 2, 2 );
184 m_err2( 2 ) = sqrt( sigma2 ) * fac_t;
189 m_err2( 2 ) = (*this).get_plane_err( np, nt );
192 m_err2( 1 ) = (*this).get_plane_err( np, nr );
193 m_err2( 2 ) = (*this).get_plane_err( np, nt );
216 const Hep3Vector &pv )
const
223 Hep3Vector np( pv.unit() );
230 if( np.x() != 0 || np.y() != 0 ){
241 if( np.y() != 0 || np.z() != 0 ){
252 if( np.z() != 0 || np.x() != 0 ){
262 Hep3Vector nt( np.cross( nr ) );
263 const HepVector & err_v = (*this).get_plane_errs( np, nr, nt );
265 *(m_nv+1) = err_v[1]*nt;
284 Hep3Vector np( pv.unit() );
285 Hep3Vector nz( 0.0, 0.0, 1.0 );
286 Hep3Vector nt( (nz.cross(np)).unit() );
287 Hep3Vector nr( nt.cross(np) );
289 const HepVector & err_v = (*this).get_plane_errs( np, nr, nt );
291 *(m_nv+1) = err_v[1]*nt;