41 if (!theUpdateState.isValid() || !theForwardState.isValid() || !theBackwardState.isValid())
51 std::vector<SingleGaussianState1D> pxStates;
52 pxStates.reserve(numb);
53 std::vector<SingleGaussianState1D> pyStates;
54 pyStates.reserve(numb);
55 std::vector<SingleGaussianState1D> pzStates;
56 pzStates.reserve(numb);
84 computeQpMode(theForwardState, fwdPars, fwdCov);
87 computeQpMode(theBackwardState, bwdPars, bwdCov);
90 if (tm.
recHit()->isValid()) {
91 hitPos = tm.
recHit()->localPosition();
92 hitErr = tm.
recHit()->localPositionError();
100 if (!collinearFit.
fit(fwdPars, fwdCov, bwdPars, bwdCov, hitPos, hitErr, fitParameters, fitCovariance, fitChi2))
104 double qpIn = fitParameters(0);
105 double sig2In = fitCovariance(0, 0);
106 double qpOut = fitParameters(1);
107 double sig2Out = fitCovariance(1, 1);
108 double corrInOut = fitCovariance(0, 1);
109 double pIn = 1. / fabs(qpIn);
110 double pOut = 1. / fabs(qpOut);
111 double sig2DeltaP = pIn / qpIn * pIn / qpIn * sig2In - 2 * pIn / qpIn * pOut / qpOut * corrInOut +
112 pOut / qpOut * pOut / qpOut * sig2Out;
116 sigmaDp =
sqrt(sig2DeltaP);
127 gsfp = theUpdateState.globalMomentum();
155 double VarQpRatio =
sqrt(varQp / covariance(0, 0));
157 covariance(0, 0) = varQp;
158 for (
int i = 1;
i < 5; ++
i)
159 covariance(
i, 0) *= VarQpRatio;
void computeQpMode(const TrajectoryStateOnSurface tsos, AlgebraicVector5 ¶meters, AlgebraicSymMatrix55 &covariance) const
ConstRecHitPointer const & recHit() const
const LocalTrajectoryParameters & localParameters() const
bool fit(const TrajectoryMeasurement &tm, ResultVector ¶meters, ResultMatrix &covariance, double &chi2)
Fit for one TM. Return value "true" for success.
double sigmafittedDP() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > ResultMatrix
static double fitChi2(const CachingVertex< 5 > &vtx)
AlgebraicVector5 vector() const
double mean() const
parameter vector
double variance() const
variance
const SingleGaussianState1D & mode() const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const AlgebraicSymMatrix55 & matrix() const
ROOT::Math::SVector< double, 6 > ResultVector
const LocalTrajectoryError & localError() const
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
PFGsfHelper(const TrajectoryMeasurement &)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
TrajectoryStateOnSurface const & updatedState() const
GlobalVector computeP(bool ComputeMode) const
bool modeIsValid() const
mode status
TrajectoryStateOnSurface const & backwardPredictedState() const
Access to backward predicted state (from smoother)
Global3DVector GlobalVector