8 #ifndef IMPISD_SWITCHING_H
9 #define IMPISD_SWITCHING_H
11 #include <IMP/isd/isd_config.h>
18 IMPISD_BEGIN_NAMESPACE
28 if (!Nuisance::get_is_setup(m, pi))
39 return Nuisance::get_is_setup(m, pi) &&
Nuisance(m, pi).get_lower()>=0
43 Float get_switching()
const {
47 void set_switching(
Float d) { set_nuisance(d); }
51 add_to_nuisance_derivative(d, accum);
54 Float get_switching_derivative()
const
56 return get_nuisance_derivative();
59 static FloatKey get_switching_key() {
return get_nuisance_key(); }
61 bool get_switching_is_optimized()
const
63 return get_nuisance_is_optimized();
66 void set_switching_is_optimized(
bool val)
68 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
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.