IMP logo
IMP Reference Guide  develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
SlabWithToroidalPoreMBMScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/npc/SlabWithToroidalPoreMBMScore.h
3  * \brief a go-like score for a slab with a toroidal pore
4  *
5 
6  * Copyright 2007-2018 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPNPC_SLAB_WITH_TOROIDAL_PORE_MBM_SCORE_H
11 #define IMPNPC_SLAB_WITH_TOROIDAL_PORE_MBM_SCORE_H
12 
13 #include "npc_config.h"
14 #include "SlabWithToroidalPore.h"
15 #include <IMP/Model.h>
16 #include <IMP/Pointer.h>
17 #include <IMP/check_macros.h>
18 #include <IMP/PairScore.h>
19 #include <IMP/pair_macros.h>
20 #include "IMP/core/XYZR.h"
21 
22 IMPNPC_BEGIN_NAMESPACE
23 
24 //! apply harmonic walls to the distance between a particle and the normal to toroidal membrane
25 /** The source code is as follows:
26  * \include SlabWithToroidalPoreMBMScore.h
27  * \include SlabWithToroidalPoreMBMScore.cpp
28  */
29 
30 // scores a go-like harmonic interaction based on normal distance to closest point
31 class IMPNPCEXPORT SlabWithToroidalPoreMBMScore : public PairScore {
32  double x0_upper_, x0_lower_, k_;
33 
34 public:
35 /**
36  * Constructs a score over a horizontal slab with a toroidal indent.
37 
38  @param k the slab repulsive force constant in kcal/mol/A
39  */
40 SlabWithToroidalPoreMBMScore(double x0_upper, double x0_lower, double k);
41 virtual double evaluate_index(Model *m,
42  const ParticleIndexPair &p,
43  DerivativeAccumulator *da) const override;
44 
46  const ParticleIndexes &pis) const override;
47 
50 
51 };
52 
54 
55 IMPNPC_END_NAMESPACE
56 
57 #endif /* IMPNPC_SLAB_WITH_TOROIDAL_PORE_MBM_SCORE_H */
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A decorator for a particle that's a slab with a toroidal pore.
apply harmonic walls to the distance between a particle and the normal to toroidal membrane ...
Macros for various classes.
#define IMP_PAIR_SCORE_METHODS(Name)
Definition: pair_macros.h:25
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Storage of a model, its restraints, constraints and particles.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Define PairScore.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition: object_macros.h:44
A nullptr-initialized pointer to an IMP Object.
Helper macros for throwing and handling exceptions.
Decorator for a sphere-like particle.
virtual double evaluate_index(Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da) const =0
Compute the score and the derivative if needed.
Class for adding derivatives from restraints to the model.