IMP logo
IMP Reference Guide  develop.8b7eb21230,2024/06/24
The Integrative Modeling Platform
SlabWithToroidalPoreGoPairScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/npc/SlabWithToroidalPoreGoPairScore.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_GO_PAIR_SCORE_H
11 #define IMPNPC_SLAB_WITH_TOROIDAL_PORE_GO_PAIR_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 a harmonic to the distance between a particle and the normal to toroidal membrane
25 /** The source code is as follows:
26  * \include SlabWithToroidalPoreGoPairScore.h
27  * \include SlabWithToroidalPoreGoPairScore.cpp
28  */
29 
30 // scores a go-like harmonic interaction based on normal distance to closest point
31 class IMPNPCEXPORT SlabWithToroidalPoreGoPairScore : public PairScore {
32  double x0_, 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 SlabWithToroidalPoreGoPairScore(double x0, 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_GO_PAIR_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.
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.
apply a harmonic to the distance between a particle and the normal to toroidal membrane ...
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.