Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:06

0001 #ifndef ConfigurableAnnealing_H
0002 #define ConfigurableAnnealing_H
0003 
0004 #include "RecoVertex/VertexTools/interface/AnnealingSchedule.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include <vector>
0007 
0008 class ConfigurableAnnealing : public AnnealingSchedule {
0009   /**
0010    *  An annealing schedule that is completely configurable
0011    *  via edm::ParameterSet
0012    */
0013 
0014 public:
0015   ConfigurableAnnealing(const edm::ParameterSet&);
0016   ~ConfigurableAnnealing() override;
0017   ConfigurableAnnealing(const ConfigurableAnnealing&);
0018   void anneal() override;
0019   void resetAnnealing() override;
0020   double phi(double chi2) const override;
0021   double weight(double chi2) const override;
0022   double cutoff() const override;
0023   double currentTemp() const override;
0024   double initialTemp() const override;
0025   bool isAnnealed() const override;
0026   void debug() const override;
0027 
0028   ConfigurableAnnealing* clone() const override;
0029 
0030 private:
0031   AnnealingSchedule* theImpl;
0032 };
0033 
0034 #endif