Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PcsDataCenter.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 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9  //////////////////////////////////////////////
10  /// @begin
11  ///
12  /// @file protocols/scoring/methods/pcs2/PcsDataCenter.hh
13  ///
14  /// @brief Hold the PCS data on which the SVD will be applyed
15  ///
16  /// @detailed
17  ///
18  /// @param
19  ///
20  /// @return
21  ///
22  /// @remarks
23  ///
24  /// @references
25  ///
26  /// @authorsv Christophe Schmitz
27  ///
28  /// @last_modified February 2010
29  ////////////////////////////////////////////////
30 
31 #ifndef INCLUDED_protocols_scoring_methods_pcs2_PcsDataCenter_hh
32 #define INCLUDED_protocols_scoring_methods_pcs2_PcsDataCenter_hh
33 
34 // Package headers
37 
38 // Project headers
39 #include <core/types.hh>
40 #include <core/pose/Pose.fwd.hh>
41 
42 // Utility headers
43 #include <utility/vector1.hh>
44 #include <utility/pointer/ReferenceCount.hh>
45 
46 // Numeric headers
47 #include <numeric/constants.hh>
48 
49 // ObjexxFCL headers
50 
51 // c++ headers
52 
53 #ifdef WIN32
55 #endif
56 
57 
58 namespace protocols{
59 namespace scoring{
60 namespace methods{
61 namespace pcs2{
62 
64 private:
73 
74 public:
75  PcsDataCenter(); //construct
76 
77  virtual ~PcsDataCenter(); //destruct
78 
79  PcsDataCenter(PcsDataCenter const &other); // copy
80 
82  operator=( PcsDataCenter const & src ); // =
83 
84  PcsDataCenter(PcsInputCenter & pcs_i_c, core::Size start, core::Size end, core::Real individual_scale);
85 
86  /// @brief Give me the number of lanthanides for this center
88  get_n_lanthanides() const;
89 
90  /// @brief Give me the matrix A_all_
92  get_A_all() const;
93  /*
94  /// @brief Give me the vector r5_all_
95  utility::vector1<core::Real> const &
96  get_r5_all() const;
97  */
98  /// @brief Give me the vector X_all_
100  get_X_all() const;
101 
102  /// @brief Give me the vector Y_all_
104  get_Y_all() const;
105 
106  /// @brief Give me the vector Z_all_
108  get_Z_all() const;
109 
110  /// @brief Give the index number of the PcsInputLine given
111  core::Size
112  where_is_line(PcsInputLine & pcs_i_l);
113 
114  /// @brief This is called each time the pose is changed
115  void
116  update_X_Y_Z_all(core::pose::Pose const & pose);
117 
118  /// @brief Call update_my_A_matrix for all lanthanide data.
119  /// X Y Z are the new coordinate of the center
120  void
122  core::Real const Y,
123  core::Real const Z);
124 
125  /// @brief Call update_my_A_matrix for all lanthanide data.
126  /// X Y Z are the new coordinate of the center
127  /// It also update individual smaller matrice for svd
128  void
130  core::Real const Y,
131  core::Real const Z);
132 
133  void
135  core::Real const Y,
136  core::Real const Z);
137 
138 
139 
140  /// @brief Give me the vector PCS_data_per_lanthanides_all_
143 
144  /// @brief Give me the vector PCS_data_line_all_spin_
147 
148  /// @brief Give me the vector PCS_data_per_lanthanides_all_ (const version)
151 
152  /// @brief Print me
153  friend std::ostream &
154  operator<<(std::ostream& out, const PcsDataCenter & me);
155 
156 
157 private:
158  void
159  update_matrix_A();
160 
161  void
163 
164 };
165 
166 
169  core::Real const xM,
170  core::Real const yM,
171  core::Real const zM,
172  core::Real const x,
173  core::Real const y,
174  core::Real const z
175 );
176 
177 void
179  core::Real const xM,
180  core::Real const yM,
181  core::Real const zM,
182  core::Real const x,
183  core::Real const y,
184  core::Real const z
185 );
186 
187 
188 }//namespace pcs2
189 }//namespace methods
190 }//namespace scoring
191 }//namespace protocols
192 
193 static const core::Real OTHER_FACT_USI_PRECALC_FOR_A_3( (10000.0/12.0/ core::Real( numeric::constants::d::pi ) ) * 3.0 );
194 
195 #endif