#include <SequentialVertexFitter.h>
Public Types | |
typedef ReferenceCountingPointer < LinearizedTrackState< N > > | RefCountedLinearizedTrackState |
typedef ReferenceCountingPointer < RefittedTrackState< N > > | RefCountedRefittedTrackState |
typedef ReferenceCountingPointer < VertexTrack< N > > | RefCountedVertexTrack |
Protected Member Functions | |
SequentialVertexFitter () | |
Private Member Functions | |
CachingVertex< N > | fit (const std::vector< RefCountedVertexTrack > &tracks, const VertexState priorVertex, bool withPrior) const |
bool | hasNan (const GlobalPoint &point) const |
std::vector < RefCountedVertexTrack > | linearizeTracks (const std::vector< reco::TransientTrack > &tracks, const VertexState state) const |
void | readParameters () |
std::vector < RefCountedVertexTrack > | reLinearizeTracks (const std::vector< RefCountedVertexTrack > &tracks, const VertexState state) const |
void | setDefaultParameters () |
Private Attributes | |
LinearizationPointFinder * | theLinP |
const AbstractLTSFactory< N > * | theLTrackFactory |
float | theMaxShift |
int | theMaxStep |
edm::ParameterSet | thePSet |
VertexSmoother< N > * | theSmoother |
VertexUpdator< N > * | theUpdator |
VertexTrackFactory< N > | theVTrackFactory |
Sequential vertex fitter, where the vertex is updated one track at the time. The fitter will iterate over the set of tracks until the transverse distance between vertices computed in the previous and the current iterations is less than the specified convergence criteria, or until the maximum number of iterations is reached. The transverse distance determines the linearization error. The default convergence criterion is 1 mm. The default maximum number of steps is 10. These parameters can be configured in .orcarc ( SequentialVertexFitter:maximumDistance and SequentialVertexFitter:maximumNumberOfIterations). After the vertex fit, the tracks can be refit with the additional constraint of the vertex position.
Definition at line 34 of file SequentialVertexFitter.h.
typedef ReferenceCountingPointer<LinearizedTrackState<N> > SequentialVertexFitter< N >::RefCountedLinearizedTrackState |
Definition at line 38 of file SequentialVertexFitter.h.
typedef ReferenceCountingPointer<RefittedTrackState<N> > SequentialVertexFitter< N >::RefCountedRefittedTrackState |
Definition at line 36 of file SequentialVertexFitter.h.
typedef ReferenceCountingPointer<VertexTrack<N> > SequentialVertexFitter< N >::RefCountedVertexTrack |
Definition at line 37 of file SequentialVertexFitter.h.
SequentialVertexFitter< N >::SequentialVertexFitter | ( | const LinearizationPointFinder & | linP, |
const VertexUpdator< N > & | updator, | ||
const VertexSmoother< N > & | smoother, | ||
const AbstractLTSFactory< N > & | ltsf | ||
) |
Reimplemented constructors to use any kind of linearisation point finder, vertex updator and smoother. If no smoother is to be used, do not specify an instance for it.
Definition at line 21 of file SequentialVertexFitter.cc.
References SequentialVertexFitter< N >::setDefaultParameters().
SequentialVertexFitter< N >::SequentialVertexFitter | ( | const edm::ParameterSet & | pSet, |
const LinearizationPointFinder & | linP, | ||
const VertexUpdator< N > & | updator, | ||
const VertexSmoother< N > & | smoother, | ||
const AbstractLTSFactory< N > & | ltsf | ||
) |
Same as above, using a ParameterSet to set the convergence criteria
Definition at line 33 of file SequentialVertexFitter.cc.
References SequentialVertexFitter< N >::readParameters().
SequentialVertexFitter< N >::SequentialVertexFitter | ( | const SequentialVertexFitter< N > & | original | ) |
Copy constructor
Definition at line 47 of file SequentialVertexFitter.cc.
References LinearizationPointFinder::clone(), SequentialVertexFitter< N >::linearizationPointFinder(), SequentialVertexFitter< N >::linearizedTrackStateFactory(), SequentialVertexFitter< N >::maxShift(), SequentialVertexFitter< N >::maxStep(), SequentialVertexFitter< N >::parameterSet(), SequentialVertexFitter< N >::vertexSmoother(), and SequentialVertexFitter< N >::vertexUpdator().
|
override |
Definition at line 58 of file SequentialVertexFitter.cc.
|
inlineprotected |
Default constructor. Is here, as we do not want anybody to use it.
Definition at line 172 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::clone().
|
inlineoverridevirtual |
Fit vertex out of a VertexSeed
Implements VertexFitter< N >.
Definition at line 163 of file SequentialVertexFitter.h.
Referenced by GsfVertexFitter::GsfVertexFitter().
|
private |
The methode where the vrte fit is actually done. The seed is used as the prior estimate in the vertex fit (in case its error is large, it will have little influence on the fit. The tracks will be relinearized in case further loops are needed. tracks The tracks to use in the fit. priorVertex The prior estimate of the vertex
Definition at line 221 of file SequentialVertexFitter.cc.
References relativeConstraints::error, VertexState::error(), mps_fire::i, gpuClustering::id, CachingVertex< N >::isValid(), LogDebug, VertexState::position(), CachingVertex< N >::position(), tracks, transverse(), and CachingVertex< N >::vertexState().
Referenced by trackingPlots.Iteration::modules().
|
inlineprivate |
Checks whether any of the three coordinates is a Nan
Definition at line 221 of file SequentialVertexFitter.h.
|
inline |
Method returning the fitted vertex, from a VertexSeed. For the first loop, the position of the VertexSeed will be used as linearization point. If subsequent loops are needed, the new VertexTracks will be created with the last estimate of the vertex as linearization point. In case a non-sero error is given, the position and error of the VertexSeed will be used as prior estimate in the vertex fit.
seed | The VertexSeed to fit. |
Definition at line 151 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
inline |
Definition at line 165 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
private |
Construct a container of VertexTrack from a set of RecTracks.
tracks | The container of RecTracks. |
seed | The seed to use for the VertexTracks. This position will also be used as the new linearization point. |
Definition at line 184 of file SequentialVertexFitter.cc.
References mps_fire::i, and VertexState::position().
|
inline |
Definition at line 157 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter(), and SequentialVertexFitter< 5 >::setMaximumDistance().
|
inline |
Definition at line 159 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
inline |
Definition at line 161 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
private |
Reads the configurable parameters.
Definition at line 66 of file SequentialVertexFitter.cc.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
private |
Construct new a container of VertexTrack with a new linearization point and vertex seed, from an existing set of VertexTrack, from which only the recTracks will be used.
tracks | The original container of VertexTracks, from which the RecTracks will be extracted. |
seed | The seed to use for the VertexTracks. This position will also be used as the new linearization point. |
Definition at line 202 of file SequentialVertexFitter.cc.
References mps_fire::i, VertexState::position(), and VertexState::weight().
|
private |
Definition at line 72 of file SequentialVertexFitter.cc.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
inline |
Method to set the convergence criterion (the maximum distance between the vertex computed in the previous and the current iterations to consider the fit to have converged)
Definition at line 75 of file SequentialVertexFitter.h.
|
inline |
Method to set the maximum number of iterations to perform
Definition at line 81 of file SequentialVertexFitter.h.
|
overridevirtual |
Method returning the fitted vertex, from a container of reco::TransientTracks. The linearization point will be searched with the given LP finder. No prior vertex position will be used in the vertex fit.
tracks | The container of RecTracks to fit. |
Implements VertexFitter< N >.
Definition at line 79 of file SequentialVertexFitter.cc.
References relativeConstraints::error, gpuVertexFinder::fit, and gpuClustering::id.
Referenced by Tau.Tau::dxy(), GsfVertexFitter::vertex(), and KalmanVertexFitter::vertex().
|
override |
Method returning the fitted vertex, from a container of VertexTracks. For the first loop, the LinearizedTrackState contained in the VertexTracks will be used. If subsequent loops are needed, the new VertexTracks will be created with the last estimate of the vertex as linearization point. No prior vertex position will be used in the vertex fit.
tracks | The container of VertexTracks to fit. |
Definition at line 102 of file SequentialVertexFitter.cc.
References relativeConstraints::error, gpuVertexFinder::fit, and gpuClustering::id.
Referenced by Tau.Tau::dxy().
|
override |
Same as above, only now also with BeamSpot!
Definition at line 95 of file SequentialVertexFitter.cc.
References gpuVertexFinder::fit.
Referenced by Tau.Tau::dxy().
|
overridevirtual |
Fit vertex out of a set of RecTracks. Uses the specified linearization point.
Implements VertexFitter< N >.
Definition at line 116 of file SequentialVertexFitter.cc.
References relativeConstraints::error, gpuVertexFinder::fit, and gpuClustering::id.
Referenced by Tau.Tau::dxy().
|
overridevirtual |
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< N >.
Definition at line 132 of file SequentialVertexFitter.cc.
References relativeConstraints::error, gpuVertexFinder::fit, and gpuClustering::id.
Referenced by Tau.Tau::dxy().
|
overridevirtual |
Fit vertex out of a set of RecTracks. Uses the position 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< N >.
Definition at line 161 of file SequentialVertexFitter.cc.
References gpuVertexFinder::fit.
Referenced by Tau.Tau::dxy().
|
override |
Fit vertex out of a set of VertexTracks Uses the position and error for the prior estimate of the vertex. This position is not used to relinearize the tracks.
Definition at line 174 of file SequentialVertexFitter.cc.
References gpuVertexFinder::fit.
Referenced by Tau.Tau::dxy().
|
inline |
Definition at line 155 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
inline |
Definition at line 153 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< N >::SequentialVertexFitter().
|
private |
Definition at line 230 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::linearizationPointFinder().
|
private |
Definition at line 233 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::linearizedTrackStateFactory().
|
private |
Definition at line 226 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::maxShift(), and SequentialVertexFitter< 5 >::setMaximumDistance().
|
private |
Definition at line 227 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::maxStep(), and SequentialVertexFitter< 5 >::setMaximumNumberOfIterations().
|
private |
Definition at line 229 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::parameterSet().
|
private |
Definition at line 232 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::vertexSmoother().
|
private |
Definition at line 231 of file SequentialVertexFitter.h.
Referenced by SequentialVertexFitter< 5 >::vertexUpdator().
|
private |
Definition at line 235 of file SequentialVertexFitter.h.