00001 #ifndef BALL_NMR_SHIFTMODEL1D_H
00002 #define BALL_NMR_SHIFTMODEL1D_H
00003
00004 #ifndef BALL_NMR_SHIFTMODULE_H
00005 # include <BALL/NMR/shiftModule.h>
00006 #endif
00007
00008 #ifndef BALL_NMR_SPECTRUM_H
00009 #include <BALL/NMR/spectrum.h>
00010 #endif
00011
00012
00013 namespace BALL
00014 {
00018 class BALL_EXPORT ShiftModel1D
00019 : public ShiftModule
00020 {
00021
00022 public:
00023 BALL_CREATE(ShiftModel1D)
00024
00025
00028
00029 enum SPECTRUM_TYPE{
00030 H = 1,
00031 N,
00032 C,
00033 H_ON_BACKBONE,
00034 N_BACKBONE,
00035 C_BACKBONE
00036 };
00037
00039
00042
00045 ShiftModel1D()
00046 throw() ;
00047
00052 ShiftModel1D(const String& filename,SPECTRUM_TYPE st, bool compute_shifts=true)
00053 throw();
00054
00059 ShiftModel1D(const String& filename,SPECTRUM_TYPE st, double origin, double dimension, double spacing, bool compute_shifts=true)
00060 throw();
00061
00064 ShiftModel1D(const ShiftModel1D& model)
00065 throw();
00066
00069 virtual ~ShiftModel1D()
00070 throw();
00071
00074 void clear()
00075 throw();
00076
00078
00081
00084 void setFilename(const String& filename)
00085 throw(Exception::FileNotFound);
00086
00089 const String& getFilename() const
00090 throw() {return parameters_.getFilename();};
00091
00094 const Parameters& getParameters() const
00095 throw() {return parameters_;};
00096
00099 const std::vector<Peak1D>& getPeaks() const
00100 throw() {return peaks_;};
00101
00104 void setPeaks(std::vector<Peak1D> peaks)
00105 throw() {peaks_ = peaks;};
00106
00107
00110 const double& getOrigin() const
00111 throw() {return origin_;};
00112
00115 void setOrigin(const double& origin)
00116 throw() {origin_ = origin;};
00117
00120 const double& getDimension() const
00121 throw(){ return dimension_;};
00122
00125 void setDimension( const double& dimension)
00126 throw() { dimension_ = dimension; }
00127
00130 const double getSpacing() const
00131 throw() {return spacing_;};
00132
00135 void setSystem( System* system)
00136 throw() {system_ = system;};
00137
00140 const System* getSystem() const
00141 throw() {return system_;};
00142
00143
00144 void operator >> (Spectrum1D& spectrum)
00145 throw();
00146
00148
00151
00154 bool isValid() const
00155 throw();
00156
00157
00159
00162
00165 bool start()
00166 throw();
00167
00170 bool finish()
00171 throw();
00172
00175 Processor::Result operator () (Composite& composite)
00176 throw();
00178
00179 protected:
00180
00181
00182
00183
00184
00185
00186
00187 bool init_()
00188 throw(Exception::FileNotFound);
00189
00190
00191
00192 std::vector<Peak1D> peaks_;
00193
00194
00195
00196 double origin_;
00197
00198
00199
00200 double dimension_;
00201
00202
00203
00204 double spacing_;
00205
00206
00207
00208 SPECTRUM_TYPE type_;
00209
00210
00211
00212 Parameters parameters_;
00213
00214
00215
00216 System* system_;
00217
00218
00219
00220
00221 bool valid_;
00222
00224 bool compute_shifts_;
00225
00226 bool hasType_(Atom* a, SPECTRUM_TYPE type) throw();
00227
00228 };
00229
00230 }
00231
00232 #endif // BALL_NMR_SHIFTMODEL1D_H