File AnnealingUtility.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class AnnealingUtility
#include <Acts/Utilities/AnnealingUtility.hpp>

Implements a deterministic thermodynamic annealing scheme Ref.

(1): CERN-THESIS-2010-027

Public Functions

inline AnnealingUtility(const Config &cfg = Config())

Constructor.

void anneal(State &state) const

Does the actual annealing step.

double getWeight(State &state, double chi2, const std::vector<double> &allChi2) const

Weight access.

Parameters
  • state – The state object

  • chi2 – Chi^2 for e.g. current track, i.e. compatibility of track to current vertex candidate

  • allChi2 – Vector of all chi^2 values, i.e. e.g. compatibilities of current track to all vertices it is currently attached to

Returns

Calculated weight according to Eq.(5.46) in Ref.(1)

double getWeight(State &state, double chi2) const

Weight access.

Parameters
  • state – The state object

  • chi2 – Chi^2

Returns

Calculated weight

Private Members

Config m_cfg

Configuration object.

std::vector<double> m_gaussCutTempVec
struct Config
#include <Acts/Utilities/AnnealingUtility.hpp>

The configuration struct.

Public Functions

inline Config(const std::vector<double> &temperatures = {64., 16., 4., 2., 1.5, 1.})

Public Members

double cutOff = {9.}
std::vector<double> setOfTemperatures
struct State
#include <Acts/Utilities/AnnealingUtility.hpp>

The annealing state Resetting the state is done by just creating a new instance.

Public Members

unsigned int currentTemperatureIndex = {0}
bool equilibriumReached = {false}