CMS 3D CMS Logo

DeterministicAnnealing.h
Go to the documentation of this file.
1 #ifndef DeterministicAnnealing_H
2 #define DeterministicAnnealing_H
3 
5 #include <vector>
6 
8 
9 public:
10 
18  DeterministicAnnealing( float cutoff = 3.0 );
19  DeterministicAnnealing( const std::vector < float > & sched, float cutoff = 3.0 );
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 
37  bool isAnnealed() const;
38 
39  void debug() const;
40 
44  // double weight ( double chi2, const vector < double > & chi2s ) const;
45 
46 
47  double cutoff() const;
48  double currentTemp() const;
49  double initialTemp() const;
50 
52  {
53  return new DeterministicAnnealing ( * this );
54  };
55 
56 private:
57  std::vector<float> theTemperatures;
58  unsigned int theIndex;
59  double theChi2cut;
61 };
62 
63 #endif
double weight(double chi2) const
DeterministicAnnealing * clone() const
DeterministicAnnealing(float cutoff=3.0)
std::vector< float > theTemperatures
double phi(double chi2) const