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() 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 
37  bool isAnnealed() const override;
38 
39  void debug() const override;
40 
44  // double weight ( double chi2, const vector < double > & chi2s ) const;
45 
46 
47  double cutoff() const override;
48  double currentTemp() const override;
49  double initialTemp() const override;
50 
51  DeterministicAnnealing * clone() const override
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 initialTemp() const override
double currentTemp() const override
double phi(double chi2) const override
double cutoff() const override
bool isAnnealed() const override
void debug() const override
DeterministicAnnealing(float cutoff=3.0)
std::vector< float > theTemperatures
DeterministicAnnealing * clone() const override
double weight(double chi2) const override