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 
9 public:
10 
18  GeometricAnnealing( const double cutoff=3.0, const double T=256.0,
19  const double annealing_ratio=0.25 );
20 
21  void anneal() override; //< One annealing step. theT *= theRatio.
22  void resetAnnealing() override; //< theT = theT0.
23 
27  double phi ( double chi2 ) const override;
28 
32  double weight ( double chi2 ) const override;
33 
34  double cutoff() const override;
35  double currentTemp() const override;
36  double initialTemp() const override;
37 
41  bool isAnnealed() const override;
42 
43  void debug() const override;
44 
45  GeometricAnnealing * clone() const override
46  {
47  return new GeometricAnnealing ( * this );
48  };
49 
50 private:
51  double theT0;
52  double theT;
53  double theChi2cut;
54  double theRatio;
55 
56 };
57 
58 #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