UltraScan III
us_rpscan.h
Go to the documentation of this file.
1 #ifndef US_RP_SCAN_H
3 #define US_RP_SCAN_H
4 
5 #include <QtGui>
6 #include <QTimer>
7 
8 #include "us_extern.h"
9 #include "us_widgets_dialog.h"
10 #include "us_plot.h"
11 #include "us_solve_sim.h"
12 #include "us_plot.h"
13 #include "us_pcsa_modelrec.h"
14 #include "us_worker_pc.h"
15 #include "us_help.h"
16 #include "qwt_plot_marker.h"
17 
19 
21 {
22  Q_OBJECT
23 
24  public:
26  US_RpScan( QList< US_SolveSim::DataSet* >&, US_ModelRecord&, int&,
27  double&, QWidget* p = 0 );
28 
29  private:
30  QList< US_SolveSim::DataSet* >& dsets;
32  int& nthr;
33  double& alpha;
34 
35  QList< WorkerThreadPc* > wthreads;
36 
38 
39  QwtPlot* data_plot1;
40 
41  QwtPlotCurve* v_line;
42  QwtPlotGrid* grid;
43  QwtPlotMarker* marker;
45 
46  QHBoxLayout* mainLayout;
47  QVBoxLayout* leftLayout;
48  QVBoxLayout* rightLayout;
49  QGridLayout* pltctrlsLayout;
50  QHBoxLayout* buttonsLayout;
51 
52  QLineEdit* le_mtype;
53  QLineEdit* le_npoints;
54  QLineEdit* le_mdlpar1;
55  QLineEdit* le_mdlpar2;
56  QLineEdit* le_selalpha;
57  QLineEdit* le_stattext;
58 
59  QwtCounter* ct_stralpha;
60  QwtCounter* ct_endalpha;
61  QwtCounter* ct_incalpha;
62 
63  int dbg_level;
64  int nalpha;
65  int nasubm;
66  int nacomp;
67  int lgv;
68  int lgx;
69 
70  double vscl;
71  double xscl;
72 
73  QVector< double > alphas;
74  QVector< double > varias;
75  QVector< double > xnorms;
76  QVector< double > sv_nnls_a;
77  QVector< double > sv_nnls_b;
78 
79  protected:
81  QProgressBar* b_progress;
82 
83  private slots:
84  void reject_it ( void );
85  void accept_it ( void );
86  void scan ( void );
87  void plot_data ( void );
88  void mouse ( const QwtDoublePoint& );
89  void process_job( WorkerThreadPc* );
90  void apply_alpha( const double,
91  QVector< double >*, QVector< double >*,
92  const int, const int, const int, double&, double& );
93 
94  void help ( void )
95  { showHelp.show_help( "pcsa_rpscan.html" ); };
96 
97 };
98 #endif
99