8 #ifndef IMPSPB_MONTE_CARLO_WITH_WTE_H
9 #define IMPSPB_MONTE_CARLO_WITH_WTE_H
11 #include <IMP/spb/spb_config.h>
15 #include <boost/scoped_array.hpp>
17 IMPSPB_BEGIN_NAMESPACE
27 boost::scoped_array<double> bias_;
32 void do_initialize(
double emin,
double emax,
double sigma,
double gamma,
35 void update_bias(
double score);
38 double get_spline(
double score)
const;
42 double gamma,
double w0);
47 double get_bias(
double score)
const;
50 double *get_bias_buffer()
const {
return bias_.get(); }
53 Floats get_bias_asfloats()
const {
54 Floats buffer(bias_.get(), bias_.get() + nbin_);
58 int get_nbin()
const {
return nbin_; }
60 void set_w0(
double w0) { w0_ = w0; }
62 void set_bias(
const Floats &bias) {
65 std::copy(bias.begin(), bias.end(), bias_.get());
69 virtual void do_step()
override;
virtual double do_evaluate(const ParticleIndexes &moved, bool force_full_score) const
Get the current energy.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Include all non-deprecated headers in IMP.core.
MonteCarlo in the Well-Tempered Ensemble.
Object used to hold a set of restraints.
virtual void do_step()
a class that inherits from this should override this method
Class for storing model, its restraints, constraints, and particles.
A smart pointer to a ref-counted Object that is a class member.
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.
Abstract base class for all restraints.