CMS 3D CMS Logo

GeometricAnnealing.h
Go to the documentation of this file.
1 #ifndef GeometricAnnealing_H
2 #define GeometricAnnealing_H
3 
5 #include <vector>
6 
8 public:
16  GeometricAnnealing(const double cutoff = 3.0, const double T = 256.0, const double annealing_ratio = 0.25);
17 
18  void anneal() override; //< One annealing step. theT *= theRatio.
19  void resetAnnealing() override; //< theT = theT0.
20 
24  double phi(double chi2) const override;
25 
29  double weight(double chi2) const override;
30 
31  double cutoff() const override;
32  double currentTemp() const override;
33  double initialTemp() const override;
34 
38  bool isAnnealed() const override;
39 
40  void debug() const override;
41 
42  GeometricAnnealing* clone() const override { return new GeometricAnnealing(*this); };
43 
44 private:
45  double theT0;
46  double theT;
47  double theChi2cut;
48  double theRatio;
49 };
50 
51 #endif
double currentTemp() const override
double phi(double chi2) const override
double initialTemp() const override
void resetAnnealing() override
double weight(double chi2) const override
GeometricAnnealing * clone() const override
double cutoff() const override
GeometricAnnealing(const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)
void anneal() override
bool isAnnealed() const override
long double T
void debug() const override