00001 #ifndef ConfigurableAnnealing_H 00002 #define ConfigurableAnnealing_H 00003 00004 #include "RecoVertex/VertexTools/interface/AnnealingSchedule.h" 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include <vector> 00007 00008 class ConfigurableAnnealing : public AnnealingSchedule { 00014 public: 00015 ConfigurableAnnealing( const edm::ParameterSet & ); 00016 ~ConfigurableAnnealing(); 00017 ConfigurableAnnealing( const ConfigurableAnnealing & ); 00018 void anneal(); 00019 void resetAnnealing(); 00020 double phi ( double chi2 ) const; 00021 double weight ( double chi2 ) const; 00022 double cutoff() const; 00023 double currentTemp() const; 00024 double initialTemp() const; 00025 bool isAnnealed() const; 00026 void debug() const; 00027 00028 ConfigurableAnnealing * clone() const; 00029 00030 private: 00031 AnnealingSchedule * theImpl; 00032 }; 00033 00034 #endif