|
|
Go to the documentation of this file. 1 #ifndef L1Trigger_TrackFindingTMTT_KFbase_h
2 #define L1Trigger_TrackFindingTMTT_KFbase_h
79 virtual TVectorD
vectorM(
const Stub *stub)
const = 0;
85 virtual TMatrixD
matrixH(
const Stub *stub)
const = 0;
89 TMatrixD
matrixHCHt(
const TMatrixD &
h,
const TMatrixD &
c)
const;
91 TMatrixD
matrixRinv(
const TMatrixD &matH,
const TMatrixD &matCref,
const TMatrixD &matV)
const;
93 TMatrixD
getKalmanGainMatrix(
const TMatrixD &
h,
const TMatrixD &pxcov,
const TMatrixD &covRinv)
const;
96 virtual TVectorD
residual(
const Stub *stub,
const TVectorD &x,
double candQoverPt)
const;
100 const TMatrixD &pxcov,
103 const TVectorD &
delta,
105 TMatrixD &new_xcov)
const;
108 const TMatrixD &covRinv,
109 const TVectorD &
delta,
111 double &chi2rz)
const;
131 unsigned int iEtaReg,
unsigned int layerIDreduced,
bool barrel,
float r,
float z)
const;
138 float approxB(
float z,
float r)
const;
141 virtual bool isHLS() {
return false; };
148 void printStubLayers(
const std::vector<Stub *> &stubs,
unsigned int iEtaReg)
const;
150 void printStubs(
const std::vector<Stub *> &stubs)
const;
virtual TMatrixD matrixF(const Stub *stub=nullptr, const KalmanState *state=nullptr) const =0
virtual void adjustChi2(const KalmanState *state, const TMatrixD &covRinv, const TVectorD &delta, double &chi2rphi, double &chi2rz) const
virtual bool isGoodState(const KalmanState &state) const =0
void printStubs(const std::vector< Stub * > &stubs) const
const KalmanState * doKF(const L1track3D &l1track3D, const std::vector< Stub * > &stubs, const TP *tpa)
unsigned int numPhiNonants() const
virtual TVectorD residual(const Stub *stub, const TVectorD &x, double candQoverPt) const
unsigned int numUpdateCalls_
TMatrixD matrixHCHt(const TMatrixD &h, const TMatrixD &c) const
void printStub(const Stub *stub) const
virtual TVectorD trackParams(const KalmanState *state) const =0
const Settings * settings_
virtual TMatrixD matrixH(const Stub *stub) const =0
L1fittedTrack fit(const L1track3D &l1track3D) override
const KalmanState * mkState(const L1track3D &candidate, unsigned nSkipped, unsigned layer, const KalmanState *last_state, const TVectorD &x, const TMatrixD &pxx, const TMatrixD &K, const TMatrixD &dcov, Stub *stub, double chi2rphi, double chi2rz)
virtual const KalmanState * kalmanUpdate(unsigned nSkipped, unsigned layer, Stub *stub, const KalmanState *state, const TP *tp)
constexpr std::array< uint8_t, layerIndexSize > layer
KFbase(const Settings *settings, const uint nHelixPar, const std::string &fitterName="", const uint nMeas=2)
virtual TVectorD vectorM(const Stub *stub) const =0
float approxB(float z, float r) const
TMatrixD getKalmanGainMatrix(const TMatrixD &h, const TMatrixD &pxcov, const TMatrixD &covRinv) const
void printStubLayers(const std::vector< Stub * > &stubs, unsigned int iEtaReg) const
unsigned int numPhiSectors() const
std::set< unsigned > kalmanDeadLayers(bool &remove2PSCut) const
virtual TVectorD trackParams_BeamConstr(const KalmanState *state, double &chi2rphi_bcon) const =0
virtual bool kalmanAmbiguousLayer(unsigned int iEtaReg, unsigned int kfLayer)
virtual TMatrixD matrixV(const Stub *stub, const KalmanState *state) const =0
virtual TVectorD seedX(const L1track3D &l1track3D) const =0
void printTP(const TP *tp) const
virtual unsigned int kalmanLayer(unsigned int iEtaReg, unsigned int layerIDreduced, bool barrel, float r, float z) const
=== This is the base class for the linearised chi-squared track fit algorithms.
KFbase & operator=(const KFbase &kf)=delete
virtual TMatrixD seedC(const L1track3D &l1track3D) const =0
void adjustState(const TMatrixD &K, const TMatrixD &pxcov, const TVectorD &x, const TMatrixD &h, const TVectorD &delta, TVectorD &new_x, TMatrixD &new_xcov) const
TMatrixD matrixRinv(const TMatrixD &matH, const TMatrixD &matCref, const TMatrixD &matV) const
std::vector< std::unique_ptr< const KalmanState > > listAllStates_