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

#include <TrkOutAvgTimeCalculator.h>

Inheritance diagram for TrkOutAvgTimeCalculator:

Public Member Functions

 TrkOutAvgTimeCalculator (const TrkHotSelector &selector, double maxpull)
virtual ~TrkOutAvgTimeCalculator ()
virtual bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr, int &nHotsUsed) const
 TrkOutAvgTimeCalculator (const TrkHotSelector &selector, double maxpull)
virtual ~TrkOutAvgTimeCalculator ()
virtual bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr, int &nHotsUsed) const
 TrkOutAvgTimeCalculator (const TrkHotSelector &selector, double maxpull)
virtual ~TrkOutAvgTimeCalculator ()
virtual bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr, int &nHotsUsed) const
Public Member Functions inherited from TrkTimeCalculator
 TrkTimeCalculator (const TrkHotSelector &selector)
virtual ~TrkTimeCalculator ()
bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr) const
 TrkTimeCalculator (const TrkHotSelector &selector)
virtual ~TrkTimeCalculator ()
bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr) const
 TrkTimeCalculator (const TrkHotSelector &selector)
virtual ~TrkTimeCalculator ()
bool trackTime (const TrkRecoTrk &trk, double &time, double &timeerr) const

Additional Inherited Members

Protected Member Functions inherited from TrkTimeCalculator
bool useHot (const TrkHitOnTrk &x) const
bool useHot (const TrkHitOnTrk &x) const
bool useHot (const TrkHitOnTrk &x) const

Detailed Description

Constructor & Destructor Documentation

◆ TrkOutAvgTimeCalculator() [1/3]

TrkOutAvgTimeCalculator::TrkOutAvgTimeCalculator ( const TrkHotSelector & selector,
double maxpull )

Definition at line 24 of file TrkOutAvgTimeCalculator.cxx.

26 : TrkTimeCalculator( selector ), _maxpull( maxpull ) {}

Referenced by trackTime().

◆ ~TrkOutAvgTimeCalculator() [1/3]

TrkOutAvgTimeCalculator::~TrkOutAvgTimeCalculator ( )
virtual

Definition at line 28 of file TrkOutAvgTimeCalculator.cxx.

28{}

◆ TrkOutAvgTimeCalculator() [2/3]

TrkOutAvgTimeCalculator::TrkOutAvgTimeCalculator ( const TrkHotSelector & selector,
double maxpull )

◆ ~TrkOutAvgTimeCalculator() [2/3]

virtual TrkOutAvgTimeCalculator::~TrkOutAvgTimeCalculator ( )
virtual

◆ TrkOutAvgTimeCalculator() [3/3]

TrkOutAvgTimeCalculator::TrkOutAvgTimeCalculator ( const TrkHotSelector & selector,
double maxpull )

◆ ~TrkOutAvgTimeCalculator() [3/3]

virtual TrkOutAvgTimeCalculator::~TrkOutAvgTimeCalculator ( )
virtual

Member Function Documentation

◆ trackTime() [1/3]

bool TrkOutAvgTimeCalculator::trackTime ( const TrkRecoTrk & trk,
double & time,
double & timeerr,
int & nHotsUsed ) const
virtual

Implements TrkTimeCalculator.

Definition at line 30 of file TrkOutAvgTimeCalculator.cxx.

31 {
32 const TrkHitList* hotlist = trk.hits();
33 std::vector<ws> l;
34 ws sum;
35 for ( TrkHitList::hot_iterator i( hotlist->begin() ); i != hotlist->end(); ++i )
36 {
37 double hottime, hottimeerr;
38 if ( !useHot( *i ) || !i->timeResid( hottime, hottimeerr ) ) continue;
39 hottime *= 1e9;
40 hottimeerr *= 1e9;
41 ws x( hottime, double( 1 ) / ( hottimeerr * hottimeerr ) );
42 l.push_back( x );
43 sum += x;
44 }
45 if ( _maxpull > 0 && sum.n() > 2 && sum.isPhysical() )
46 { // do pull based pruning
47 std::vector<ws>::iterator worst = l.end();
48 do {
49 worst = l.end();
50 double worstPull = _maxpull;
51 for ( std::vector<ws>::iterator i = l.begin(); i != l.end(); ++i )
52 {
53 ws u( sum );
54 u -= *i;
55 if ( !u.isPhysical() )
56 {
57#ifdef MDCPATREC_WARNING
58 std::cout << "ErrMsg(warning) rounding problem?" << std::endl;
59#endif
60 continue;
61 }
62 double p = fabs( u.pull( *i ) );
63 if ( p > worstPull )
64 {
65 worstPull = p;
66 worst = i;
67 }
68 }
69 if ( worst != l.end() )
70 {
71 sum -= *worst;
72 l.erase( worst );
73 }
74 } while ( sum.isPhysical() && sum.n() > 2 && worst != l.end() );
75 }
76 if ( sum.isPhysical() )
77 {
78 time = sum.mean() * 1e-9 + trk.trackT0();
79 ;
80 timeerr = sum.sigma() * 1e-9;
81 nHotsUsed = sum.n();
82 return true;
83 }
84 return false;
85}
Double_t x[10]
Double_t time
double trackT0() const

◆ trackTime() [2/3]

virtual bool TrkOutAvgTimeCalculator::trackTime ( const TrkRecoTrk & trk,
double & time,
double & timeerr,
int & nHotsUsed ) const
virtual

Implements TrkTimeCalculator.

◆ trackTime() [3/3]

virtual bool TrkOutAvgTimeCalculator::trackTime ( const TrkRecoTrk & trk,
double & time,
double & timeerr,
int & nHotsUsed ) const
virtual

Implements TrkTimeCalculator.


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