15 return estimate<1>(tsos, aRecHit);
17 return estimate<2>(tsos, aRecHit);
23 LogDebug(
"MRHChi2MeasurementEstimator") <<
"WARNING:The hit is not 1D either 2D:" 24 <<
" does not count in the MRH Chi2 estimation.";
29 throw cms::Exception(
"Rec hit of invalid dimension (not 1,2,3,4,5)")
30 <<
"The value was " << aRecHit.
dimension() <<
", type is " <<
typeid(aRecHit).
name() <<
"\n";
34 template <
unsigned int N>
37 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Calling MRHChi2MeasurementEstimator";
42 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Current annealing factor is " << annealing;
45 LogDebug(
"MRHChi2MeasurementEstimator") <<
"this hit has " <<
components.size() <<
" components";
48 for (std::vector<const TrackingRecHit*>::const_iterator iter =
components.begin(); iter !=
components.end();
59 holder.template setup<N>(&
r, &
V, &
pf, &rMeas, &VMeas,
x,
C);
60 (**iter).getKfComponents(holder);
63 V =
V * annealing + VMeas;
67 <<
"SiTrackerMultiRecHitUpdator::ComputeParameters2dim: W not valid!" << std::endl;
70 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Hit with weight " << mHit.
weight(iComp);
71 est += ROOT::Math::Similarity(
r,
V) * mHit.
weight(iComp);
virtual int dimension() const =0
const LocalTrajectoryError & localError() const
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
const LocalTrajectoryParameters & localParameters() const
Log< level::Error, false > LogError
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t V
AlgebraicVector5 vector() const
bool invertPosDefMatrix(ROOT::Math::SMatrix< T, N, N, ROOT::Math::MatRepSym< T, N > > &m)
ROOT::Math::SVector< double, 5 > AlgebraicVector5
std::pair< bool, double > estimate(const TrajectoryStateOnSurface &tsos, const TrackingRecHit &aRecHit) const override
std::pair< bool, double > returnIt(double est) const
virtual double getAnnealingFactor() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
float weight(unsigned int i) const
ROOT::Math::SVector< double, D1 > Vector
const AlgebraicSymMatrix55 & matrix() const
std::pair< bool, double > HitReturnType
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)