IMP  2.1.0
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_chi(float chi) { chi_ = chi; }
35  void set_default_chi(float chi) { default_chi_ = chi; }
36  void set_profile_file_name(std::string file_name) {
37  profile_file_name_ = file_name;
38  }
39  void set_pdb_file_name(std::string file_name) { pdb_file_name_ = file_name; }
40  void set_mol_index(int index) { mol_index_ = index; }
41 
42  void show(std::ostream& s) const {
43  s << "Chi = " << chi_ << " c1 = " << c1_ << " c2 = " << c2_
44  << " default chi = " << default_chi_ << std::endl;
45  }
46 #ifndef SWIG
47  struct compare_fit_parameters {
48  bool operator()(const FitParameters& fp1, const FitParameters& fp2) {
49  return fp1.get_chi() < fp2.get_chi();
50  }
51  };
52 #endif
53 
54  protected:
55  float chi_; // fit score
56  float c1_; // excluded volume fit
57  float c2_; // water layer fit
58  float c_; // scaling
59  float o_; // offset
60  float default_chi_; // default chi value without fitting c1/c2
61  std::string profile_file_name_;
62  std::string pdb_file_name_;
63  int mol_index_; // unique mol index
64 };
65 
66 IMPSAXS_END_NAMESPACE
67 
68 #endif /* IMPSAXS_FIT_PARAMETERS_H */
void show(Hierarchy h, std::ostream &out=std::cout)
Print out a molecular hierarchy.