#include <KalmanVertexFitter.h>
Public Types | |
typedef CachingVertex < 5 >::RefCountedVertexTrack | RefCountedVertexTrack |
Public Member Functions | |
KalmanVertexFitter * | clone () const |
KalmanVertexFitter (bool useSmoothing=false) | |
KalmanVertexFitter (const edm::ParameterSet &pSet, bool useSmoothing=false) | |
KalmanVertexFitter (const KalmanVertexFitter &other) | |
virtual CachingVertex< 5 > | vertex (const std::vector< reco::TransientTrack > &tracks, const GlobalPoint &linPoint) const |
virtual CachingVertex< 5 > | vertex (const std::vector< reco::TransientTrack > &tracks, const reco::BeamSpot &beamSpot) const |
virtual CachingVertex< 5 > | vertex (const std::vector< RefCountedVertexTrack > &tracks) const |
virtual CachingVertex< 5 > | vertex (const std::vector< reco::TransientTrack > &tracks) const |
virtual CachingVertex< 5 > | vertex (const std::vector< RefCountedVertexTrack > &tracks, const GlobalPoint &priorPos, const GlobalError &priorError) const |
virtual CachingVertex< 5 > | vertex (const std::vector< RefCountedVertexTrack > &tracks, const reco::BeamSpot &spot) const |
virtual CachingVertex< 5 > | vertex (const std::vector< reco::TransientTrack > &tracks, const GlobalPoint &priorPos, const GlobalError &priorError) const |
virtual | ~KalmanVertexFitter () |
Private Member Functions | |
edm::ParameterSet | defaultParameters () const |
void | setup (const edm::ParameterSet &pSet, bool useSmoothing) |
Private Attributes | |
const SequentialVertexFitter< 5 > * | theSequentialFitter |
Least-squares vertex fitter implemented in the Kalman Filter formalism Fits vertex position and, if smoothing is requested at construction, constrains track parameters at the vertex. A beam spot constraint can also be specified in form of a 3D point and a 3D matrix describing a Gaussian beam spread.
References:
`Vertex fitting with the Kalman filter formalism', T.speer, K.Prokofiev, R.Fruehwirth, CMS IN 2003/008
T.Speer, K.Prokofiev, R.Fruhwirth, W.Waltenberger, P.Vanlaer, "Vertex Fitting in the CMS Tracker", CMS Note 2006/032
P.Billoir, S.Qian, "Fast vertex fitting...", NIM A311 (1992) 139.
R.Fruhwirth, R.Kubinec, W.Mitaroff, M.Regler, Comp. Physics Comm. 96, 189 (1996)
P.Avery, lectures on track and vertex fitting"
Definition at line 22 of file KalmanVertexFitter.h.
Definition at line 54 of file KalmanVertexFitter.h.
KalmanVertexFitter::KalmanVertexFitter | ( | bool | useSmoothing = false | ) |
The constructor, setting everything up to have a VertexFitter using the Kalman algorithm.
useSmoothing | Specifies whether the tracks should be refit or not. |
Definition at line 11 of file KalmanVertexFitter.cc.
References defaultParameters(), and setup().
Referenced by clone().
{ edm::ParameterSet pSet = defaultParameters(); setup(pSet, useSmoothing); }
KalmanVertexFitter::KalmanVertexFitter | ( | const edm::ParameterSet & | pSet, |
bool | useSmoothing = false |
||
) |
Same as above, using a ParameterSet to set the convergence criteria
Definition at line 17 of file KalmanVertexFitter.cc.
References setup().
{ setup(pSet, useSmoothing); }
KalmanVertexFitter::KalmanVertexFitter | ( | const KalmanVertexFitter & | other | ) | [inline] |
Definition at line 39 of file KalmanVertexFitter.h.
: theSequentialFitter ( other.theSequentialFitter->clone() ) {}
virtual KalmanVertexFitter::~KalmanVertexFitter | ( | ) | [inline, virtual] |
Definition at line 42 of file KalmanVertexFitter.h.
References theSequentialFitter.
{ delete theSequentialFitter; }
KalmanVertexFitter* KalmanVertexFitter::clone | ( | void | ) | const [inline, virtual] |
Fit vertex out of a VertexSeed
Implements VertexFitter< 5 >.
Definition at line 47 of file KalmanVertexFitter.h.
References KalmanVertexFitter().
{ return new KalmanVertexFitter(* this); }
edm::ParameterSet KalmanVertexFitter::defaultParameters | ( | ) | const [private] |
Definition at line 44 of file KalmanVertexFitter.cc.
References edm::ParameterSet::addParameter().
Referenced by KalmanVertexFitter().
{ edm::ParameterSet pSet; pSet.addParameter<double>("maxDistance", 0.01); pSet.addParameter<int>("maxNbrOfIterations", 10); //10 return pSet; }
void KalmanVertexFitter::setup | ( | const edm::ParameterSet & | pSet, |
bool | useSmoothing | ||
) | [private] |
Default convergence criteria
Definition at line 22 of file KalmanVertexFitter.cc.
References theSequentialFitter.
Referenced by KalmanVertexFitter().
{ if (useSmoothing) { KalmanVertexTrackUpdator<5> vtu; KalmanSmoothedVertexChi2Estimator<5> vse; KalmanTrackToTrackCovCalculator<5> covCalc; SequentialVertexSmoother<5> smoother(vtu, vse, covCalc); theSequentialFitter = new SequentialVertexFitter<5>(pSet, FsmwLinearizationPointFinder(20, -2., 0.4, 10.), KalmanVertexUpdator<5>(), smoother, LinearizedTrackStateFactory()); } else { DummyVertexSmoother<5> smoother; theSequentialFitter = new SequentialVertexFitter<5>(pSet, FsmwLinearizationPointFinder(20, -2., 0.4, 10.), KalmanVertexUpdator<5>(), smoother, LinearizedTrackStateFactory()); } }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< RefCountedVertexTrack > & | tracks, |
const GlobalPoint & | priorPos, | ||
const GlobalError & | priorError | ||
) | const [inline, virtual] |
Fit vertex out of a set of VertexTracks. Uses the specified point and error as the prior estimate of the vertex. This position is not used to relinearize the tracks.
Definition at line 120 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks, priorPos, priorError); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< reco::TransientTrack > & | tracks, |
const reco::BeamSpot & | beamSpot | ||
) | const [inline, virtual] |
Fit vertex out of a set of TransientTracks. The specified BeamSpot will be used as priot, but NOT for the linearization. The specified LinearizationPointFinder will be used to find the linearization point.
Implements VertexFitter< 5 >.
Definition at line 108 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks, beamSpot); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< reco::TransientTrack > & | tracks, |
const GlobalPoint & | priorPos, | ||
const GlobalError & | priorError | ||
) | const [inline, virtual] |
Fit vertex out of a set of RecTracks. Uses the specified point as both the linearization point AND as prior estimate of the vertex position. The error is used for the weight of the prior estimate.
Implements VertexFitter< 5 >.
Definition at line 96 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks, priorPos, priorError); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< reco::TransientTrack > & | tracks, |
const GlobalPoint & | linPoint | ||
) | const [inline, virtual] |
Fit vertex out of a set of RecTracks. Uses the specified linearization point.
Implements VertexFitter< 5 >.
Definition at line 84 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks, linPoint); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< reco::TransientTrack > & | tracks | ) | const [inline, virtual] |
Fit vertex out of a set of RecTracks
Implements VertexFitter< 5 >.
Definition at line 59 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
Referenced by KVFTest::analyze(), KineExample::analyze(), PFRecoTauDiscriminationByFlight::discriminate(), HLTmmkFilter::filter(), V0Fitter::fitAll(), PFDisplacedVertexFinder::fitVertexFromSeed(), HLTDisplacedmumumuVtxProducer::produce(), HLTDisplacedmumuVtxProducer::produce(), cms::HITrackVertexMaker::produceTracks(), HPSPFRecoTauAlgorithm::refitThreeProng(), ConversionVertexFinder::run(), PFRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(), CaloRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(), and MultiVertexFitter::updateSeeds().
{ return theSequentialFitter->vertex(tracks); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< RefCountedVertexTrack > & | tracks | ) | const [inline, virtual] |
Fit vertex out of a set of VertexTracks
Definition at line 67 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks); }
virtual CachingVertex<5> KalmanVertexFitter::vertex | ( | const std::vector< RefCountedVertexTrack > & | tracks, |
const reco::BeamSpot & | spot | ||
) | const [inline, virtual] |
Definition at line 73 of file KalmanVertexFitter.h.
References theSequentialFitter, and SequentialVertexFitter< N >::vertex().
{ return theSequentialFitter->vertex(tracks, spot ); }
const SequentialVertexFitter<5>* KalmanVertexFitter::theSequentialFitter [private] |
Definition at line 137 of file KalmanVertexFitter.h.
Referenced by setup(), vertex(), and ~KalmanVertexFitter().