18 #ifndef INCLUDED_protocols_simple_moves_GenericMonteCarloMover_hh
19 #define INCLUDED_protocols_simple_moves_GenericMonteCarloMover_hh
30 #include <boost/function.hpp>
31 #include <boost/unordered_map.hpp>
34 #include <utility/vector1.hh>
35 #include <utility/tag/Tag.fwd.hh>
50 namespace simple_moves {
52 using namespace protocols::moves;
89 Size const task_scaling,
91 Real const temperature = 0.0,
92 String const sample_type =
"low",
93 bool const drift =
true
110 Size const maxtrials,
111 Size const task_scaling,
114 Real const temperature = 0.0,
115 String const sample_type =
"low",
116 bool const drift =
true
127 virtual MoverOP fresh_instance()
const;
133 virtual void apply(
Pose & pose );
135 virtual String get_name()
const;
138 void reset(
Pose & pose );
141 void recover_low(
Pose & pose );
144 bool boltzmann(
Pose & pose );
151 PoseOP last_accepted_pose()
const;
154 Real last_accepted_score()
const;
157 PoseOP lowest_score_pose()
const;
160 Real lowest_score()
const;
163 Real current_score()
const;
166 MCA mc_accpeted()
const;
197 Size num_triggers()
const;
202 void remove_trigger(
Size trigger_id);
205 void set_maxtrials(
Size const ntrial );
208 void set_task_scaling(
Size const scaling );
211 void set_mover(
MoverOP const & mover );
217 void set_temperature(
Real const temp );
222 void set_sampletype(
String const & type );
226 void set_drift(
bool const drift );
230 void set_preapply(
bool const preapply=
false );
234 void set_recover_low(
bool const recover_low );
240 void set_boltz_rank(
bool const boltz_rank );
243 void show_scores( std::ostream & out )
const;
246 void show_counters( std::ostream & out )
const;
248 virtual void parse_my_tag(
264 void add_filter(
FilterOP filter,
bool const adaptive,
Real const temp,
String const sample_type,
bool rank_by=
false);
277 void save_trial_number_to_checkpoint(
core::Size const i )
const;
286 void fire_all_triggers(
387 boost::unordered_map<Size, GenericMonteCarloMoverTrigger>
triggers_;