|
|
#include <KalmanVertexUpdator.h>
|
CachingVertex< N > | add (const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track) const override |
|
std::pair< bool, double > | chi2Increment (const VertexState &oldVertex, const VertexState &newVertexState, const RefCountedLinearizedTrackState linearizedTrack, float weight) const |
|
VertexUpdator< N > * | clone () const override |
|
VertexState | positionUpdate (const VertexState &oldVertex, const RefCountedLinearizedTrackState linearizedTrack, const float weight, int sign) const |
|
CachingVertex< N > | remove (const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track) const override |
|
CachingVertex< N > | update (const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track, float weight, int sign) const |
|
virtual CachingVertex< N > | add (const CachingVertex< N > &v, const typename CachingVertex< N >::RefCountedVertexTrack t) const =0 |
|
virtual CachingVertex< N > | remove (const CachingVertex< N > &v, const typename CachingVertex< N >::RefCountedVertexTrack t) const =0 |
|
| VertexUpdator () |
|
virtual | ~VertexUpdator () |
|
|
typedef ROOT::Math::SMatrix< double, N - 2, 3, ROOT::Math::MatRepStd< double, N - 2, 3 > > | AlgebraicMatrixM3 |
|
typedef ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > | AlgebraicMatrixN3 |
|
typedef ROOT::Math::SMatrix< double, N, N - 2, ROOT::Math::MatRepStd< double, N, N - 2 > > | AlgebraicMatrixNM |
|
typedef ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepStd< double, N+1, N+1 > > | AlgebraicMatrixOO |
|
typedef ROOT::Math::SMatrix< double, N - 2, N - 2, ROOT::Math::MatRepSym< double, N - 2 > > | AlgebraicSymMatrixMM |
|
typedef ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > | AlgebraicSymMatrixNN |
|
typedef ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > | AlgebraicSymMatrixOO |
|
typedef ROOT::Math::SVector< double, N - 2 > | AlgebraicVectorM |
|
typedef ROOT::Math::SVector< double, N > | AlgebraicVectorN |
|
template<unsigned int N>
class KalmanVertexUpdator< N >
Vertex updator for the Kalman vertex filter. (c.f. R. Fruewirth et.al., Comp.Phys.Comm 96 (1996) 189
Definition at line 13 of file KalmanVertexUpdator.h.
◆ AlgebraicMatrixM3
◆ AlgebraicMatrixN3
◆ AlgebraicMatrixNM
◆ AlgebraicMatrixOO
◆ AlgebraicSymMatrixMM
◆ AlgebraicSymMatrixNN
◆ AlgebraicSymMatrixOO
◆ AlgebraicVectorM
◆ AlgebraicVectorN
◆ RefCountedLinearizedTrackState
◆ RefCountedVertexTrack
◆ add()
◆ chi2Increment()
Definition at line 129 of file KalmanVertexUpdator.cc.
136 if (!linearizedTrack->isValid())
137 return std::pair<bool, double>(
false, -1.);
140 newVertexPositionV(0) = newVertexPosition.
x();
141 newVertexPositionV(1) = newVertexPosition.
y();
142 newVertexPositionV(2) = newVertexPosition.
z();
147 AlgebraicVectorN trackParameters = linearizedTrack->predictedStateParameters();
152 <<
"predictedState error matrix inversion failed. An invalid vertex will be returned.";
153 return std::pair<bool, double>(
false, -1.);
158 edm::LogWarning(
"KalmanVertexUpdator") <<
"S matrix inversion failed. An invalid vertex will be returned.";
159 return std::pair<bool, double>(
false, -1.);
164 AlgebraicVectorM newTrackMomentumP =
s * ROOT::Math::Transpose(
b) * trackParametersWeight * vv;
169 linearizedTrack->checkParameters(parameterResiduals);
171 double chi2 =
weight * ROOT::Math::Similarity(parameterResiduals, trackParametersWeight);
174 chi2 +=
helper.vertexChi2(oldVertex, newVertexState);
176 return std::pair<bool, double>(
true,
chi2);
Referenced by GsfVertexUpdator::createNewComponent().
◆ clone()
◆ positionUpdate()
◆ remove()
◆ update()
◆ helper
bool isValid() const
Make the ReferenceCountingProxy method to check validity public.
ROOT::Math::SVector< double, 3 > AlgebraicVector3
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
CachingVertex< N > update(const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track, float weight, int sign) const
const VertexState & priorVertexState() const
const VertexState & vertexState() const
ROOT::Math::SVector< double, N > AlgebraicVectorN
const AlgebraicSymMatrix33 matrix() const
ROOT::Math::SMatrix< double, N - 2, N - 2, ROOT::Math::MatRepSym< double, N - 2 > > AlgebraicSymMatrixMM
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Log< level::Warning, false > LogWarning
ROOT::Math::SMatrix< double, N, N - 2, ROOT::Math::MatRepStd< double, N, N - 2 > > AlgebraicMatrixNM
GlobalErrorBase< double, WeightMatrixTag > GlobalWeight
float totalChiSquared() const
std::pair< bool, double > chi2Increment(const VertexState &oldVertex, const VertexState &newVertexState, const RefCountedLinearizedTrackState linearizedTrack, float weight) const
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
GlobalWeight weight() const
ROOT::Math::SVector< double, N - 2 > AlgebraicVectorM
bool invertPosDefMatrix(ROOT::Math::SMatrix< T, N, N, ROOT::Math::MatRepSym< T, N > > &m)
std::vector< RefCountedVertexTrack > tracks() const
VertexState positionUpdate(const VertexState &oldVertex, const RefCountedLinearizedTrackState linearizedTrack, const float weight, int sign) const
AlgebraicVector3 weightTimesPosition() const
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
GlobalPoint position() const
Abs< T >::type abs(const T &t)