CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoVertex/VertexTools/interface/GeometricAnnealing.h

Go to the documentation of this file.
00001 #ifndef GeometricAnnealing_H
00002 #define GeometricAnnealing_H
00003 
00004 #include "RecoVertex/VertexTools/interface/AnnealingSchedule.h"
00005 #include <vector>
00006 
00007 class GeometricAnnealing : public AnnealingSchedule {
00008 
00009 public:
00010 
00018   GeometricAnnealing( const double cutoff=3.0, const double T=256.0,
00019      const double annealing_ratio=0.25 );
00020 
00021   void anneal(); //< One annealing step. theT *= theRatio.
00022   void resetAnnealing(); //< theT = theT0.
00023 
00027   double phi ( double chi2 ) const;
00028 
00032   double weight ( double chi2 ) const;
00033 
00034   double cutoff() const;
00035   double currentTemp() const;
00036   double initialTemp() const;
00037 
00041   bool isAnnealed() const;
00042 
00043   void debug() const;
00044 
00045   GeometricAnnealing * clone() const
00046   {
00047     return new GeometricAnnealing ( * this );
00048   };
00049 
00050 private:
00051   double theT0;
00052   double theT;
00053   double theChi2cut;
00054   double theRatio;
00055 
00056 };
00057 
00058 #endif