IMP logo
IMP Reference Guide  develop.27926d84dc,2024/04/19
The Integrative Modeling Platform
AngleTripletScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/AngleTripletScore.h
3  * \brief A Score on the angle between three particles.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPCORE_ANGLE_TRIPLET_SCORE_H
9 #define IMPCORE_ANGLE_TRIPLET_SCORE_H
10 
11 #include <IMP/core/core_config.h>
12 #include <IMP/generic.h>
13 #include <IMP/TripletScore.h>
14 #include <IMP/UnaryFunction.h>
15 #include <IMP/Pointer.h>
16 #include <IMP/triplet_macros.h>
17 #include <cereal/access.hpp>
18 #include <cereal/types/base_class.hpp>
19 
20 IMPCORE_BEGIN_NAMESPACE
21 
22 //! Apply a function to the angle between three particles.
23 /** */
24 class IMPCOREEXPORT AngleTripletScore : public TripletScore {
26 
27  friend class cereal::access;
28 
29  template<class Archive> void serialize(Archive &ar) {
30  ar(cereal::base_class<TripletScore>(this), f_);
31  }
33 
34  public:
35  //! Score the angle (in radians) using f
38  virtual double evaluate_index(Model *m,
39  const ParticleIndexTriplet &pi,
40  DerivativeAccumulator *da) const override;
42  Model *m, const ParticleIndexes &pis) const override;
45 };
46 
47 IMPCORE_END_NAMESPACE
48 
49 #endif /* IMPCORE_ANGLE_TRIPLET_SCORE_H */
Apply a function to the angle between three particles.
A class to store a fixed array of same-typed values.
Definition: Array.h:40
Macros for various classes.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Single variable function.
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 IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Definition: object_macros.h:95
Define TripletScore.
A smart pointer to a ref-counted Object that is a class member.
Definition: Pointer.h:143
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
A nullptr-initialized pointer to an IMP Object.
virtual double evaluate_index(Model *m, const ParticleIndexTriplet &vt, DerivativeAccumulator *da) const =0
Compute the score and the derivative if needed.
Abstract class for scoring object(s) of type ParticleIndexTriplet.
Definition: TripletScore.h:44
#define IMP_TRIPLET_SCORE_METHODS(Name)
Abstract single variable functor class for score functions.
Definition: UnaryFunction.h:27
Class for adding derivatives from restraints to the model.
Compile-time generic restraint and constraint support.