IMP  2.0.1
The Integrative Modeling Platform
FitParameters.h
Go to the documentation of this file.
1 /**
2  * \file IMP/saxs/FitParameters.h \brief
3  *
4  * Copyright 2007-2013 IMP Inventors. All rights reserved.
5  *
6  */
7 
8 #ifndef IMPSAXS_FIT_PARAMETERS_H
9 #define IMPSAXS_FIT_PARAMETERS_H
10 #include <IMP/saxs/saxs_config.h>
11 #include <iostream>
12 
13 IMPSAXS_BEGIN_NAMESPACE
14 
15 class IMPSAXSEXPORT FitParameters {
16  public:
17  FitParameters():
18  chi_(0.0), c1_(0.0), c2_(0.0), c_(0.0), o_(0.0), default_chi_(0.0) {}
19  FitParameters(float chi, float c1, float c2, float c, float o):
20  chi_(chi), c1_(c1), c2_(c2), c_(c), o_(o), default_chi_(0.0) {}
21  FitParameters(float chi, float c1, float c2):
22  chi_(chi), c1_(c1), c2_(c2), c_(0.0), o_(0.0), default_chi_(0.0) {}
23 
24  float get_chi() const { return chi_; }
25  float get_c1() const { return c1_; }
26  float get_c2() const { return c2_; }
27  float get_scale() const { return c_; }
28  float get_offset() const { return o_; }
29  float get_default_chi() const { return default_chi_; }
30  std::string get_pdb_file_name() const { return pdb_file_name_; }
31  std::string get_profile_file_name() const { return profile_file_name_; }
32  int get_mol_index() const { return mol_index_; }
33 
34  void set_default_chi(float chi) { default_chi_ = chi; }
35  void set_profile_file_name(std::string file_name) {
36  profile_file_name_ = file_name;
37  }
38  void set_pdb_file_name(std::string file_name) { pdb_file_name_ = file_name; }
39  void set_mol_index(int index) { mol_index_ = index; }
40 
41  void show(std::ostream& s) const {
42  s << "Chi = " << chi_ << " c1 = " << c1_ << " c2 = " << c2_
43  << " default chi = " << default_chi_ << std::endl;
44  }
45 #ifndef SWIG
46  struct compare_fit_parameters {
47  bool operator()(const FitParameters& fp1, const FitParameters& fp2) {
48  return fp1.get_chi() < fp2.get_chi();
49  }
50  };
51 #endif
52 
53  private:
54  float chi_; // fit score
55  float c1_; // excluded volume fit
56  float c2_; // water layer fit
57  float c_; // scaling
58  float o_; // offset
59  float default_chi_; // default chi value without fitting c1/c2
60  std::string profile_file_name_;
61  std::string pdb_file_name_;
62  int mol_index_; // unique mol index
63 };
64 
65 IMPSAXS_END_NAMESPACE
66 
67 #endif /* IMPSAXS_FIT_PARAMETERS_H */