BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
KalmanFit Namespace Reference

Classes

class  Bfield
class  Helix
 Helix parameter class. More...
class  Lpar
class  Lpav
class  zav

Functions

std::ostream & operator<< (std::ostream &o, const zav &z)
int intersect (const Lpar &lp1, const Lpar &lp2, HepVector &v1, HepVector &v2)
std::ostream & operator<< (std::ostream &o, Lpar &s)
float prob_ (float *, int *)
std::ostream & operator<< (std::ostream &o, const Lpav &a)
Lpav operator+ (const Lpav &la1, const Lpav &la2)

Function Documentation

◆ intersect()

int KalmanFit::intersect ( const Lpar & lp1,
const Lpar & lp2,
HepVector & v1,
HepVector & v2 )

Definition at line 256 of file KalFitAlg/src/lpav/Lpar.cxx.

256 {
257 HepVector cen1( lp1.center() );
258 HepVector cen2( lp2.center() );
259 double dx = cen1( 1 ) - cen2( 1 );
260 double dy = cen1( 2 ) - cen2( 2 );
261 double dc = sqrt( dx * dx + dy * dy );
262 if ( dc < fabs( 0.5 / lp1.kappa() ) + fabs( 0.5 / lp2.kappa() ) )
263 {
264 double a1 = std::sqrt( lp1.alpha() ) + std::sqrt( lp1.beta() );
265 double a2 = std::sqrt( lp2.alpha() ) + std::sqrt( lp2.beta() );
266 double a3 = lp1.alpha() * lp2.alpha() + lp1.beta() * lp2.beta();
267 double det = lp1.alpha() * lp2.beta() - lp1.beta() * lp2.alpha();
268 if ( fabs( det ) > 1e-12 )
269 {
270 double c1 = a2 * std::sqrt( lp1.kappa() ) + a1 * std::sqrt( lp2.kappa() ) -
271 2.0 * a3 * lp1.kappa() * lp2.kappa();
272 if ( c1 != 0 )
273 {
274 double cinv = 1.0 / c1;
275 double c2 = std::sqrt( a3 ) - 0.5 * ( a1 + a2 ) -
276 2.0 * a3 * ( lp1.gamma() * lp2.kappa() + lp2.gamma() * lp1.kappa() );
277 double c3 = a2 * std::sqrt( lp1.gamma() ) + a1 * std::sqrt( lp2.gamma() ) -
278 2.0 * a3 * lp1.gamma() * lp2.gamma();
279 double root = std::sqrt( c2 ) - 4.0 * c1 * c3;
280 if ( root >= 0 )
281 {
282 root = sqrt( root );
283 double rad2[2];
284 rad2[0] = 0.5 * cinv * ( -c2 - root );
285 rad2[1] = 0.5 * cinv * ( -c2 + root );
286 double ab1 = -( lp2.beta() * lp1.gamma() - lp1.beta() * lp2.gamma() );
287 double ab2 = ( lp2.alpha() * lp1.gamma() - lp1.alpha() * lp2.gamma() );
288 double ac1 = -( lp2.beta() * lp1.kappa() - lp1.beta() * lp2.kappa() );
289 double ac2 = ( lp2.alpha() * lp1.kappa() - lp1.alpha() * lp2.kappa() );
290 double dinv = 1.0 / det;
291 v1( 1 ) = dinv * ( ab1 + ac1 * rad2[0] );
292 v1( 2 ) = dinv * ( ab2 + ac2 * rad2[0] );
293 v1( 3 ) = 0;
294 v2( 1 ) = dinv * ( ab1 + ac1 * rad2[1] );
295 v2( 2 ) = dinv * ( ab2 + ac2 * rad2[1] );
296 v2( 3 ) = 0;
297 double d1 = lp1.d( v1( 1 ), v1( 2 ) );
298 double d2 = lp2.d( v1( 1 ), v1( 2 ) );
299 double d3 = lp1.d( v2( 1 ), v2( 2 ) );
300 double d4 = lp2.d( v2( 1 ), v2( 2 ) );
301 double r = sqrt( rad2[0] );
302 Lpar::Cpar cp1( lp1 );
303 Lpar::Cpar cp2( lp2 );
304 for ( int j = 0; j < 2; j++ )
305 {
306 double s1, s2;
307 if ( j == 0 )
308 {
309 s1 = lp1.s( v1( 1 ), v1( 2 ) );
310 s2 = lp2.s( v1( 1 ), v1( 2 ) );
311 }
312 else
313 {
314 s1 = lp1.s( v2( 1 ), v2( 2 ) );
315 s2 = lp2.s( v2( 1 ), v2( 2 ) );
316 }
317 double phi1 = cp1.fi() + 2 * cp1.cu() * s1;
318 double phi2 = cp2.fi() + 2 * cp2.cu() * s2;
319 double f = ( 1 + 2 * cp1.cu() * cp1.da() ) * ( 1 + 2 * cp2.cu() * cp2.da() ) *
320 cos( cp1.fi() - cp2.fi() );
321 f -= 2 * ( lp1.gamma() * lp2.kappa() + lp2.gamma() * lp1.kappa() );
322 double cosphi12 = f;
323 }
324 return 2;
325 }
326 }
327 }
328 }
329 return 0;
330 }
std::string root
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
Double_t phi2
Double_t phi1
int dc[18]
Definition EvtPycont.cc:63
double s(double x, double y) const

◆ operator+()

Lpav KalmanFit::operator+ ( const Lpav & la1,
const Lpav & la2 )

Definition at line 640 of file KalFitAlg/src/lpav/Lpav.cxx.

643 {
644#else
645 {
646 Lpav la;
647#endif
648 la.m_wsum = la1.m_wsum + la2.m_wsum;
649 la.m_xsum = la1.m_xsum + la2.m_xsum;
650 la.m_ysum = la1.m_ysum + la2.m_ysum;
651 la.m_xxsum = la1.m_xxsum + la2.m_xxsum;
652 la.m_yysum = la1.m_yysum + la2.m_yysum;
653 la.m_xysum = la1.m_xysum + la2.m_xysum;
654 la.m_xrrsum = la1.m_xrrsum + la2.m_xrrsum;
655 la.m_yrrsum = la1.m_yrrsum + la2.m_yrrsum;
656 la.m_rrrrsum = la1.m_rrrrsum + la2.m_rrrrsum;
657 la.m_nc = la1.m_nc + la2.m_nc;
658 return la;
659 }

◆ operator<<() [1/3]

std::ostream & KalmanFit::operator<< ( std::ostream & o,
const Lpav & a )

Definition at line 235 of file KalFitAlg/src/lpav/Lpav.cxx.

235 {
236 // o << "wsum=" << a.m_wsum << " xsum=" << a.m_xsum << " ysum=" << a.m_ysum
237 // << " xxsum=" << a.m_xxsum << " xysum=" << a.m_xysum
238 // << " yysum=" << a.m_yysum
239 // << " xrrsum=" << a.m_xrrsum << " yrrsum=" << a.m_yrrsum
240 // << " rrrrsum=" << a.m_rrrrsum;
241 // o << " rscale=" << a.m_rscale
242 // << " xxavp=" << a.m_xxavp << " yyavp=" << a.m_yyavp
243 // << " xrravp=" << a.m_xrravp << " yrravp=" << a.m_yrravp
244 // << " rrrravp=" << a.m_rrrravp << " cosrot=" << a.m_cosrot
245 // << " sinrot=" << a.m_sinrot
246 // << endl;
247 o << " nc=" << a.m_nc << " chisq=" << a.m_chisq << " " << (Lpar&)a;
248 return o;
249 }

◆ operator<<() [2/3]

std::ostream & KalmanFit::operator<< ( std::ostream & o,
const zav & z )
inline

Definition at line 140 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/lpav/zav.h.

140 {
141 o << " zav::w=" << z._w << " sav=" << z._sav << " zav=" << z._zav << " nc=" << z._nc
142 << " chisq=" << z._chisq << " a=" << z._a << " b=" << z._b << " c11=" << z._c11
143 << " c21=" << z._c21 << " c22=" << z._c22 << " sig_inv=" << z._sig_inv << std::endl;
144 return o;
145 }

◆ operator<<() [3/3]

std::ostream & KalmanFit::operator<< ( std::ostream & o,
Lpar & s )

Definition at line 340 of file KalFitAlg/src/lpav/Lpar.cxx.

340 {
341 return o << " al=" << s.m_alpha << " be=" << s.m_beta << " ka=" << s.m_kappa
342 << " ga=" << s.m_gamma;
343 }
XmlRpcServer s

◆ prob_()

float KalmanFit::prob_ ( float * ,
int *  )

Referenced by KalmanFit::Lpav::prob().