Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DatabaseOccSolEne.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 // This file is part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file core/scoring/geometric_solvation/DatabaseOccSolEne.hh
10 /// @brief Database containing params for OccludedHbondSolEnergy
11 /// @author John Karanicolas
12 
13 
14 #ifndef INCLUDED_core_scoring_geometric_solvation_DatabaseOccSolEne_hh
15 #define INCLUDED_core_scoring_geometric_solvation_DatabaseOccSolEne_hh
16 
17 // Unit Headers
18 //#include <core/scoring/AtomVDW.fwd.hh>
19 
20 // Package headers
22 
23 // Project headers
24 #include <core/types.hh>
25 
26 // Utility headers
27 #include <utility/vector1.hh>
28 #include <utility/pointer/ReferenceCount.hh>
29 
30 #include <string>
31 
32 
33 namespace core {
34 namespace scoring {
35 namespace geometric_solvation {
36 
46 };
47 
48 
50 
51 public:
52 
53  /// @brief ctor, reads data file
54  DatabaseOccSolEne( std::string const & etable_name, Real const & min_occ_energy );
55 
56  Real const &
57  operator()( bool const polar_atom_donates, Size const polar_atom_type_index, Size const occ_atom_type_index, OccFitParam des_param ) const
58  {
59  // note: min cos_angle can be negative
60  if ( polar_atom_donates ) {
61  assert ( donor_occ_data_[ polar_atom_type_index][occ_atom_type_index][des_param] > -1.1 );
62  return donor_occ_data_[ polar_atom_type_index][occ_atom_type_index][des_param];
63  }
64  assert ( acc_occ_data_[ polar_atom_type_index][occ_atom_type_index][des_param] > -1.1 );
65  return acc_occ_data_[ polar_atom_type_index][occ_atom_type_index][des_param];
66  }
67 
69 
70 private:
71 
72  void read_datafile( chemical::AtomTypeSet const & atom_set, std::string const & database_name,
73  utility::vector1< utility::vector1< utility::vector1< Real > > > & occ_data_, bool const process_donors );
74 
75  Real compute_jumpout_diff( Real const & amp, Real const & twice_sigma_sq );
76 
77 private:
78 
79  // hold all data here, indexed by 1) polar_atom_type_index, 2) occ_atom_type_index, 3) parameter type
80  // jk note: we don't want to change the first index to donor/acceptor hybridization, since then we'd lose atomic charge info from the fits
81  // jk note: we could switch the second index to element type / radius, it's just that at present we can only look this up via a string compare
82  // jk note: at the moment we have two tables, because we're indexing on polar_atom_type_index and Ser/Thr/Tyr can be donor or acceptor
85 
86  // energies below this can be neglected, used in determining jumpout geometry conditions
88 
89  // max distance between interacting atoms (computed from min_occ_energy)
91 
92 };
93 
94 } // geometric_solvation
95 } // scoring
96 } // core
97 
98 #endif // INCLUDED_core_scoring_geometric_solvation_DatabaseOccSolEne_HH
99