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); }
48 void add_to_switching_derivative(
Float d, DerivativeAccumulator &accum) {
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); }
The base class for decorators.
static Nuisance setup_particle(Model *m, ParticleIndex pi)
A container for Singletons.
#define IMP_DECORATOR_SETUP_1(Name, FirstArgumentType, first_argument_name)
A decorator for nuisance parameters particles.
Add switching parameter to particle.
Class for storing model, its restraints, constraints, and particles.
Add nuisance parameter to particle.
Key< 0, true > FloatKey
The type used to identify float attributes in the Particles.
#define IMP_DECORATOR_SETUP_0(Name)
Particle * get_particle() const
Returns the particle decorated by this decorator.
#define IMP_DECORATOR_METHODS(Name, Parent)
double Float
Basic floating-point value (could be float, double...)
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.