16 case 1:
return estimate<1>(tsos,aRecHit);
17 case 2:
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() <<
31 ", type is " <<
typeid(aRecHit).
name() <<
"\n";
35 template <
unsigned int N>
39 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Calling MRHChi2MeasurementEstimator" ;
44 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Current annealing factor is " << annealing;
47 LogDebug(
"MRHChi2MeasurementEstimator") <<
"this hit has " << components.size() <<
" components";
50 for(std::vector<const TrackingRecHit*>::const_iterator iter = components.begin(); iter != components.end(); iter++, iComp++){
61 holder.template setup<N>(&
r, &V, &
pf, &rMeas, &VMeas,
x,
C);
62 (**iter).getKfComponents(holder);
65 V = V*annealing + VMeas;
68 edm::LogError(
"SiTrackerMultiRecHitUpdator")<<
"SiTrackerMultiRecHitUpdator::ComputeParameters2dim: W not valid!"<<std::endl;
71 LogDebug(
"MRHChi2MeasurementEstimator") <<
"Hit with weight " << mHit.
weight(iComp);
72 est += ROOT::Math::Similarity(r, V)*mHit.
weight(iComp);
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
std::pair< bool, double > returnIt(double est) const
const LocalTrajectoryParameters & localParameters() const
virtual double getAnnealingFactor() const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
std::pair< bool, double > estimate(const TrajectoryStateOnSurface &tsos, const TrackingRecHit &aRecHit) const override
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
float weight(unsigned int i) const
AlgebraicVector5 vector() const
virtual int dimension() const =0
bool invertPosDefMatrix(ROOT::Math::SMatrix< T, N, N, ROOT::Math::MatRepSym< T, N > > &m)
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
std::pair< bool, double > HitReturnType
ROOT::Math::SVector< double, D1 > Vector
ROOT::Math::SVector< double, 5 > AlgebraicVector5