8 #ifndef IMPISD_SWITCHING_H
9 #define IMPISD_SWITCHING_H
11 #include <IMP/isd/isd_config.h>
18 IMPISD_BEGIN_NAMESPACE
25 double switching = 0.5) {
26 if (!Nuisance::get_is_setup(m, pi))
38 return Nuisance::get_is_setup(m, pi) &&
Nuisance(m, pi).get_lower() >= 0 &&
42 Float get_switching()
const {
46 void set_switching(
Float d) { set_nuisance(d); }
49 add_to_nuisance_derivative(d, accum);
52 Float get_switching_derivative()
const {
return get_nuisance_derivative(); }
54 static FloatKey get_switching_key() {
return get_nuisance_key(); }
56 bool get_switching_is_optimized()
const {
57 return get_nuisance_is_optimized();
60 void set_switching_is_optimized(
bool val) { set_nuisance_is_optimized(val); }
Import IMP/kernel/Decorator.h in the namespace.
static Nuisance setup_particle(kernel::Model *m, ParticleIndex pi)
Import IMP/kernel/SingletonContainer.h in the namespace.
Particle * get_particle() const
Returns the particle decorated by this decorator.
IMP::kernel::DerivativeAccumulator DerivativeAccumulator
#define IMP_DECORATOR_METHODS(Name, Parent)
A decorator for nuisance parameters particles.
Add switching parameter to particle.
Import IMP/kernel/PairContainer.h in the namespace.
#define IMP_DECORATOR_SETUP_0(Name)
Add nuisance parameter to particle.
double Float
Basic floating-point value (could be float, double...)
#define IMP_DECORATOR_SETUP_1(Name, FirstArgumentType, first_argument_name)
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.
Key< 0, true > FloatKey
The type used to identify float attributes in the Particles.
Class for storing model, its restraints, constraints, and particles.