13 double gauss(
const double value2,
const double error2) {
14 return exp(-1./2.*value2/error2);
34 return StatusCode::SUCCESS;
40 return StatusCode::SUCCESS;
54 ATH_MSG_ERROR(
"The vector SetOfTemperatures for the annealing is empty" );
62 const std::vector<double>& allchisq)
const
66 for (
double ch : allchisq) {
67 allweight+=gauss(ch,
temp);
69 double actualweight(gauss(chisq,
temp));
virtual StatusCode finalize() override
virtual double getWeight(const AnnealingState &state, double chisq, const std::vector< double > &allchisq) const override
Weight access method.
std::vector< double > m_SetOfTemperatures
A vector of temperatures, you will start from SetOfTemperature[0] and Anneal towards SetOfTemperature...
DetAnnealingMaker(const std::string &t, const std::string &n, const IInterface *p)
Default constructor due to Athena interface.
double m_cutoff
Weight will be insensitive to chi2 at order of magnitude of the cutoff...
virtual void anneal(AnnealingState &state) const override
One more annealing step.
virtual void reset(AnnealingState &state) const override
Resets the annealing process to its beginning.
virtual double actualTemp(const AnnealingState &state) const override
Access to the actual temperature value.
virtual StatusCode initialize() override
Ensure that the ATLAS eigen extensions are properly loaded.