Template Class AdaptiveMultiVertexFitter¶
Defined in File AdaptiveMultiVertexFitter.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
template<typename
input_track_t
, typenamelinearizer_t
>
classActs
::
AdaptiveMultiVertexFitter
¶ Implements an adaptive multi-vertex fitter as described in detail in Section 5.3.5 in: Ref.
(1): CERN-THESIS-2010-027, Author: Piacquadio, Giacinto:
Identification of b-jets and investigation of the discovery potential of a Higgs boson in the WH−−>lvbb¯ channel with the ATLAS experiment
- Template Parameters
input_track_t
: Track object typelinearizer_t
: Track linearizer type
Public Types
-
using
InputTrack_t
= input_track_t¶
-
using
Linearizer_t
= linearizer_t¶
-
using
Propagator_t
= typename linearizer_t::Propagator_t¶
Public Functions
-
template<typename
T
= InputTrack_t, std::enable_if_t<std::is_same<T, BoundTrackParameters>::value, int> = 0>AdaptiveMultiVertexFitter
(Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO))¶ Constructor used if InputTrack_t type == BoundTrackParameters.
- Parameters
cfg
: Configuration objectlogger
: The logging instance
-
AdaptiveMultiVertexFitter
(Config &cfg, std::function<BoundTrackParameters(InputTrack_t)> func, std::unique_ptr<const Logger> logger = getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO), )¶ Constructor for user-defined InputTrack_t type != BoundTrackParameters.
- Parameters
cfg
: Configuration objectfunc
: Function extracting BoundTrackParameters from InputTrack_t objectlogger
: The logging instance
-
Result<void>
addVtxToFit
(State &state, Vertex<InputTrack_t> &newVertex, const Linearizer_t &linearizer, const VertexingOptions<InputTrack_t> &vertexingOptions) const¶ Adds new vertex to an existing multi-vertex fit and fits everything together (by invoking the fit_impl method):
The new vertex is added to the fit: all associated tracks get initialized, i.e. ParamsAtIP3d are created (from ImpactPointEstimator) to be later able to estimate in a fast way the compatibility of the tracks to their respective vertices.
All tracks belonging to the new vertex are scanned and all the vertices which share tracks with the new vertex to be fit are also added to the fit.
The multivertex fit is performed with all involved vertices.
This has the advantage that only vertices that are affected by adding the new vertex are refitted.
Note: newVertex has to be properly initialized (seed vertex, constraint vertex, list of MAV)
- Return
Result<void> object
- Parameters
state
: The state objectnewVertex
: New vertex to be added to fitlinearizer
: The track linearizervertexingOptions
: Vertexing options
-
Result<void>
fit
(State &state, const std::vector<Vertex<InputTrack_t>*> &verticesToFit, const Linearizer_t &linearizer, const VertexingOptions<InputTrack_t> &vertexingOptions) const¶ The actual fit function, performs a simultaneous fit of all vertices in
verticesToFit
by invokingfitImpl
- Return
Result<void> object
- Parameters
state
: The state objectverticesToFit
: Vector containing all vertices to be fittedlinearizer
: The track linearizervertexingOptions
: Vertexing options
-
struct
Config
¶ Public Functions
-
Config
(const IPEstimator &est)¶ Config constructor.
- Parameters
est
: ImpactPointEstimator
Public Members
-
AnnealingUtility
annealingTool
¶ Annealing tool used for a thermodynamic annealing scheme for the track weight factors in such a way that with high temperature values (at the beginning) only a slight preference is given to tracks compatible with the estimated vertex position.
With lower temperatures the weighting get stricter such that all incompatible tracks will be dropped at the end while keeping all compatible tracks with a weight=1. Ref. (1): CERN-THESIS-2010-027, Author: Piacquadio, Giacinto:
Identification of b-jets and investigation of the discovery potential of a Higgs boson in the WH−−>lvbb¯ channel with the ATLAS experiment
-
bool
doSmoothing
= {false}¶
-
IPEstimator
ipEst
¶
-
double
maxDistToLinPoint
= {0.5}¶
-
unsigned int
maxIterations
= {30}¶
-
double
maxRelativeShift
= {0.01}¶
-
double
minWeight
= {0.0001}¶
-
-
struct
State
¶ The fitter state.
Public Functions
-
State
(const MagneticFieldProvider &field, const Acts::MagneticFieldContext &magContext)¶
-
State
() = default¶ Default State constructor.
-
void
addVertexToMultiMap
(Vertex<InputTrack_t> &vtx)¶
-
void
removeVertexFromMultiMap
(Vertex<InputTrack_t> &vtx)¶
Public Members
-
AnnealingUtility::State
annealingState
¶
-
IPEstimator::State
ipState
¶
-
Linearizer_t::State
linearizerState
¶
-
std::map<std::pair<const InputTrack_t*, Vertex<InputTrack_t>*>, TrackAtVertex<InputTrack_t>>
tracksAtVerticesMap
¶
-
std::multimap<const InputTrack_t*, Vertex<InputTrack_t>*>
trackToVerticesMultiMap
¶
-
std::vector<Vertex<InputTrack_t>*>
vertexCollection
¶
-
std::map<Vertex<InputTrack_t>*, VertexInfo<InputTrack_t>>
vtxInfoMap
¶
-