CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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(); //< One annealing step. theT *= theRatio.
22  void resetAnnealing(); //< theT = theT0.
23 
27  double phi ( double chi2 ) const;
28 
32  double weight ( double chi2 ) const;
33 
34  double cutoff() const;
35  double currentTemp() const;
36  double initialTemp() const;
37 
41  bool isAnnealed() const;
42 
43  void debug() const;
44 
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
GeometricAnnealing * clone() const
double cutoff() const
double weight(double chi2) const
GeometricAnnealing(const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)
double phi(double chi2) const
bool isAnnealed() const
double initialTemp() const
double currentTemp() const
long double T