Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PseudocontactShiftTensor.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  //////////////////////////////////////////////
11  /// @begin
12  ///
13  /// @brief Hold chi- tensor information for the Pseudocontact Shift calculation
14  ///
15  /// @detailed
16  ///
17  /// @param
18  ///
19  /// @return
20  ///
21  /// @remarks
22  ///
23  /// @references JBNMR 2008 41:179-189 schmitz et all will explains the tensor convention used
24  ///
25  /// @authorsv Christophe Schmitz
26  ///
27  /// @last_modified June 2009
28  ////////////////////////////////////////////////
29 
30 
31 #ifndef INCLUDED_protocols_scoring_methods_pcs_PseudocontactShiftTensor_hh
32 #define INCLUDED_protocols_scoring_methods_pcs_PseudocontactShiftTensor_hh
33 
34 // Package headers
35 
36 // Project headers
37 #include <core/types.hh>
38 
39 // Utility headers
40 
41 // Numeric headers
42 
43 // Objexx headers
44 
45 // C++ headers
46 #include <string>
47 
48 
49 namespace protocols{
50 namespace scoring{
51 namespace methods{
52 namespace pcs{
53 
54 class PCS_tensor {
55 private:
56 
57  core::Real a_; //alpha
58  core::Real b_; //beta
59  core::Real g_; //gamma
60  core::Real ax_; //axial component
61  core::Real rh_; //rhombic component
62  //ideally, alpha beta gamma ax and rh will follow the UTR convention
63  //see numbat paper JBNMR 2008 41:179-189 schmitz et all
64 
70 
71  std::string label_; //most likely the filename of the pcs exepriment
72  //Used to identify which data has been used in case of multiple lanthanides
73 
74 private:
75  void
76  set_abgar(); //Calculate and set the a_, b_, g_, ax_ rh_ members
77  //from the chi_xx_ etc...
78 
79 public:
80  PCS_tensor();
81 
82  ~PCS_tensor();
83 
84  PCS_tensor(PCS_tensor const & other);
85 
86  PCS_tensor &
87  operator=(PCS_tensor const & other);
88 
90  core::Real const chi_yy,
91  core::Real const chi_xy,
92  core::Real const chi_xz,
93  core::Real const chi_yz,
94  std::string const label);
95 
97  delta_X_xx() const;
98 
100  delta_X_yy() const;
101 
102  core::Real
103  delta_X_zz() const;
104 
105  core::Real
106  delta_chi_zz() const;
107 
108  core::Real
109  chi_xx() const;
110 
111  core::Real
112  chi_yy() const;
113 
114  core::Real
115  chi_xy() const;
116 
117  core::Real
118  chi_xz() const;
119 
120  core::Real
121  chi_yz() const;
122 
123  void
124  copy_from_ref(PCS_tensor & other);
125 
126  std::string const &
127  get_label() const;
128 
129  void
131  core::Real const chi_yy,
132  core::Real const chi_xy,
133  core::Real const chi_xz,
134  core::Real const chi_yz);
135 
136  friend std::ostream &
137  operator<<(std::ostream& out, const PCS_tensor &PCS_t);
138 };
139 
140 
141 }//namespace pcs
142 }//namespace methods
143 }//namespace scoring
144 }//namespace protocols
145 #endif