34 #include <numeric/random/random.hh>
36 #include <numeric/xyz.functions.hh>
37 #include <basic/Tracer.hh>
38 #include <basic/basic.hh>
47 static numeric::random::RandomGenerator
RG(956734);
48 static basic::Tracer
TR(
"protocols.simple_moves.oop.OopRandomSmallMover" );
52 using namespace conformation;
53 using namespace chemical;
54 using namespace core::id;
57 namespace simple_moves {
63 using numeric::conversions::radians;
64 using numeric::conversions::degrees;
66 TR<<
"in OopRandomSmallMover::apply" << std::endl;
68 for(
Size i = 1; i <= oop_seq_positions_.size(); i++)
70 Size oop_pre_pos = oop_seq_positions_[i];
71 Size oop_post_pos = oop_pre_pos+1;
72 TR<<
"oop_pre_pos:" << oop_pre_pos <<
" oop_post_pos:" << oop_post_pos << std::endl;
79 runtime_assert ( oop_post_pos != 1 );
85 core::Size random_pos = oop_seq_positions_[
int(
RG.uniform()*oop_seq_positions_.size())+1];
88 Real small_angle = max_small_angle_/2.0;
89 Real phi_angle = basic::periodic_range( pose.
phi( random_pos ) - small_angle +
RG.uniform() * max_small_angle_, 360.0 );
99 phi_angle = basic::periodic_range( CYP_N_Ca_C_angle - small_angle +
RG.uniform() * max_small_angle_, 360.0 ) - 180.0;
102 Real psi_angle = basic::periodic_range( pose.
psi( random_pos ) - small_angle +
RG.uniform() * max_small_angle_, 360.0 );
103 oop_mover->set_phi( phi_angle );
104 oop_mover->set_psi( psi_angle );
105 oop_mover->apply( pose );
111 OopRandomSmallMover::get_name()
const {
112 return "OopRandomSmallMover";
116 OopRandomSmallMover::OopRandomSmallMover(