![]() |
ATLAS Offline Software
|
#include <AdaptiveVertexFitter.h>
Public Member Functions | |
| virtual StatusCode | initialize () override |
| AdaptiveVertexFitter (const std::string &t, const std::string &n, const IInterface *p) | |
| default constructor due to Athena interface | |
| virtual | ~AdaptiveVertexFitter () |
| destructor | |
| virtual xAOD::Vertex * | fit (const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeut, const Amg::Vector3D &startingPoint) const override |
| Interface for xAOD::TrackParticle with starting point. | |
| virtual xAOD::Vertex * | fit (const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override |
| virtual xAOD::Vertex * | fit (const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeut, const xAOD::Vertex &constraint) const override |
| Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the starting point. | |
| virtual xAOD::Vertex * | fit (const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const override |
| virtual xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const Amg::Vector3D &startingPoint) const override |
| Interface for MeasuredPerigee with starting point. | |
| virtual xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const override |
| virtual xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &constraint) const override |
| Interface for MeasuredPerigee with vertex constraint. | |
| virtual xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const override |
| xAOD::Vertex * | fit (const std::vector< const Trk::Track * > &Vectortrk, const xAOD::Vertex &constraint, const Amg::Vector3D &startingPoint) const |
| fit providing vector of tracks, constraint and startingPoint | |
| xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &constraint, const Amg::Vector3D &startingPoint) const |
| fit providing vector of ParametersBase, constraint and startingPoint | |
| xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint, const Amg::Vector3D &startingPoint) const |
| xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList) const override |
| fit providing vector of TrackParameters and NeutralParameters | |
| xAOD::Vertex * | fit (const std::vector< const Trk::TrackParameters * > &perigeeList) const override |
| xAOD::Vertex * | fit (const std::vector< const Trk::TrackParticleBase * > &perigeeList) const |
| fit providing vector of TrackParticleBase | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const |
| Interface for xAOD::TrackParticle with starting point Event Context aware interface. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const Amg::Vector3D &startingPoint) const |
| Interface for xAOD::TrackParticle and xAOD::NeutralParticle with starting point. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeu, const xAOD::Vertex &constraint) const |
| Interface for xAOD::TrackParticle and xAOD::NeutralParticle with vertex constraint the position of the constraint is ALWAYS the starting point Event Context aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const |
| Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the starting point Event Context aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const Amg::Vector3D &startingPoint) const |
| Interface for TrackParameters and NeutralParameters with starting point Event Context aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const |
| Interface for TrackParameters with starting point Event Context aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &constraint) const |
| Interface for TrackParameters and NeutralParameters with vertex constraint the position of the constraint is ALWAYS the starting point EventContext aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const |
| Interface for TrackParameters with vertex constraint the position of the constraint is ALWAYS the starting point EventContext aware method. | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList) const |
| Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a first linearization point (in iterative fitters). | |
| virtual std::unique_ptr< xAOD::Vertex > | fit (const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList) const |
| Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a first linearization point (in iterative fitters). | |
Private Member Functions | |
| xAOD::Vertex * | _fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList=std::vector< const Trk::NeutralParameters * >(), const xAOD::Vertex &constraint=xAOD::Vertex(), const Amg::Vector3D &startingPoint=Amg::Vector3D(), bool IsConstraint=false, bool IsStartingPoint=false) const |
| Internal method for fitting a list of TrackParameters and NeutralParameters, with or without constraint and starting point. | |
| xAOD::Vertex * | _fit (const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint=xAOD::Vertex(), const Amg::Vector3D &startingPoint=Amg::Vector3D(), bool IsConstraint=false, bool IsStartingPoint=false) const |
| xAOD::Vertex * | _fit (const std::vector< const Trk::Track * > &VectorTrk, const xAOD::Vertex &constraint=xAOD::Vertex(), const Amg::Vector3D &startingPoint=Amg::Vector3D(), bool IsConstraint=false, bool IsStartingPoint=false) const |
| Internal method for fitting a list of Tracks, with or without constraint and starting point. | |
| xAOD::Vertex * | dothefit (const xAOD::Vertex &ConstraintVertex, const Amg::Vector3D &SeedVertex, std::vector< VxTrackAtVertex > &myLinTracks) const |
| Internal method, called by the two _fit internal functions, in order to perform the fit, after having initialized the input (constraint + seed). | |
Private Attributes | |
| ToolHandle< Trk::IVertexSeedFinder > | m_SeedFinder |
| ToolHandle< Trk::IVertexLinearizedTrackFactory > | m_LinearizedTrackFactory |
| ToolHandle< Trk::IVertexTrackCompatibilityEstimator > | m_TrackCompatibilityEstimator |
| ToolHandle< Trk::IImpactPoint3dEstimator > | m_ImpactPoint3dEstimator |
| ToolHandle< Trk::IVertexUpdator > | m_VertexUpdator |
| ToolHandle< Trk::IVertexSmoother > | m_VertexSmoother |
| ToolHandle< Trk::IVertexAnnealingMaker > | m_AnnealingMaker |
| long int | m_maxIterations |
| Number of maximum iterations. | |
| double | m_maxDistToLinPoint |
| Maximum distance of linearization point of track to actual fitted vertex before needing to relinearize (in mm) | |
| double | m_initialError |
| Initial error in form of diagonal elements of the inverse of the covariance matrix (name is misleading: take the error, square it and initialize the variable with its inverse) | |
| bool | m_onlyzseed |
| Variable is true if seeding has to be performed only on the z direction. | |
| bool | m_doSmoothing |
| True if smoothing after fit iterations has to be performed: otherwise the Smoother AlgoTool provided to the fitter will be ignored. | |
This class implements a vertexing fitting algorithm which is adaptive and robust, quite insensitive to the presence of outliers.
The vertex algorithm is based on the typical Kalman-Filtering approach, with the difference that the inverse of the covariance matrices of the track parameters of the tracks which enter the fit are reweighted according to the probability of the tracks to be compatible with the vertex to be fit. In this way outliers/tracks which do not belong to the vertex are smoothly rejected.
Since the estimation of the vertex position during the first fit iterations is not particularly good and the compatiblity estimation of the tracks not always reliable, an annealing technique is also implemented, in order to make the rejection of outliers soft in the beginning and harder towards the end of the fit (for this the Annealing Maker class is responsible: as a default the Temperature of this thermodinamical procedure is lowered according to few predefined steps)
For greater modularity the algorithm is divided into 6 modules (AlgTools in Athena):
This kind of algorithm was implemented for the first time by CMS: for information about the theoretical motivations a good reference is Wolfgang Waltenberger's PhD Thesis and many of the calculations implemented have been extensively shown in theoretical & experimental papers by Fruehwirth, Waltenberger, Strandlie et al.
Changes:
David Shope david.nosp@m..ric.nosp@m.hard..nosp@m.shop.nosp@m.e@cer.nosp@m.n.ch (2016-04-19) EDM Migration to xAOD - from Trk::VxCandidate to xAOD::Vertex, from Trk::RecVertex to xAOD::Vertex, from Trk::Vertex to Amg::Vector3D
Definition at line 86 of file AdaptiveVertexFitter.h.
| Trk::AdaptiveVertexFitter::AdaptiveVertexFitter | ( | const std::string & | t, |
| const std::string & | n, | ||
| const IInterface * | p ) |
default constructor due to Athena interface
Definition at line 29 of file AdaptiveVertexFitter.cxx.
|
virtualdefault |
destructor
|
private |
Internal method for fitting a list of Tracks, with or without constraint and starting point.
Definition at line 257 of file AdaptiveVertexFitter.cxx.
|
private |
Internal method for fitting a list of TrackParameters and NeutralParameters, with or without constraint and starting point.
Definition at line 113 of file AdaptiveVertexFitter.cxx.
|
private |
Definition at line 591 of file AdaptiveVertexFitter.cxx.
|
private |
Internal method, called by the two _fit internal functions, in order to perform the fit, after having initialized the input (constraint + seed).
The real fit happens here.
Definition at line 319 of file AdaptiveVertexFitter.cxx.
|
inline |
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a first linearization point (in iterative fitters).
EventContext aware method.
Definition at line 215 of file IVertexFitter.h.
|
inline |
Interface for TrackParameters with starting point Event Context aware method.
Definition at line 154 of file IVertexFitter.h.
|
inline |
Fit method using the VertexSeedFinder to estimate initial position of the vertex and taking it as a first linearization point (in iterative fitters).
EventContext aware method.
Definition at line 200 of file IVertexFitter.h.
|
inline |
Interface for TrackParameters and NeutralParameters with starting point Event Context aware method.
Definition at line 138 of file IVertexFitter.h.
|
inline |
Interface for TrackParameters and NeutralParameters with vertex constraint the position of the constraint is ALWAYS the starting point EventContext aware method.
Definition at line 169 of file IVertexFitter.h.
|
inline |
Interface for TrackParameters with vertex constraint the position of the constraint is ALWAYS the starting point EventContext aware method.
Definition at line 185 of file IVertexFitter.h.
|
inline |
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
Definition at line 77 of file IVertexFitter.h.
|
inline |
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with starting point.
Event Context aware method
Definition at line 91 of file IVertexFitter.h.
|
inline |
Interface for xAOD::TrackParticle and xAOD::NeutralParticle with vertex constraint the position of the constraint is ALWAYS the starting point Event Context aware method.
Definition at line 108 of file IVertexFitter.h.
|
inline |
Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the starting point Event Context aware method.
Definition at line 124 of file IVertexFitter.h.
| xAOD::Vertex * Trk::AdaptiveVertexFitter::fit | ( | const std::vector< const Trk::Track * > & | Vectortrk, |
| const xAOD::Vertex & | constraint, | ||
| const Amg::Vector3D & | startingPoint ) const |
fit providing vector of tracks, constraint and startingPoint
|
override |
Definition at line 585 of file AdaptiveVertexFitter.cxx.
|
overridevirtual |
Definition at line 558 of file AdaptiveVertexFitter.cxx.
|
override |
fit providing vector of TrackParameters and NeutralParameters
Definition at line 550 of file AdaptiveVertexFitter.cxx.
|
overridevirtual |
Interface for MeasuredPerigee with starting point.
Definition at line 521 of file AdaptiveVertexFitter.cxx.
|
overridevirtual |
Interface for MeasuredPerigee with vertex constraint.
Definition at line 531 of file AdaptiveVertexFitter.cxx.
| xAOD::Vertex * Trk::AdaptiveVertexFitter::fit | ( | const std::vector< const Trk::TrackParameters * > & | perigeeList, |
| const std::vector< const Trk::NeutralParameters * > & | neutralPerigeeList, | ||
| const xAOD::Vertex & | constraint, | ||
| const Amg::Vector3D & | startingPoint ) const |
fit providing vector of ParametersBase, constraint and startingPoint
Definition at line 540 of file AdaptiveVertexFitter.cxx.
|
overridevirtual |
Definition at line 567 of file AdaptiveVertexFitter.cxx.
| xAOD::Vertex * Trk::AdaptiveVertexFitter::fit | ( | const std::vector< const Trk::TrackParameters * > & | perigeeList, |
| const xAOD::Vertex & | constraint, | ||
| const Amg::Vector3D & | startingPoint ) const |
Definition at line 576 of file AdaptiveVertexFitter.cxx.
| xAOD::Vertex * Trk::AdaptiveVertexFitter::fit | ( | const std::vector< const Trk::TrackParticleBase * > & | perigeeList | ) | const |
fit providing vector of TrackParticleBase
|
inlineoverridevirtual |
Definition at line 116 of file AdaptiveVertexFitter.h.
|
overridevirtual |
Interface for xAOD::TrackParticle with starting point.
Definition at line 604 of file AdaptiveVertexFitter.cxx.
|
overridevirtual |
Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the starting point.
Definition at line 754 of file AdaptiveVertexFitter.cxx.
|
inlineoverridevirtual |
Definition at line 129 of file AdaptiveVertexFitter.h.
|
overridevirtual |
Definition at line 47 of file AdaptiveVertexFitter.cxx.
|
private |
Definition at line 254 of file AdaptiveVertexFitter.h.
|
private |
True if smoothing after fit iterations has to be performed: otherwise the Smoother AlgoTool provided to the fitter will be ignored.
Definition at line 294 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 241 of file AdaptiveVertexFitter.h.
|
private |
Initial error in form of diagonal elements of the inverse of the covariance matrix (name is misleading: take the error, square it and initialize the variable with its inverse)
Definition at line 279 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 232 of file AdaptiveVertexFitter.h.
|
private |
Maximum distance of linearization point of track to actual fitted vertex before needing to relinearize (in mm)
Definition at line 271 of file AdaptiveVertexFitter.h.
|
private |
Number of maximum iterations.
Definition at line 264 of file AdaptiveVertexFitter.h.
|
private |
Variable is true if seeding has to be performed only on the z direction.
In this case, as a guess of the initial position in the transverse plane, the x and y position of the beam spot are used.
Definition at line 287 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 227 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 238 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 249 of file AdaptiveVertexFitter.h.
|
private |
Definition at line 246 of file AdaptiveVertexFitter.h.