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 public:
16  DeterministicAnnealing(float cutoff = 3.0);
17  DeterministicAnnealing(const std::vector<float>& sched, float cutoff = 3.0);
18 
19  void anneal() override; //< One annealing step. theT *= theRatio.
20  void resetAnnealing() override; //< theT = theT0.
21 
25  double phi(double chi2) const override;
26 
30  double weight(double chi2) const override;
31 
35  bool isAnnealed() const override;
36 
37  void debug() const override;
38 
42  // double weight ( double chi2, const vector < double > & chi2s ) const;
43 
44  double cutoff() const override;
45  double currentTemp() const override;
46  double initialTemp() const override;
47 
48  DeterministicAnnealing* clone() const override { return new DeterministicAnnealing(*this); };
49 
50 private:
51  std::vector<float> theTemperatures;
52  unsigned int theIndex;
53  double theChi2cut;
55 };
56 
57 #endif
double currentTemp() const override
double phi(double chi2) const override
DeterministicAnnealing * clone() const override
double weight(double chi2) const override
double cutoff() const override
double initialTemp() const override
DeterministicAnnealing(float cutoff=3.0)
bool isAnnealed() const override
std::vector< float > theTemperatures
void debug() const override