CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
KalmanVertexFitter Class Reference

#include <KalmanVertexFitter.h>

Inheritance diagram for KalmanVertexFitter:
VertexFitter< 5 >

Public Types

typedef CachingVertex< 5 >::RefCountedVertexTrack RefCountedVertexTrack
 

Public Member Functions

KalmanVertexFitterclone () const override
 
 KalmanVertexFitter (bool useSmoothing=false)
 
 KalmanVertexFitter (const edm::ParameterSet &pSet, bool useSmoothing=false)
 
 KalmanVertexFitter (const KalmanVertexFitter &other)
 
CachingVertex< 5 > vertex (const std::vector< reco::TransientTrack > &tracks) const override
 
CachingVertex< 5 > vertex (const std::vector< reco::TransientTrack > &tracks, const GlobalPoint &linPoint) const override
 
CachingVertex< 5 > vertex (const std::vector< reco::TransientTrack > &tracks, const GlobalPoint &priorPos, const GlobalError &priorError) const override
 
CachingVertex< 5 > vertex (const std::vector< reco::TransientTrack > &tracks, const reco::BeamSpot &beamSpot) const override
 
CachingVertex< 5 > vertex (const std::vector< RefCountedVertexTrack > &tracks) const override
 
CachingVertex< 5 > vertex (const std::vector< RefCountedVertexTrack > &tracks, const GlobalPoint &priorPos, const GlobalError &priorError) const override
 
CachingVertex< 5 > vertex (const std::vector< RefCountedVertexTrack > &tracks, const reco::BeamSpot &spot) const override
 
 ~KalmanVertexFitter () override
 
- Public Member Functions inherited from VertexFitter< 5 >
virtual CachingVertex< Nvertex (const std::vector< typename CachingVertex< N >::RefCountedVertexTrack > &tracks) const=0
 
virtual CachingVertex< Nvertex (const std::vector< typename CachingVertex< N >::RefCountedVertexTrack > &tracks, const GlobalPoint &priorPos, const GlobalError &priorError) const=0
 
virtual CachingVertex< Nvertex (const std::vector< typename CachingVertex< N >::RefCountedVertexTrack > &tracks, const reco::BeamSpot &spot) const=0
 
 VertexFitter ()
 
virtual ~VertexFitter ()
 

Private Member Functions

edm::ParameterSet defaultParameters () const
 
void setup (const edm::ParameterSet &pSet, bool useSmoothing)
 

Private Attributes

const SequentialVertexFitter< 5 > * theSequentialFitter
 

Detailed Description

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.

Member Typedef Documentation

◆ RefCountedVertexTrack

Definition at line 45 of file KalmanVertexFitter.h.

Constructor & Destructor Documentation

◆ KalmanVertexFitter() [1/3]

KalmanVertexFitter::KalmanVertexFitter ( bool  useSmoothing = false)

The constructor, setting everything up to have a VertexFitter using the Kalman algorithm.

Parameters
useSmoothingSpecifies whether the tracks should be refit or not.

Definition at line 10 of file KalmanVertexFitter.cc.

10  {
12  setup(pSet, useSmoothing);
13 }

References defaultParameters(), and setup().

Referenced by clone().

◆ KalmanVertexFitter() [2/3]

KalmanVertexFitter::KalmanVertexFitter ( const edm::ParameterSet pSet,
bool  useSmoothing = false 
)

Same as above, using a ParameterSet to set the convergence criteria

Definition at line 15 of file KalmanVertexFitter.cc.

15 { setup(pSet, useSmoothing); }

References setup().

◆ KalmanVertexFitter() [3/3]

KalmanVertexFitter::KalmanVertexFitter ( const KalmanVertexFitter other)
inline

Definition at line 38 of file KalmanVertexFitter.h.

38 : theSequentialFitter(other.theSequentialFitter->clone()) {}

◆ ~KalmanVertexFitter()

KalmanVertexFitter::~KalmanVertexFitter ( )
inlineoverride

Definition at line 40 of file KalmanVertexFitter.h.

40 { delete theSequentialFitter; }

References theSequentialFitter.

Member Function Documentation

◆ clone()

KalmanVertexFitter* KalmanVertexFitter::clone ( void  ) const
inlineoverridevirtual

Fit vertex out of a VertexSeed

Implements VertexFitter< 5 >.

Definition at line 42 of file KalmanVertexFitter.h.

42 { return new KalmanVertexFitter(*this); }

References KalmanVertexFitter().

◆ defaultParameters()

edm::ParameterSet KalmanVertexFitter::defaultParameters ( ) const
private

Definition at line 38 of file KalmanVertexFitter.cc.

38  {
39  edm::ParameterSet pSet;
40  pSet.addParameter<double>("maxDistance", 0.01);
41  pSet.addParameter<int>("maxNbrOfIterations", 10); //10
42  return pSet;
43 }

References edm::ParameterSet::addParameter().

Referenced by KalmanVertexFitter().

◆ setup()

void KalmanVertexFitter::setup ( const edm::ParameterSet pSet,
bool  useSmoothing 
)
private

Default convergence criteria

Definition at line 17 of file KalmanVertexFitter.cc.

17  {
18  if (useSmoothing) {
22  SequentialVertexSmoother<5> smoother(vtu, vse, covCalc);
24  FsmwLinearizationPointFinder(20, -2., 0.4, 10.),
26  smoother,
28  } else {
29  DummyVertexSmoother<5> smoother;
31  FsmwLinearizationPointFinder(20, -2., 0.4, 10.),
33  smoother,
35  }
36 }

References theSequentialFitter.

Referenced by KalmanVertexFitter().

◆ vertex() [1/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< reco::TransientTrack > &  tracks) const
inlineoverridevirtual

◆ vertex() [2/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< reco::TransientTrack > &  tracks,
const GlobalPoint linPoint 
) const
inlineoverridevirtual

Fit vertex out of a set of RecTracks. Uses the specified linearization point.

Implements VertexFitter< 5 >.

Definition at line 67 of file KalmanVertexFitter.h.

68  {
69  return theSequentialFitter->vertex(tracks, linPoint);
70  }

References theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

◆ vertex() [3/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< reco::TransientTrack > &  tracks,
const GlobalPoint priorPos,
const GlobalError priorError 
) const
inlineoverridevirtual

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 77 of file KalmanVertexFitter.h.

79  {
80  return theSequentialFitter->vertex(tracks, priorPos, priorError);
81  }

References theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

◆ vertex() [4/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< reco::TransientTrack > &  tracks,
const reco::BeamSpot beamSpot 
) const
inlineoverridevirtual

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 87 of file KalmanVertexFitter.h.

88  {
90  }

References pwdgSkimBPark_cfi::beamSpot, theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

◆ vertex() [5/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< RefCountedVertexTrack > &  tracks) const
inlineoverride

Fit vertex out of a set of VertexTracks

Definition at line 55 of file KalmanVertexFitter.h.

55  {
57  }

References theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

◆ vertex() [6/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< RefCountedVertexTrack > &  tracks,
const GlobalPoint priorPos,
const GlobalError priorError 
) const
inlineoverride

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 96 of file KalmanVertexFitter.h.

98  {
99  return theSequentialFitter->vertex(tracks, priorPos, priorError);
100  }

References theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

◆ vertex() [7/7]

CachingVertex<5> KalmanVertexFitter::vertex ( const std::vector< RefCountedVertexTrack > &  tracks,
const reco::BeamSpot spot 
) const
inlineoverride

Definition at line 59 of file KalmanVertexFitter.h.

60  {
61  return theSequentialFitter->vertex(tracks, spot);
62  }

References theSequentialFitter, PDWG_EXOHSCP_cff::tracks, and SequentialVertexFitter< N >::vertex().

Referenced by Tau.Tau::dxy().

Member Data Documentation

◆ theSequentialFitter

const SequentialVertexFitter<5>* KalmanVertexFitter::theSequentialFitter
private

Definition at line 111 of file KalmanVertexFitter.h.

Referenced by setup(), vertex(), and ~KalmanVertexFitter().

DummyVertexSmoother
Definition: DummyVertexSmoother.h:11
KalmanVertexFitter::KalmanVertexFitter
KalmanVertexFitter(bool useSmoothing=false)
Definition: KalmanVertexFitter.cc:10
KalmanVertexUpdator< 5 >
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
KalmanVertexTrackUpdator< 5 >
FsmwLinearizationPointFinder
Definition: FsmwLinearizationPointFinder.h:23
SequentialVertexSmoother< 5 >
KalmanTrackToTrackCovCalculator
Definition: KalmanTrackToTrackCovCalculator.h:13
LinearizedTrackStateFactory
Definition: LinearizedTrackStateFactory.h:14
KalmanSmoothedVertexChi2Estimator< 5 >
SequentialVertexFitter< 5 >
trackingPlots.other
other
Definition: trackingPlots.py:1467
edm::ParameterSet
Definition: ParameterSet.h:47
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:135
KalmanVertexFitter::defaultParameters
edm::ParameterSet defaultParameters() const
Definition: KalmanVertexFitter.cc:38
KalmanVertexFitter::setup
void setup(const edm::ParameterSet &pSet, bool useSmoothing)
Definition: KalmanVertexFitter.cc:17
SequentialVertexFitter::vertex
CachingVertex< N > vertex(const std::vector< reco::TransientTrack > &tracks) const override
Definition: SequentialVertexFitter.cc:79
KalmanVertexFitter::theSequentialFitter
const SequentialVertexFitter< 5 > * theSequentialFitter
Definition: KalmanVertexFitter.h:111