BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
KalmanFit::Lpav Class Reference

#include <Lpav.h>

Inheritance diagram for KalmanFit::Lpav:

Classes

class  Singular
class  Singular_c

Public Member Functions

 Lpav ()
virtual ~Lpav ()
void calculate_average (void)
void calculate_average3 (void)
void calculate_average (double x, double y, double w=1)
void calculate_average3 (double x, double y, double w=1)
double calculate_lpar (void)
double calculate_lpar3 (void)
double fit ()
double fit (double x, double y, double w=1)
void clear ()
void add_point (double x, double y, double w=1)
void add_point_frac (double x, double y, double w, double f)
double nc () const
HepSymMatrix cov (int=0) const
HepSymMatrix cov_c (int=0) const
int extrapolate (double, double &, double &) const
double similarity (double, double) const
double delta_chisq (double x, double y, double w=1) const
double chisq () const
double prob () const
double chi_deg () const
const Lpavoperator= (const Lpav &)
const Lpavoperator= (const Lpar &)
const Lpavoperator+= (const Lpav &)
 Lpav ()
virtual ~Lpav ()
void calculate_average (void)
void calculate_average3 (void)
void calculate_average (double x, double y, double w=1)
void calculate_average3 (double x, double y, double w=1)
double calculate_lpar (void)
double calculate_lpar3 (void)
double fit ()
double fit (double x, double y, double w=1)
void clear ()
void add_point (double x, double y, double w=1)
void add_point_frac (double x, double y, double w, double f)
double nc () const
HepSymMatrix cov (int=0) const
HepSymMatrix cov_c (int=0) const
int extrapolate (double, double &, double &) const
double similarity (double, double) const
double delta_chisq (double x, double y, double w=1) const
double chisq () const
double prob () const
double chi_deg () const
const Lpavoperator= (const Lpav &)
const Lpavoperator= (const Lpar &)
const Lpavoperator+= (const Lpav &)
 Lpav ()
virtual ~Lpav ()
void calculate_average (void)
void calculate_average3 (void)
void calculate_average (double x, double y, double w=1)
void calculate_average3 (double x, double y, double w=1)
double calculate_lpar (void)
double calculate_lpar3 (void)
double fit ()
double fit (double x, double y, double w=1)
void clear ()
void add_point (double x, double y, double w=1)
void add_point_frac (double x, double y, double w, double f)
double nc () const
HepSymMatrix cov (int=0) const
HepSymMatrix cov_c (int=0) const
int extrapolate (double, double &, double &) const
double similarity (double, double) const
double delta_chisq (double x, double y, double w=1) const
double chisq () const
double prob () const
double chi_deg () const
const Lpavoperator= (const Lpav &)
const Lpavoperator= (const Lpar &)
const Lpavoperator+= (const Lpav &)
Public Member Functions inherited from KalmanFit::Lpar
 Lpar ()
virtual ~Lpar ()
const Lparoperator= (const Lpar &)
void neg ()
void circle (double x1, double y1, double x2, double y2, double x3, double y3)
double kappa () const
double radius () const
HepVector center () const
double s (double x, double y) const
double d (double x, double y) const
double dr (double x, double y) const
double s (double r, int dir=0) const
double phi (double r, int dir=0) const
int sd (double r, double x, double y, double limit, double &s, double &d) const
HepVector Hpar (const HepPoint3D &pivot) const
 Lpar ()
virtual ~Lpar ()
const Lparoperator= (const Lpar &)
void neg ()
void circle (double x1, double y1, double x2, double y2, double x3, double y3)
double kappa () const
double radius () const
HepVector center () const
double s (double x, double y) const
double d (double x, double y) const
double dr (double x, double y) const
double s (double r, int dir=0) const
double phi (double r, int dir=0) const
int sd (double r, double x, double y, double limit, double &s, double &d) const
HepVector Hpar (const HepPoint3D &pivot) const
 Lpar ()
virtual ~Lpar ()
const Lparoperator= (const Lpar &)
void neg ()
void circle (double x1, double y1, double x2, double y2, double x3, double y3)
double kappa () const
double radius () const
HepVector center () const
double s (double x, double y) const
double d (double x, double y) const
double dr (double x, double y) const
double s (double r, int dir=0) const
double phi (double r, int dir=0) const
int sd (double r, double x, double y, double limit, double &s, double &d) const
HepVector Hpar (const HepPoint3D &pivot) const

Friends

std::ostream & operator<< (std::ostream &o, const Lpav &s)
Lpav operator+ (const Lpav &la1, const Lpav &la2)
std::ostream & operator<< (std::ostream &o, const Lpav &s)
Lpav operator+ (const Lpav &la1, const Lpav &la2)
std::ostream & operator<< (std::ostream &o, const Lpav &s)
Lpav operator+ (const Lpav &la1, const Lpav &la2)

Detailed Description

Constructor & Destructor Documentation

◆ Lpav() [1/3]

◆ ~Lpav() [1/3]

Lpav::~Lpav ( )
virtual

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

57{}

◆ Lpav() [2/3]

KalmanFit::Lpav::Lpav ( )

◆ ~Lpav() [2/3]

virtual KalmanFit::Lpav::~Lpav ( )
virtual

◆ Lpav() [3/3]

KalmanFit::Lpav::Lpav ( )

◆ ~Lpav() [3/3]

virtual KalmanFit::Lpav::~Lpav ( )
virtual

Member Function Documentation

◆ add_point() [1/3]

void KalmanFit::Lpav::add_point ( double x,
double y,
double w = 1 )

◆ add_point() [2/3]

void KalmanFit::Lpav::add_point ( double x,
double y,
double w = 1 )

◆ add_point() [3/3]

void KalmanFit::Lpav::add_point ( double x,
double y,
double w = 1 )

◆ add_point_frac() [1/3]

void Lpav::add_point_frac ( double x,
double y,
double w,
double f )

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

594 {
595 register double wi = w * a;
596 m_wsum += wi;
597 m_xsum += wi * xi;
598 m_ysum += wi * yi;
599 m_xxsum += wi * xi * xi;
600 m_yysum += wi * yi * yi;
601 m_xysum += wi * xi * yi;
602 register double rri = ( xi * xi + yi * yi );
603 register double wrri = wi * rri;
604 m_xrrsum += wrri * xi;
605 m_yrrsum += wrri * yi;
606 m_rrrrsum += wrri * rri;
607 m_nc += a;
608 }
double w

◆ add_point_frac() [2/3]

void KalmanFit::Lpav::add_point_frac ( double x,
double y,
double w,
double f )

◆ add_point_frac() [3/3]

void KalmanFit::Lpav::add_point_frac ( double x,
double y,
double w,
double f )

◆ calculate_average() [1/6]

void Lpav::calculate_average ( double x,
double y,
double w = 1 )

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

80 {
81 if ( m_wsum <= 0 ) return;
82 m_wsum_temp = m_wsum + wi;
83 double rri( xi * xi + yi * yi );
84 double wrri( wi * rri );
85 double wsum_inv( 1 / m_wsum_temp );
86 m_xav = ( m_xsum + wi * xi ) * wsum_inv;
87 m_yav = ( m_ysum + wi * yi ) * wsum_inv;
88
89 double xxav( ( m_xxsum + wi * xi * xi ) * wsum_inv );
90 double yyav( ( m_yysum + wi * yi * yi ) * wsum_inv );
91 double xyav( ( m_xysum + wi * xi * yi ) * wsum_inv );
92 double xrrav( ( m_xrrsum + xi * wrri ) * wsum_inv );
93 double yrrav( ( m_yrrsum + yi * wrri ) * wsum_inv );
94 double rrrrav( ( m_rrrrsum + wrri * rri ) * wsum_inv );
95
96 calculate_average_n( xxav, yyav, xyav, xrrav, yrrav, rrrrav );
97 }

◆ calculate_average() [2/6]

void KalmanFit::Lpav::calculate_average ( double x,
double y,
double w = 1 )

◆ calculate_average() [3/6]

void KalmanFit::Lpav::calculate_average ( double x,
double y,
double w = 1 )

◆ calculate_average() [4/6]

void Lpav::calculate_average ( void )

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

99 {
100 if ( m_wsum <= 0 ) return;
101 m_wsum_temp = m_wsum;
102 double wsum_inv( 1 / m_wsum_temp );
103 m_xav = m_xsum * wsum_inv;
104 m_yav = m_ysum * wsum_inv;
105
106 double xxav( m_xxsum * wsum_inv );
107 double yyav( m_yysum * wsum_inv );
108 double xyav( m_xysum * wsum_inv );
109 double xrrav( m_xrrsum * wsum_inv );
110 double yrrav( m_yrrsum * wsum_inv );
111 double rrrrav( m_rrrrsum * wsum_inv );
112
113 calculate_average_n( xxav, yyav, xyav, xrrav, yrrav, rrrrav );
114 }

Referenced by fit(), and fit().

◆ calculate_average() [5/6]

void KalmanFit::Lpav::calculate_average ( void )

◆ calculate_average() [6/6]

void KalmanFit::Lpav::calculate_average ( void )

◆ calculate_average3() [1/6]

void Lpav::calculate_average3 ( double x,
double y,
double w = 1 )

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

189 {
190 if ( m_wsum <= 0 ) return;
191 m_wsum_temp = m_wsum + wi;
192 double wsum_inv( 1 / m_wsum_temp );
193 double rri( xi * xi + yi * yi );
194 m_xav = ( m_xsum + wi * xi ) * wsum_inv;
195 m_yav = ( m_ysum + wi * yi ) * wsum_inv;
196
197 m_rscale = 1;
198 m_cosrot = 1;
199 m_sinrot = 0;
200 m_xxavp = ( m_xxsum + wi * xi * xi ) * wsum_inv;
201 m_xyavp = ( m_xysum + wi * xi * yi ) * wsum_inv;
202 m_yyavp = ( m_yysum + wi * yi * yi ) * wsum_inv;
203 double wrri( wi * rri );
204 m_xrravp = ( m_xrrsum + xi * wrri ) * wsum_inv;
205 m_yrravp = ( m_yrrsum + yi * wrri ) * wsum_inv;
206 m_rrrravp = ( m_rrrrsum + rri * wrri ) * wsum_inv;
207 }

◆ calculate_average3() [2/6]

void KalmanFit::Lpav::calculate_average3 ( double x,
double y,
double w = 1 )

◆ calculate_average3() [3/6]

void KalmanFit::Lpav::calculate_average3 ( double x,
double y,
double w = 1 )

◆ calculate_average3() [4/6]

void Lpav::calculate_average3 ( void )

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

209 {
210 if ( m_wsum <= 0 ) return;
211 m_wsum_temp = m_wsum;
212 double wsum_inv( 1 / m_wsum_temp );
213 m_xav = m_xsum * wsum_inv;
214 m_yav = m_ysum * wsum_inv;
215
216 m_rscale = 1;
217 m_cosrot = 1;
218 m_sinrot = 0;
219 m_xxavp = m_xxsum * wsum_inv;
220 m_xyavp = m_xysum * wsum_inv;
221 m_yyavp = m_yysum * wsum_inv;
222 m_xrravp = m_xrrsum * wsum_inv;
223 m_yrravp = m_yrrsum * wsum_inv;
224 m_rrrravp = m_rrrrsum * wsum_inv;
225 }

Referenced by fit(), and fit().

◆ calculate_average3() [5/6]

void KalmanFit::Lpav::calculate_average3 ( void )

◆ calculate_average3() [6/6]

void KalmanFit::Lpav::calculate_average3 ( void )

◆ calculate_lpar() [1/3]

double Lpav::calculate_lpar ( void )

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

308 {
309 double lambda = solve_lambda();
310 // changed on Oct-13-93
311 // if (lambda<=0) return -1;
312 if ( lambda < 0 ) return -1;
313 double h11 = m_xxavp - lambda;
314 double h22 = m_yyavp - lambda;
315 if ( h11 == 0.0 ) return -1;
316 double h14 = m_xrravp;
317 double h24 = m_yrravp;
318 double h34 = 1 + 2 * lambda;
319 double rootsq = ( h14 * h14 / h11 / h11 ) + 4 * h34;
320 if ( std::fabs( h22 ) > std::fabs( h24 ) )
321 {
322 if ( h22 == 0.0 ) return -1;
323 double ratio = h24 / h22;
324 rootsq += ratio * ratio;
325 m_kappa = 1 / std::sqrt( rootsq );
326 m_beta = -ratio * m_kappa;
327 }
328 else
329 {
330 if ( h24 == 0.0 ) return -1;
331 double ratio = h22 / h24;
332 rootsq = 1 + ratio * ratio * rootsq;
333 m_beta = 1 / std::sqrt( rootsq );
334 m_beta = h24 > 0 ? -m_beta : m_beta;
335 m_kappa = -ratio * m_beta;
336 }
337 m_alpha = -( h14 / h11 ) * m_kappa;
338 m_gamma = -h34 * m_kappa;
339 // if (lambda<0.0001) {
340 // cout << " lambda=" << lambda << " h34=" << h34
341 // << " rootsq=" << rootsq << " h22=" << h22
342 // << " h11=" << h11 << " h14=" << h14 << " h24=" << h24 <<
343 // " " << *this << endl;
344 // }
345 //
346 // C TRANSFORM THESE INTO THE LAB COORDINATE SYSTEM
347 //
348 // C FIRST GET KAPPA AND GAMMA BACK TO REAL DIMENSIONS
349 //
350 scale( m_rscale );
351 //
352 // C NEXT ROTATE ALPHA AND BETA
353 //
354 rotate( m_cosrot, -m_sinrot );
355 //
356 // C THEN TRANSLATE BY (XAV,YAV)
357 //
358 move( -m_xav, -m_yav );
359 if ( m_yrravp < 0 ) neg();
360 if ( lambda >= 0 ) m_chisq = lambda * m_wsum_temp * m_rscale * m_rscale;
361 return lambda;
362 }

Referenced by fit(), and fit().

◆ calculate_lpar() [2/3]

double KalmanFit::Lpav::calculate_lpar ( void )

◆ calculate_lpar() [3/3]

double KalmanFit::Lpav::calculate_lpar ( void )

◆ calculate_lpar3() [1/3]

double Lpav::calculate_lpar3 ( void )

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

364 {
365 double lambda = solve_lambda3();
366 // changed on Oct-13-93
367 // if (lambda<=0) return -1;
368 if ( lambda < 0 ) return -1;
369 double h11 = m_xxavp - lambda;
370 double h22 = m_yyavp - lambda;
371 double h14 = m_xrravp;
372 double h24 = m_yrravp;
373 m_gamma = 0;
374 double h12 = m_xyavp;
375 double det = h11 * h22 - h12 * h12;
376 if ( det != 0 )
377 {
378 double r1 = ( h14 * h22 - h24 * h12 ) / ( det );
379 double r2 = ( h24 * h11 - h14 * h12 ) / ( det );
380 double kinvsq = r1 * r1 + r2 * r2;
381 m_kappa = std::sqrt( 1 / kinvsq );
382 if ( h11 != 0 ) m_alpha = -m_kappa * r1;
383 else m_alpha = 1;
384 if ( h22 != 0 ) m_beta = -m_kappa * r2;
385 else m_beta = 1;
386 }
387 else
388 {
389 m_kappa = 0;
390 if ( h11 != 0 && h22 != 0 )
391 {
392 m_beta = 1 / std::sqrt( 1 + h12 * h12 / h11 / h11 );
393 m_alpha = std::sqrt( 1 - m_beta * m_beta );
394 }
395 else if ( h11 != 0 )
396 {
397 m_beta = 1;
398 m_alpha = 0;
399 }
400 else
401 {
402 m_beta = 0;
403 m_alpha = 1;
404 }
405 }
406 if ( ( m_alpha * m_xav + m_beta * m_yav ) * ( m_beta * m_xav - m_alpha * m_yav ) < 0 )
407 neg();
408 // if (std::fabs(m_alpha)<0.01 && std::fabs(m_beta)<0.01) {
409 // cout << " lambda=" << lambda << " " << *this << endl;
410 // }
411 if ( lambda >= 0 ) m_chisq = lambda * m_wsum_temp * m_rscale * m_rscale;
412 return lambda;
413 }

Referenced by fit(), and fit().

◆ calculate_lpar3() [2/3]

double KalmanFit::Lpav::calculate_lpar3 ( void )

◆ calculate_lpar3() [3/3]

double KalmanFit::Lpav::calculate_lpar3 ( void )

◆ chi_deg() [1/3]

double Lpav::chi_deg ( ) const

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

670 {
671 if ( m_nc <= 3 ) return -1;
672 else return m_chisq / ( m_nc - 3 );
673 }

◆ chi_deg() [2/3]

double KalmanFit::Lpav::chi_deg ( ) const

◆ chi_deg() [3/3]

double KalmanFit::Lpav::chi_deg ( ) const

◆ chisq() [1/3]

double KalmanFit::Lpav::chisq ( ) const
inline

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

62{ return m_chisq; }

◆ chisq() [2/3]

double KalmanFit::Lpav::chisq ( ) const
inline

Definition at line 62 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/lpav/Lpav.h.

62{ return m_chisq; }

◆ chisq() [3/3]

double KalmanFit::Lpav::chisq ( ) const
inline

Definition at line 62 of file Reconstruction/KalFitAlg/include/KalFitAlg/lpav/Lpav.h.

62{ return m_chisq; }

◆ clear() [1/3]

void Lpav::clear ( )
inline

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

202 {
203 m_wsum = m_xsum = m_ysum = m_xxsum = m_yysum = m_xysum = m_xrrsum = m_yrrsum = m_rrrrsum =
204 m_rscale = m_nc = 0;
205 m_chisq = -1;
206 }

Referenced by Lpav().

◆ clear() [2/3]

void KalmanFit::Lpav::clear ( )
inline

◆ clear() [3/3]

void KalmanFit::Lpav::clear ( )
inline

◆ cov() [1/3]

HepSymMatrix Lpav::cov ( int inv = 0) const

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

456 {
457#else
458 {
459 HepSymMatrix vret( 4 );
460#endif
461 vret( 1, 1 ) = m_xxsum;
462 vret( 2, 1 ) = m_xysum;
463 vret( 2, 2 ) = m_yysum;
464 vret( 3, 1 ) = m_xsum;
465 vret( 3, 2 ) = m_ysum;
466 vret( 3, 3 ) = m_wsum;
467 vret( 4, 1 ) = m_xrrsum;
468 vret( 4, 2 ) = m_yrrsum;
469 vret( 4, 3 ) = m_xxsum + m_yysum;
470 vret( 4, 4 ) = m_rrrrsum;
471 if ( inv == 0 )
472 {
473 // int i=vret.Inv();
474 int i;
475 vret.invert( i );
476 if ( i != 0 )
477 {
478 std::cerr << "Lpav::cov:could not invert nc=" << m_nc << vret;
479#ifdef HAVE_EXCEPTION
480 THROW( Lpav::cov, Singular );
481#endif
482 }
483 }
484 return vret;
485 }
HepSymMatrix cov(int=0) const

Referenced by cov(), cov_c(), extrapolate(), and similarity().

◆ cov() [2/3]

HepSymMatrix KalmanFit::Lpav::cov ( int = 0) const

◆ cov() [3/3]

HepSymMatrix KalmanFit::Lpav::cov ( int = 0) const

◆ cov_c() [1/3]

HepSymMatrix Lpav::cov_c ( int inv = 0) const

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

490 {
491#else
492 {
493 HepSymMatrix vret( 3 );
494#endif
495#ifdef HAVE_EXCEPTION
496 try
497 {
498#endif
499 vret = cov( 1 ).similarity( dldc() );
500#ifdef HAVE_EXCEPTION
501 } catch ( Lpav::Singular )
502 { THROW( Lpav::cov_c1, Singular_c ); }
503#endif
504 if ( inv == 0 )
505 {
506 // int i = vret.Inv();
507 int i;
508 vret.invert( i );
509 if ( i != 0 )
510 {
511 std::cerr << "Lpav::cov_c:could not invert " << vret;
512#ifdef HAVE_EXCEPTION
513 THROW( Lpav::cov_c2, Singular_c );
514#endif
515 }
516 }
517 return vret;
518 }

◆ cov_c() [2/3]

HepSymMatrix KalmanFit::Lpav::cov_c ( int = 0) const

◆ cov_c() [3/3]

HepSymMatrix KalmanFit::Lpav::cov_c ( int = 0) const

◆ delta_chisq() [1/3]

double Lpav::delta_chisq ( double x,
double y,
double w = 1 ) const

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

675 {
676 double sim = similarity( x, y );
677 if ( sim < 0 ) return -1;
678 double d = d0( x, y );
679 double delta = std::sqrt( d ) * w / ( 1 + sim * w );
680 return delta;
681 }
double similarity(double, double) const

◆ delta_chisq() [2/3]

double KalmanFit::Lpav::delta_chisq ( double x,
double y,
double w = 1 ) const

◆ delta_chisq() [3/3]

double KalmanFit::Lpav::delta_chisq ( double x,
double y,
double w = 1 ) const

◆ extrapolate() [1/3]

int Lpav::extrapolate ( double r,
double & phi,
double & dphi ) const

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

520 {
521 double x, y;
522 if ( m_chisq < 0 ) return -1;
523 if ( xy( r, x, y ) != 0 ) return -1;
524 phi = std::atan2( y, x );
525 if ( phi < 0 ) phi += ( 2 * M_PI );
526 HepVector v( 4 );
527 v( 1 ) = x;
528 v( 2 ) = y;
529 v( 3 ) = 1;
530 v( 4 ) = r * r;
531// HepSymMatrix l = cov().similarityT(v);
532#ifdef HAVE_EXCEPTION
533 try
534 {
535#endif
536 // HepSymMatrix l = cov().similarity(v.T());
537 // // cout << "delta d^2=" << l(1,1);
538 // if (l(1,1)>0) {
539 double l = cov().similarity( v );
540 if ( l > 0 )
541 {
542 double ls = std::sqrt( l );
543 dphi = ls / r;
544 // cout << " delta d=" << ls << " dphi=" << dphi;
545 }
546#ifdef HAVE_EXCEPTION
547 } catch ( Lpav::Singular )
548 { return -1; }
549#endif
550 // cout << endl;
551 return 0;
552 }
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
#define M_PI
Definition TConstant.h:4
double phi(double r, int dir=0) const

◆ extrapolate() [2/3]

int KalmanFit::Lpav::extrapolate ( double ,
double & ,
double &  ) const

◆ extrapolate() [3/3]

int KalmanFit::Lpav::extrapolate ( double ,
double & ,
double &  ) const

◆ fit() [1/6]

double Lpav::fit ( void )

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

434 {
435 if ( m_nc <= 3 ) return -1;
436 m_chisq = -1;
437 double q;
438 if ( m_nc < 4 )
439 {
441 q = calculate_lpar3();
442 if ( q > 0 ) m_chisq = q * m_wsum_temp * m_rscale * m_rscale;
443 }
444 else
445 {
447 q = calculate_lpar();
448 if ( q > 0 ) m_chisq = q * m_wsum_temp * m_rscale * m_rscale;
449 }
450 return m_chisq;
451 }
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33

◆ fit() [2/6]

double KalmanFit::Lpav::fit ( )

◆ fit() [3/6]

double KalmanFit::Lpav::fit ( )

◆ fit() [4/6]

double Lpav::fit ( double x,
double y,
double w = 1 )

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

415 {
416 if ( m_nc <= 3 ) return -1;
417 m_chisq = -1;
418 double q;
419 if ( m_nc < 4 )
420 {
421 calculate_average3( x, y, w );
422 double q = calculate_lpar3();
423 if ( q > 0 ) m_chisq = q * m_wsum_temp * m_rscale * m_rscale;
424 }
425 else
426 {
427 calculate_average( x, y, w );
428 q = calculate_lpar();
429 if ( q > 0 ) m_chisq = q * m_wsum_temp * m_rscale * m_rscale;
430 }
431 return m_chisq;
432 }

◆ fit() [5/6]

double KalmanFit::Lpav::fit ( double x,
double y,
double w = 1 )

◆ fit() [6/6]

double KalmanFit::Lpav::fit ( double x,
double y,
double w = 1 )

◆ nc() [1/3]

double KalmanFit::Lpav::nc ( ) const
inline

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

56{ return m_nc; }

◆ nc() [2/3]

double KalmanFit::Lpav::nc ( ) const
inline

Definition at line 56 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/lpav/Lpav.h.

56{ return m_nc; }

◆ nc() [3/3]

double KalmanFit::Lpav::nc ( ) const
inline

Definition at line 56 of file Reconstruction/KalFitAlg/include/KalFitAlg/lpav/Lpav.h.

56{ return m_nc; }

◆ operator+=() [1/3]

const Lpav & Lpav::operator+= ( const Lpav & la1)

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

626 {
627 m_wsum += la1.m_wsum;
628 m_xsum += la1.m_xsum;
629 m_ysum += la1.m_ysum;
630 m_xxsum += la1.m_xxsum;
631 m_yysum += la1.m_yysum;
632 m_xysum += la1.m_xysum;
633 m_xrrsum += la1.m_xrrsum;
634 m_yrrsum += la1.m_yrrsum;
635 m_rrrrsum += la1.m_rrrrsum;
636 m_nc += la1.m_nc;
637 return *this;
638 }

◆ operator+=() [2/3]

const Lpav & KalmanFit::Lpav::operator+= ( const Lpav & )

◆ operator+=() [3/3]

const Lpav & KalmanFit::Lpav::operator+= ( const Lpav & )

◆ operator=() [1/6]

const Lpav & KalmanFit::Lpav::operator= ( const Lpar & )

◆ operator=() [2/6]

const Lpav & KalmanFit::Lpav::operator= ( const Lpar & )

◆ operator=() [3/6]

const Lpav & KalmanFit::Lpav::operator= ( const Lpar & )

◆ operator=() [4/6]

const Lpav & Lpav::operator= ( const Lpav & lp)
inline

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

141 {
142 Lpar::operator=( lp );
143 m_wsum = lp.m_wsum;
144 m_xsum = lp.m_xsum;
145 m_ysum = lp.m_ysum;
146 m_xxsum = lp.m_xxsum;
147 m_yysum = lp.m_yysum;
148 m_xysum = lp.m_xysum;
149 m_xrrsum = lp.m_xrrsum;
150 m_yrrsum = lp.m_yrrsum;
151 m_rrrrsum = lp.m_rrrrsum;
152
153 m_wsum_temp = lp.m_wsum_temp;
154 m_xav = lp.m_xav;
155 m_yav = lp.m_yav;
156 m_xyavp = lp.m_xyavp;
157
158 m_rscale = lp.m_rscale;
159 m_xxavp = lp.m_xxavp;
160 m_yyavp = lp.m_yyavp;
161 m_xrravp = lp.m_xrravp;
162 m_yrravp = lp.m_yrravp;
163 m_rrrravp = lp.m_rrrravp;
164 m_sinrot = lp.m_sinrot;
165 m_cosrot = lp.m_cosrot;
166
167 m_nc = lp.m_nc;
168 m_chisq = lp.m_chisq;
169 return *this;
170 }

◆ operator=() [5/6]

const Lpav & KalmanFit::Lpav::operator= ( const Lpav & )
inline

◆ operator=() [6/6]

const Lpav & KalmanFit::Lpav::operator= ( const Lpav & )
inline

◆ prob() [1/3]

double Lpav::prob ( ) const

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

661 {
662 if ( m_nc <= 3 ) return 0;
663 if ( m_chisq < 0 ) return 0;
664 float c = m_chisq;
665 int nci = (int)m_nc - 3;
666 double p = (double)prob_( &c, &nci );
667 return p;
668 }
float prob_(float *, int *)

◆ prob() [2/3]

double KalmanFit::Lpav::prob ( ) const

◆ prob() [3/3]

double KalmanFit::Lpav::prob ( ) const

◆ similarity() [1/3]

double Lpav::similarity ( double x,
double y ) const

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

554 {
555 if ( m_nc <= 3 ) return -1;
556 HepVector v( 4 );
557 v( 1 ) = x;
558 v( 2 ) = y;
559 v( 3 ) = 1;
560 v( 4 ) = x * x + y * y;
561 double l;
562#ifdef HAVE_EXCEPTION
563 try
564 {
565#endif
566 l = cov().similarity( v );
567#ifdef HAVE_EXCEPTION
568 } catch ( Lpav::Singular )
569 { return -1; }
570#endif
571 return l;
572 }

Referenced by delta_chisq().

◆ similarity() [2/3]

double KalmanFit::Lpav::similarity ( double ,
double  ) const

◆ similarity() [3/3]

double KalmanFit::Lpav::similarity ( double ,
double  ) const

◆ operator+ [1/3]

Lpav operator+ ( const Lpav & la1,
const Lpav & la2 )
friend

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+ [2/3]

Lpav operator+ ( const Lpav & la1,
const Lpav & la2 )
friend

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+ [3/3]

Lpav operator+ ( const Lpav & la1,
const Lpav & la2 )
friend

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 & operator<< ( std::ostream & o,
const Lpav & s )
friend

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 & operator<< ( std::ostream & o,
const Lpav & s )
friend

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<< [3/3]

std::ostream & operator<< ( std::ostream & o,
const Lpav & s )
friend

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 }

The documentation for this class was generated from the following files: