8 #ifndef IMPNPCTRANSPORT_Z_BIAS_SINGLETON_SCORE_H
9 #define IMPNPCTRANSPORT_Z_BIAS_SINGLETON_SCORE_H
11 #include "npctransport_config.h"
18 IMPNPCTRANSPORT_BEGIN_NAMESPACE
39 double max_r = HALF_SQRT_MAX_DOUBLE)
40 : max_r2_( max_r * max_r )
50 double get_k()
const {
return v_deriv_[2]; }
66 double r2 = std::pow(d.
get_x(), 2) + std::pow(d.
get_y(), 2);
71 double const& k = v_deriv_[2];
72 double score = k * d.
get_z();
74 IMP_LOG(
VERBOSE,
"result in " << score
75 <<
" and " << v_deriv_ << std::endl);
90 IMPNPCTRANSPORT_END_NAMESPACE
void add_to_derivatives(const algebra::Vector3D &v, DerivativeAccumulator &d)
Add the vector v to the derivative vector of the x,y,z coordinates.
useful enums and contants
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Macros for various classes.
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
A more IMP-like version of the std::vector.
Class for storing model, its restraints, constraints, and particles.
Score that biases particles to go down the Z axis.
Abstract class for scoring object(s) of type ParticleIndex.
#define IMP_SINGLETON_SCORE_METHODS(Name)
Produce copious output to allow someone to trace through the computation.
virtual double evaluate_index(Model *m, ParticleIndex pi, DerivativeAccumulator *da) const
Compute the score and the derivative if needed.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for adding derivatives from restraints to the model.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const
Overload this method to specify the inputs.
A decorator for a particle with x,y,z coordinates and a radius.