33 #include <utility/vector1.hh>
194 if ( atom_type_name ==
"aroC" ||
195 atom_type_name ==
"Ntrp" ||
196 atom_type_name ==
"Nhis" ||
197 atom_type_name ==
"Oaro" ||
198 atom_type_name ==
"Haro" )
return true;
216 using namespace etable::count_pair;
221 CountPairFactory::create_count_pair_function( rsd1, rsd2,
CP_CROSSOVER_4 );
223 for (
Size i=1, i_end = rsd1.
natoms(); i<= i_end; ++i ) {
229 if ( i_charge == 0.0 )
continue;
231 for (
Size j=1, j_end = rsd2.
natoms(); j<= j_end; ++j ) {
236 if ( j_charge == 0.0 )
continue;
240 if ( cpfxn->count( i, j, weight, path_dist ) ) {
241 Real score = weight *
244 total_score += score;
262 ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
266 set1.
rotamer(1)->is_aromatic() && set2.
rotamer(1)->is_aromatic() ) {
298 using namespace etable::count_pair;
301 Size const pos1( atom_id.
rsd() );
305 if ( ! rsd1.is_aromatic() )
return;
307 Real const i_charge( rsd1.atomic_charge( i ) );
308 int const pos1_map( domain_map( pos1 ) );
309 bool const pos1_fixed( pos1_map != 0 );
311 if ( i_charge == 0.0 )
return;
319 EnergyGraph const & energy_graph( energies.energy_graph() );
327 iru = energy_graph.get_node( pos1 )->const_edge_list_begin(),
329 iru != irue; ++iru ) {
332 Size const pos2( (*iru)->get_other_ind( pos1 ) );
334 if ( pos1_fixed && pos1_map == domain_map( pos2 ) )
continue;
338 assert( pos2 != pos1 );
340 if ( rsd2.is_aromatic() ) {
361 using namespace etable::count_pair;
373 for (
Size j=1, j_end = rsd2.
natoms(); j<= j_end; ++j ) {
378 if ( j_charge == 0.0 )
continue;
382 if ( cpfxn->count( i, j, weight, path_dist ) ) {
384 Vector const f2( i_xyz - j_xyz );
385 Real const dis2( f2.length_squared() );
386 Real const dE_dr_over_r = weight *
389 if ( dE_dr_over_r != 0.0 ) {
390 Vector const f1( i_xyz.cross( j_xyz ) );