Go to the documentation of this file.
34 chiSq_ += resids[
j] * resids[
j] + resids[
j + 1] * resids[
j + 1];
40 for (
int i = 0;
i < covX.GetNrows();
i++) {
57 TVectorD x =
seed(l1track3D);
61 TMatrixD dTrans(TMatrixD::kTransposed,
d);
62 TMatrixD dtVinv = dTrans *
Vinv();
63 TMatrixD dtVinvTrans(TMatrixD::kTransposed, dtVinv);
65 TMatrixD M = dtVinv * dtVinvTrans;
66 TMatrixD Minv(TMatrixD::kInverted, M);
68 TVectorD deltaX = Minv * dtVinv * resids;
70 TVectorD covX = dTrans *
Vinv() * resids;
78 bool killWorstStub =
false;
83 std::vector<Stub*> stubsTmp =
stubs_;
116 const unsigned int hitPattern = 0;
117 const float chi2rz = 0;
virtual TMatrixD Vinv()=0
virtual TVectorD residuals(const TVectorD &x)=0
unsigned int numTrackFitIterations() const
float qOverPt() const override
void calculateDeltaChiSq(const TVectorD &deltaX, const TVectorD &covX)
unsigned int countLayers(const Settings *settings, const std::vector< const Stub * > &stubs, bool disableReducedLayerID=false, bool onlyPS=false)
void calculateChiSq(const TVectorD &resids)
L1fittedTrack fit(const L1track3D &l1track3D) override
const std::vector< Stub * > & stubs() const override
unsigned int minStubLayers() const
double killingResidualCut() const
unsigned int iEtaReg() const override
unsigned int minStubLayersRed_
const Settings * settings_
unsigned int iPhiSec() const override
double generalResidualCut_
double killingResidualCut_
unsigned int minStubLayers_
virtual TMatrixD D(const TVectorD &x)=0
virtual TVectorD seed(const L1track3D &l1track3D)=0
int numFittingIterations_
unsigned int numLayerCut(Utility::AlgoStep algo, const Settings *settings, unsigned int iPhiSec, unsigned int iEtaReg, float invPt, float eta=0.)
double generalResidualCut() const
std::vector< Stub * > stubs_
int killTrackFitWorstHit_
bool killTrackFitWorstHit() const
ChiSquaredFitBase(const Settings *settings, const uint nPar)
Abs< T >::type abs(const T &t)
=== This is the base class for the linearised chi-squared track fit algorithms.
double invPtToInvR() const