CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoVertex/VertexTools/interface/AnnealingSchedule.h

Go to the documentation of this file.
00001 #ifndef AnnealingSchedule_H
00002 #define AnnealingSchedule_H
00003 
00004 #include <vector>
00005 
00006 class AnnealingSchedule {
00010 public:
00011 
00012   virtual ~AnnealingSchedule() {};
00013   virtual void anneal() = 0; //< One annealing step.
00014   virtual void resetAnnealing() = 0;
00015 
00019   virtual double phi ( double chi2 ) const = 0;
00020 
00024   virtual double weight ( double chi2 ) const = 0;
00025 
00029   // double weight ( double chi2, const vector < double > & chi2s ) const;
00030 
00034   virtual bool isAnnealed() const = 0;
00035 
00036   virtual double cutoff() const = 0;
00037   virtual double currentTemp() const = 0;
00038   virtual double initialTemp() const = 0;
00039 
00040   virtual void debug() const = 0;
00041 
00042   virtual AnnealingSchedule * clone() const = 0;
00043 };
00044 
00045 #endif