UltraScan III
us_ddist_combine.h
Go to the documentation of this file.
1 #ifndef US_DDIST_COMBO_H
2 #define US_DDIST_COMBO_H
3 
4 #include "us_widgets.h"
5 #include "us_plot.h"
6 #include "us_model.h"
7 #include "us_help.h"
8 #include "qwt_plot_marker.h"
9 
10 #ifndef DbgLv
11 #define DbgLv(a) if(dbg_level>=a)qDebug()
12 #endif
13 
16 {
17  Q_OBJECT
18 
19  public:
21 
22  private:
23 
24  // Distribution description object
25  class DistrDesc
26  {
27  public:
28  QString runID; // Run ID
29  QString mGUID; // Model GUID
30  QString mdescr; // Model description string
31  QString ddescr; // Data triple description string
32  QVector< double > xvals; // Distrib. X values (e.g., sed.coeffs)
33  QVector< double > yvals; // Distrib. Y values (concentrations)
34  QColor color; // Curve color
35  int iters; // Iterations flag (>0 means MC)
36  int xtype; // X type (0-5 for x,MW,D,ff0,vb,MWl)
37  US_Model model; // The model
38 
39  bool operator== ( const DistrDesc& ddiscr )
40  {
41  return ( mGUID == ddiscr.mGUID );
42  }
43 
44  bool operator!= ( const DistrDesc& ddiscr )
45  {
46  return ( mGUID != ddiscr.mGUID );
47  }
48 
49  bool operator< ( const DistrDesc& ddiscr ) const
50  {
51  return ( mdescr < ddiscr.mdescr );
52  }
53  };
54 
55  QList< DistrDesc > distros; // All distributions
56  QList< DistrDesc > pdistrs; // Plotted distributions
57 
58  QList< int > symbols; // Possible symbol shapes
59  QList< QColor > colors; // Possible colors
60 
61  US_Disk_DB_Controls* dkdb_cntrls; // Disk-or-DB controls
62 
63  QStringList distIDs; // All distribution IDs
64  QStringList pdisIDs; // Plotted distribution IDs
65  QStringList aDescrs; // All model description strings
66 
67  QPushButton* pb_saveda;
68  QPushButton* pb_resetd;
69  QPushButton* pb_resetp;
70 
71  QLineEdit* le_runid;
72  QLineEdit* le_plxmin;
73  QLineEdit* le_plxmax;
74 
75  QComboBox* cmb_svproj;
76 
77  QListWidget* lw_runids;
78  QListWidget* lw_models;
79 
80  QLabel* lb_sigma;
81  QLabel* lb_plxmin;
82  QLabel* lb_plxmax;
83 
84  QwtCounter* ct_sigma;
85 
86  QCheckBox* ck_2dsa;
87  QCheckBox* ck_2dsamc;
88  QCheckBox* ck_2dsamw;
89  QCheckBox* ck_2dsamcmw;
90  QCheckBox* ck_2dsagl;
91  QCheckBox* ck_2dsaglmc;
92  QCheckBox* ck_2dsacg;
93  QCheckBox* ck_2dsacgmc;
94  QCheckBox* ck_2dsafm;
95  QCheckBox* ck_ga;
96  QCheckBox* ck_gamc;
97  QCheckBox* ck_gamw;
98  QCheckBox* ck_gamcmw;
99  QCheckBox* ck_gagl;
100  QCheckBox* ck_gaglmc;
101  QCheckBox* ck_pcsasl;
102  QCheckBox* ck_pcsais;
103  QCheckBox* ck_pcsads;
104  QCheckBox* ck_pcsahl;
105  QCheckBox* ck_pcsa2o;
106  QCheckBox* ck_pcsaslmc;
107  QCheckBox* ck_pcsaismc;
108  QCheckBox* ck_pcsadsmc;
109  QCheckBox* ck_pcsahlmc;
110  QCheckBox* ck_pcsa2omc;
111  QCheckBox* ck_pcsasltr;
112  QCheckBox* ck_pcsaistr;
113  QCheckBox* ck_pcsadstr;
114  QCheckBox* ck_pcsahltr;
115  QCheckBox* ck_pcsa2otr;
116  QCheckBox* ck_dmga;
117  QCheckBox* ck_dmgamc;
118  QCheckBox* ck_dmgara;
119  QCheckBox* ck_dmgaramc;
120  QCheckBox* ck_dmgagl;
121  QCheckBox* ck_dmgaglmc;
122  QCheckBox* ck_dtall;
123  QCheckBox* ck_mdltype;
124 
125  QRadioButton* rb_pltsw;
126  QRadioButton* rb_pltDw;
127  QRadioButton* rb_pltMW;
128  QRadioButton* rb_pltff0;
129  QRadioButton* rb_pltvb;
130  QRadioButton* rb_pltMWl;
131 
132  QTextEdit* te_status;
133 
135 
136  QwtPlot* data_plot1;
137  QwtPlotGrid* data_grid;
138 
139  QString runID;
140  QString triple;
141  QString dat1File;
142  QString lis1File;
143 
144  int xtype;
146 
147  private slots:
148 
149  void load ( void );
150  void save ( void );
151  void reset_data ( void );
152  void reset_plot ( void );
153  void plot_data ( void );
154  void plot_distr ( DistrDesc, QString );
155  void runid_select ( int );
156  void model_select ( int );
157  void setColor ( DistrDesc&, int );
158  void possibleColors ( void );
159  int distro_by_descr( QString& );
160  int distro_by_mguid( QString& );
161  int distro_by_runid( QString&, int );
162  void update_distros ( void );
163  void update_disk_db ( bool );
164  void fill_in_desc ( DistrDesc&, int );
165  void write_data ( QString&, QString&, int& );
166  QString distribID ( QString, QString );
167  int reportDocsFromFiles( QString&, QString&, QStringList&,
168  US_DB2*, int&, QString& );
169  void allMethodChanged ( int );
170  void methodChanged ( int );
171  void list_distributions( void );
172  void changedPlotX ( bool );
173  void envvalChange ( void );
174  void ltypeChanged ( void );
175  bool equivalent ( double, double, double );
176  int envel_data( QVector< double >&, QVector< double >&,
177  QVector< double >&, QVector< double >& );
178 
179  void help( void )
180  { showHelp.show_help( "ddist_combine.html" ); };
181 
182 };
183 #endif