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;
unsigned int numPhiNonants() const
KFbase & operator=(const KFbase &kf)=delete
void printStubLayers(const std::vector< Stub *> &stubs, unsigned int iEtaReg) const
void adjustState(const TMatrixD &K, const TMatrixD &pxcov, const TVectorD &x, const TMatrixD &h, const TVectorD &delta, TVectorD &new_x, TMatrixD &new_xcov) const
void printTP(const TP *tp) const
virtual unsigned int kalmanLayer(unsigned int iEtaReg, unsigned int layerIDreduced, bool barrel, float r, float z) const
void printStubs(const std::vector< Stub *> &stubs) const
L1fittedTrack fit(const L1track3D &l1track3D) override
std::set< unsigned > kalmanDeadLayers(bool &remove2PSCut) const
float approxB(float z, float r) const
virtual TVectorD trackParams(const KalmanState *state) const =0
constexpr std::array< uint8_t, layerIndexSize > layer
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)
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
const KalmanState * doKF(const L1track3D &l1track3D, const std::vector< Stub *> &stubs, const TP *tpa)
const Settings * settings_
void printStub(const Stub *stub) const
virtual TMatrixD seedC(const L1track3D &l1track3D) const =0
virtual TMatrixD matrixH(const Stub *stub) const =0
TMatrixD matrixHCHt(const TMatrixD &h, const TMatrixD &c) const
virtual TVectorD trackParams_BeamConstr(const KalmanState *state, double &chi2rphi_bcon) const =0
virtual TVectorD residual(const Stub *stub, const TVectorD &x, double candQoverPt) const
TMatrixD matrixRinv(const TMatrixD &matH, const TMatrixD &matCref, const TMatrixD &matV) const
KFbase(const Settings *settings, const uint nHelixPar, const std::string &fitterName="", const uint nMeas=2)
TMatrixD getKalmanGainMatrix(const TMatrixD &h, const TMatrixD &pxcov, const TMatrixD &covRinv) const
=== This is the base class for the linearised chi-squared track fit algorithms.
virtual bool isGoodState(const KalmanState &state) const =0
unsigned int numUpdateCalls_
virtual TVectorD vectorM(const Stub *stub) const =0
std::vector< std::unique_ptr< const KalmanState > > listAllStates_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
unsigned int numPhiSectors() 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