15 const unsigned int NTHits = iHits.size();
16 float_m active = mask;
17 if( active.isEmpty() )
return active;
19 vector<PndCAHitV> thits( NTHits );
20 for (
unsigned int ihit = 0; ihit < NTHits; ihit++ ) {
22 if (!dir) index = iHits[NTHits-1-ihit];
25 foreach_bit(
unsigned int iV, active) {
26 hs[iV] = hits[index.
s[iV]][index.
e[iV]];
45 for (
unsigned int ihit = 0; ihit < NTHits; ihit++ ) {
46 if( active.isEmpty() )
break;
48 active &= param.
Transport( hit, caParam, active );
49 if( active.isEmpty() )
break;
50 active &= param.
Filter( hit, caParam, active );
58 float_m active = mask;
61 float_v qMom = float_v(10e10f);
64 while ( (++i < 10) && ( abs( (param.
QMomentum() - qMom)/qMom ) > 0.005f ) ) {
66 if( active.isEmpty() )
break;
67 active &=
FitIteration( caParam, hits, param, iHits, target, dir,
false, active );
70 #else // for Panda it is and slower, since doesn't use target z-coor?
71 active &=
FitIteration( caParam, hits, param, iHits, target, dir,
false, active );
72 while ( (++i < 5) && ( abs( (param.
QMomentum() - qMom)/qMom ) > 0.005f ) ) {
74 active &=
FitIteration( caParam, hits, param, iHits, target, !dir,
true, active );
75 active &=
FitIteration( caParam, hits, param, iHits, target, dir,
true, active );
float_m Fit(const PndCAParam &caParam, const PndCAHits &hits, PndCATrackParamVector ¶m, const vector< PndCATESV > &iHits, const PndCATarget &target, bool dir, const float_m &active=float_m(true))
void InitByTarget(const PndCATarget &target)
void SetAngle(const float_v &v)
float_m FitIteration(const PndCAParam &caParam, const PndCAHits &hits, PndCATrackParamVector ¶m, const vector< PndCATESV > &iHits, const PndCATarget &target, bool dir, bool useParam, const float_m &active=float_m(true))
float_m Filter(const PndCAHitV &hit, const PndCAParam ¶m, const float_m &mask=float_m(true), const float_v &chi2Cut=10e10f)
void InitCovMatrix(float_v d2QMom=0.f)
float_v QMomentum() const
void InitDirection(float_v r0, float_v r1, float_v r2)
void SetQMomentum(const float_v &v)
float_m Transport(const int_v &ista, const PndCAParam ¶m, const float_m &mask=float_m(true))