16 #include <utility/exit.hh>
17 #include <basic/Tracer.hh>
19 #include <utility/vector1.hh>
21 static basic::Tracer
TR(
"core.util.ABEGOManager" );
33 lines_.push_back(
Line( slope, intercept, region ) );
42 if( (sign >= 0 &&
lines_[ ii ].region) || (sign < 0 && !
lines_[ ii ].region) ) {
60 return ( fabs( omega ) < 90.0 );
64 if( fabs( omega ) < 90.0 )
return false;
67 if ( (psi < -75.0 && phi < 0) || (psi < -100.0 && phi >= 0) ) {
94 totnum_abego_( rval.totnum_abego_ ),
95 name2abego_( rval.name2abego_ )
102 ABEGO A(
'A', -180.0, 0.0, -75.0, 50.0,
false );
103 ABEGO B(
'B', -180.0, 0.0, 50.0, 285.5,
false );
104 ABEGO E(
'E', 0.0, 180.5, 100.0, 260.5,
false );
105 ABEGO G(
'G', 0.0, 180.5, -100.0, 100.0,
false );
106 ABEGO O(
'O', 0.0, 0.0, 0.0, 0.0,
true );
108 ABEGO S(
'S', -180.0, 0.0, 100.0, 195.0,
false );
111 ABEGO P(
'P', -180.0, 0.0, 100.0, 195.0,
false );
114 ABEGO D(
'D', -180.0, 0.0, 195.0, 285.5,
false );
115 ABEGO Z(
'Z', -180.0, -100.0, 50.0, 100.0,
false );
116 ABEGO Y(
'Y', -100.0, 0.0, 50.0, 100.0,
false );
118 ABEGO M(
'M', -180.0, -90.0, -75.0, 50.0,
false );
119 ABEGO N(
'N', -90.0, 0.0, -75.0, 50.0,
false );
122 ABEGO X(
'X', 0.0, 0.0, 0.0, 0.0,
false );
147 return name2abego_[ idx ].check_rama( phi, psi, omega );
165 TR <<
" [ERROR] Unrecognized level " << level << std::endl;
166 runtime_assert(
false );
176 if ( fabs( omega ) < 90.0 ) {
178 }
else if ( phi >= 0.0 ) {
179 if ( -100.0 <= psi && psi < 100.0 ) {
185 if ( -75.0 <= psi && psi < 50.0 ) {
199 if ( fabs( omega ) < 90.0 ) {
201 }
else if ( phi >= 0.0 ) {
202 if ( -100.0 <= psi && psi < 100.0 ) {
209 if ( -75.0 <= psi && psi < 50.0 ) {
219 if( ppsi >= 195.0 ) {
235 if ( fabs( omega ) < 90.0 ) {
237 }
else if ( phi >= 0.0 ) {
238 if ( -100.0 <= psi && psi < 100.0 ) {
244 if ( -75.0 <= psi && psi < 50.0 ) {
246 }
else if ( 50.0 <= psi && psi < 100.0 ) {
259 if( ppsi >= 195.0 ) {
262 Real sign( ppsi - ( -1.6*phi + 4.0 ) );
278 if ( fabs( omega ) < 90.0 ) {
280 }
else if ( phi >= 0.0 ) {
281 if ( -100.0 <= psi && psi < 100.0 ) {
287 if ( -75.0 <= psi && psi < 50.0 ) {
293 }
else if ( 50.0 <= psi && psi < 100.0 ) {
307 if( ppsi >= 195.0 ) {
310 Real sign( ppsi - ( -1.6*phi + 4.0 ) );
354 TR <<
" [ERROR] Unrecognized abego index: " << idx << std::endl;
355 runtime_assert(
false );
406 TR <<
" [ERROR] Unrecognized abego index: " << symbol << std::endl;
407 runtime_assert(
false );
420 for(
Size i=begin; i<=
end; i++ ) {
422 std::ostringstream symbol;
424 symbols.push_back( symbol.str() );
441 std::ostringstream output;
442 for(
Size ii=1; ii<=abego.size(); ++ii ) {
443 Size length = abego[ ii ].length();
445 std::ostringstream multi;
447 for(
Size jj=0; jj<abego[ ii ].length(); ++jj ) {
448 multi << abego[ ii ].at( jj );
451 output << multi.str();
453 output << abego[ ii ].at( 0 );