IMP  2.0.1
The Integrative Modeling Platform
DummyRestraint.h
Go to the documentation of this file.
1 /**
2  * \file DummyRestraint.h
3  * \brief
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPEM2D_DUMMY_RESTRAINT_H
10 #define IMPEM2D_DUMMY_RESTRAINT_H
11 
12 #include "IMP/em2d/em2d_config.h"
13 #include "IMP/log.h"
14 #include <IMP/Restraint.h>
15 #include "IMP/restraint_macros.h"
16 #include "IMP/Pointer.h"
17 
18 
19 #include <IMP/Restraint.h>
20 #include <IMP/log.h>
21 #include <IMP/SingletonContainer.h>
22 
23 
24 IMPEM2D_BEGIN_NAMESPACE
25 
26 
27 //! Dummy restraint between two particles
28 /*!
29  The restraint does do anything and returns 0 as a value. Use this
30  restraint to force two particles to be considered by DOMINO as belonging
31  to a restraint. This trick can be useful when building the merge tree for
32  DOMINO, as can add branches that consider pairs of particles before entire
33  subsets.
34  NOTE: Using this restraint for DOMINO requires a fairly good knowledge of
35  the works of merge trees.
36 */
37 class IMPEM2DEXPORT DummyRestraint: public Restraint {
38  Pointer<Particle> p0_;
39  Pointer<Particle> p1_;
40 
41 public:
42 
43  /**
44  * Inits the dummy restraint between the particles
45  * @param p First particle
46  * @param q Second particle
47  */
49  p0_ = p;
50  p1_ = q;
51  }
52 
53  /**
54  * Shows information about the class
55  * @param out Stream used to show the information
56  */
57  void show(std::ostream &out = std::cout) const {
58  out << "Dummy Restraint" << std::endl;
59  }
60 
62 
63 };
65 
66 
67 
68 //! Dummy restraint for a set of particles. Same use as DummyRestraint
69 class IMPEM2DEXPORT ParticlesDummyRestraint: public Restraint {
70  Pointer<SingletonContainer> container_;
71 
72 public:
73 
74  /**
75  * Sets a dummy restraint for a set of particles
76  * @param sc Must contain all the particles that are going to be restrained
77  */
79  container_ = sc;
80  }
81 
82  /**
83  * Shows information about the class
84  * @param out Stream used to show the information
85  */
86  void show(std::ostream &out = std::cout) const {
87  out << "ParticlesDummyRestraint" << std::endl;
88  }
89 
91 
92 };
94 
95 
96 IMPEM2D_END_NAMESPACE
97 
98 #endif /* IMPEM2D_DUMMY_RESTRAINT_H */