Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LoopRefineInnerCycleContainer.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available
6 // (c) under license. The Rosetta software is developed by the contributing
7 // (c) members of the Rosetta Commons. For more information, see
8 // (c) http://www.rosettacommons.org. Questions about this can be addressed to
9 // (c) University of Washington UW TechTransfer, email:license@u.washington.edu
10 
11 /// @file protocols/loops/loop_mover/refine/LoopRefineInnerCycleContainer.hh
12 /// @brief This class is a LoopRefineInnerCycle that contains one or more other LoopRefineInnerCycles to allow a developer to
13 /// quickly string together existing LoopRefineInnerCycles in new ways to create new loop refinement protocols.
14 /// @detailed
15 ///
16 /// @author Brian D. Weitzner ( brian.weitzner@gmail.com )
17 
18 
19 #ifndef INCLUDED_protocols_loops_loop_mover_refine_LoopRefineInnerCycleContainer_HH
20 #define INCLUDED_protocols_loops_loop_mover_refine_LoopRefineInnerCycleContainer_HH
21 
22 // Unit headers
25 
26 // Package headers
27 
28 // Project headers
30 
31 // Utility headers
32 #include <utility/vector1.fwd.hh>
33 
34 // C++ headers
35 #include <iostream>
36 
37 namespace protocols {
38 namespace loops {
39 namespace loop_mover {
40 namespace refine {
41 
43 public: // boiler plate / virtuals
44  // default constructor
46 
47  // copy constructor
49 
50  // assignment operator
52 
53  // destructor
55 
56  virtual void apply( Pose & );
57  virtual std::string get_name() const;
58 
59  virtual protocols::moves::MoverOP clone() const;
61 
62  ///@brief This mover retains state such that a fresh version is needed if the input Pose is about to change
63  virtual bool reinitialize_for_new_input() const;
64 
65  /// @brief Associates relevant options with the LoopRefineInnerCycleContainer class
66  static void register_options();
67 
68 public: // printing methods
69  virtual void show( std::ostream & out=std::cout );
70  friend std::ostream & operator<<(std::ostream& out, LoopRefineInnerCycleContainer const & loop_refine_inner_cycle_container );
71 
72 public: // class-specific public methods
73  void add_inner_cycle_step( LoopRefineInnerCycleOP inner_cycle_step );
74 
75  // overriden methods: Not 'virtual' in the sense that subclasses ought to override them. This is a special case.
76  virtual void set_mc( moves::MonteCarloOP mc);
79  virtual void set_loop_mover( LoopMover_Refine_CCDAP new_owner_in_town );
80 
81  // This one comes from moves::Mover
82  virtual void set_native_pose( PoseCOP pose );
83 
84 private: // methods
85  void setup_objects( Pose const & pose );
86  void init();
88  void init_options();
89 
90 private: // data
94 
95 }; // class LoopRefineInnerCycleContainer
96 
97 } // namespace refine
98 } // namespace loop_mover
99 } // namespace loops
100 } // namespace protocols
101 
102 #endif // INCLUDED_protocols_loops_loop_mover_refine_LoopRefineInnerCycleContainer_HH