IMP  2.0.1
The Integrative Modeling Platform
RemoveTranslationOptimizerState.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/RemoveTranslationOptimizerState.h
3  * \brief Remove rigid translation during optimization.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H
10 #define IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H
11 
12 #include <IMP/atom/atom_config.h>
13 #include <IMP/Particle.h>
14 #include <IMP/base_types.h>
15 #include <IMP/OptimizerState.h>
17 
18 IMPATOM_BEGIN_NAMESPACE
19 
20 //! Removes rigid translation from the particles.
21 /** Recenters the bunch of particles by putting the very first particle
22  at the origin and rigidly translating all the others.
23  */
24 class IMPATOMEXPORT RemoveTranslationOptimizerState : public OptimizerState
25 {
26  public:
27  RemoveTranslationOptimizerState(const Particles &pis,
28  unsigned skip_steps);
29 
30  //! Set the number of update calls to skip between removals.
31  void set_skip_steps(unsigned skip_steps) {
32  skip_steps_ = skip_steps;
33  }
34 
35  //! Get the number of update calls to skip between removals.
36  unsigned int get_skip_steps() {
37  return skip_steps_;
38  }
39 
40  //! Set the particles to use.
41  void set_particles(const Particles &pis) {
42  pis_=pis;
43  }
44 
45  //! Remove translation now
46  void remove_translation() const;
47 
49 
50 private:
51  Particles pis_;
52  unsigned skip_steps_;
53  unsigned call_number_;
54 
55 };
56 
58 
59 IMPATOM_END_NAMESPACE
60 
61 #endif /* IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H */