BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TLineFitter Class Reference

A class to fit a TTrackBase object to a line. More...

#include <TLineFitter.h>

Inheritance diagram for TLineFitter:

Public Member Functions

 TLineFitter (const std::string &name)
 Constructor.
virtual ~TLineFitter ()
 Destructor.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
double a (void) const
double b (void) const
double det (void) const
virtual int fit (TTrackBase &) const
 TLineFitter (const std::string &name)
 Constructor.
virtual ~TLineFitter ()
 Destructor.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
double a (void) const
double b (void) const
double det (void) const
virtual int fit (TTrackBase &) const
 TLineFitter (const std::string &name)
 Constructor.
virtual ~TLineFitter ()
 Destructor.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
double a (void) const
double b (void) const
double det (void) const
virtual int fit (TTrackBase &) const
Public Member Functions inherited from TMFitter
 TMFitter (const std::string &name)
 Constructor.
virtual ~TMFitter ()
 Destructor.
const std::string & name (void) const
 returns name.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 TMFitter (const std::string &name)
 Constructor.
virtual ~TMFitter ()
 Destructor.
const std::string & name (void) const
 returns name.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 TMFitter (const std::string &name)
 Constructor.
virtual ~TMFitter ()
 Destructor.
const std::string & name (void) const
 returns name.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const

Additional Inherited Members

Protected Member Functions inherited from TMFitter
void fitDone (TTrackBase &) const
 sets the fitted flag. (Bad implementation)
void fitDone (TTrackBase &) const
 sets the fitted flag. (Bad implementation)
void fitDone (TTrackBase &) const
 sets the fitted flag. (Bad implementation)

Detailed Description

A class to fit a TTrackBase object to a line.

Definition at line 28 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TLineFitter.h.

Constructor & Destructor Documentation

◆ TLineFitter() [1/3]

TLineFitter::TLineFitter ( const std::string & name)

Constructor.

Definition at line 18 of file TLineFitter.cxx.

19 : TMFitter( name ), _a( 0. ), _b( 0. ), _det( 0. ) {}
const std::string & name(void) const
returns name.
TMFitter(const std::string &name)
Constructor.
Definition TMFitter.cxx:17

Referenced by TRobustLineFitter::TRobustLineFitter().

◆ ~TLineFitter() [1/3]

TLineFitter::~TLineFitter ( )
virtual

Destructor.

Definition at line 21 of file TLineFitter.cxx.

21{}

◆ TLineFitter() [2/3]

TLineFitter::TLineFitter ( const std::string & name)

Constructor.

◆ ~TLineFitter() [2/3]

virtual TLineFitter::~TLineFitter ( )
virtual

Destructor.

◆ TLineFitter() [3/3]

TLineFitter::TLineFitter ( const std::string & name)

Constructor.

◆ ~TLineFitter() [3/3]

virtual TLineFitter::~TLineFitter ( )
virtual

Destructor.

Member Function Documentation

◆ a() [1/3]

double TLineFitter::a ( void ) const
inline

Definition at line 65 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TLineFitter.h.

65{ return _a; }

Referenced by TRobustLineFitter::fit().

◆ a() [2/3]

double TLineFitter::a ( void ) const

◆ a() [3/3]

double TLineFitter::a ( void ) const

◆ b() [1/3]

double TLineFitter::b ( void ) const
inline

Definition at line 67 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TLineFitter.h.

67{ return _b; }

Referenced by TRobustLineFitter::fit().

◆ b() [2/3]

double TLineFitter::b ( void ) const

◆ b() [3/3]

double TLineFitter::b ( void ) const

◆ det() [1/3]

double TLineFitter::det ( void ) const
inline

Definition at line 69 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TLineFitter.h.

69{ return _det; }

Referenced by TRobustLineFitter::fit().

◆ det() [2/3]

double TLineFitter::det ( void ) const

◆ det() [3/3]

double TLineFitter::det ( void ) const

◆ dump() [1/3]

void TLineFitter::dump ( const std::string & message = std::string(""),
const std::string & prefix = std::string("") ) const

dumps debug information.

◆ dump() [2/3]

void TLineFitter::dump ( const std::string & message = std::string(""),
const std::string & prefix = std::string("") ) const

dumps debug information.

◆ dump() [3/3]

void TLineFitter::dump ( const std::string & message = std::string(""),
const std::string & prefix = std::string("") ) const

dumps debug information.

◆ fit() [1/3]

int TLineFitter::fit ( TTrackBase & t) const
virtual

Implements TMFitter.

Reimplemented in TRobustLineFitter, TRobustLineFitter, and TRobustLineFitter.

Definition at line 23 of file TLineFitter.cxx.

23 {
24
25 //...Already fitted ?...
26 if ( t.fitted() ) return TFitAlreadyFitted;
27
28 //...Check # of hits...
29 if ( t.links().length() < 2 ) return TFitErrorFewHits;
30
31 unsigned n = t.links().length();
32 if ( _det == 0. && n == 2 )
33 {
34 double x0 = t.links()[0]->position().x();
35 double y0 = t.links()[0]->position().y();
36 double x1 = t.links()[1]->position().x();
37 double y1 = t.links()[1]->position().y();
38 if ( x0 == x1 ) return TFitFailed;
39 _a = ( y0 - y1 ) / ( x0 - x1 );
40 _b = -_a * x1 + y1;
41 }
42 else
43 {
44 double sum = (double)n;
45 double sumX = 0., sumY = 0., sumX2 = 0., sumXY = 0., sumY2 = 0.;
46 for ( unsigned i = 0; i < n; i++ )
47 {
48 const HepPoint3D& p = t.links()[i]->position();
49 double x = p.x();
50 double y = p.y();
51 sumX += x;
52 sumY += y;
53 sumX2 += x * x;
54 sumXY += x * y;
55 sumY2 += y * y;
56 }
57
58 _det = sum * sumX2 - sumX * sumX;
59#ifdef TRKRECO_DEBUG_DETAIL
60 cout << " TLineFitter::fit ... det=" << _det << std::endl;
61#endif
62 if ( _det == 0. ) { return TFitFailed; }
63 else
64 {
65 _a = ( sumXY * sum - sumX * sumY ) / _det;
66 _b = ( sumX2 * sumY - sumX * sumXY ) / _det;
67 }
68 }
69
70 if ( t.objectType() == Line ) ( (TMLine&)t ).property( _a, _b, _det );
71 fitDone( t );
72 return 0;
73}
HepGeom::Point3D< double > HepPoint3D
const Int_t n
Double_t x[10]
void fitDone(TTrackBase &) const
sets the fitted flag. (Bad implementation)
Definition TMFitter.cxx:21
int t()
Definition t.c:1

Referenced by TRobustLineFitter::fit().

◆ fit() [2/3]

virtual int TLineFitter::fit ( TTrackBase & ) const
virtual

Implements TMFitter.

Reimplemented in TRobustLineFitter, TRobustLineFitter, and TRobustLineFitter.

◆ fit() [3/3]

virtual int TLineFitter::fit ( TTrackBase & ) const
virtual

Implements TMFitter.

Reimplemented in TRobustLineFitter, TRobustLineFitter, and TRobustLineFitter.


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