Class Acts::AdaptiveMultiVertexFitter¶
-
template<typename input_track_t, typename linearizer_t>
class 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 type
linearizer_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>
inline AdaptiveMultiVertexFitter(Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO))¶ Constructor used if InputTrack_t type == BoundTrackParameters.
- Parameters
cfg – Configuration object
logger – The logging instance
-
inline 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 object
func – Function extracting BoundTrackParameters from InputTrack_t object
logger – 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)
- Parameters
state – The state object
newVertex – New vertex to be added to fit
linearizer – The track linearizer
vertexingOptions – Vertexing options
- Returns
Result<void> object
-
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
- Parameters
state – The state object
verticesToFit – Vector containing all vertices to be fitted
linearizer – The track linearizer
vertexingOptions – Vertexing options
- Returns
Result<void> object
-
struct Config¶
Public Functions
-
inline 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}¶
-
inline Config(const IPEstimator &est)¶
-
struct State¶
The fitter state.
Public Functions
-
inline State(const MagneticFieldProvider &field, const Acts::MagneticFieldContext &magContext)¶
-
State() = default¶
Default State constructor.
-
inline void addVertexToMultiMap(Vertex<InputTrack_t> &vtx)¶
-
inline 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¶
-
inline State(const MagneticFieldProvider &field, const Acts::MagneticFieldContext &magContext)¶