qmca  0.0.20
Public Member Functions | Private Slots | Private Attributes | List of all members
BM12Controller Class Reference

#include <bm12controller.h>

Inheritance diagram for BM12Controller:
Inheritance graph

Public Member Functions

 BM12Controller (MCAController *ctrl, QwtPlot *graph, QObject *parent=0)
 
virtual ~BM12Controller ()
 
EpicsMCAmca ()
 
EpicsA2DConvertera2d ()
 
EpicsPulseAnalyserpulseAnalyser (int chan)
 
EpicsPowerSupplypowerSupply ()
 
double calibratedValue (int bin)
 
void selectSCA (int ch, int win)
 
void save (int ch, int mem)
 
void clear (int ch, int mem)
 
void count (int ch, int win)
 
void updateGraph ()
 
void saveData (int ch)
 
void saveEnergyWindows (int ch)
 
void loadEnergyWindows (int ch)
 

Private Slots

void mcaValueChanged ()
 

Private Attributes

int m_NChannels
 
EpicsMCA m_MCA
 
EpicsA2DConverter m_ADC
 
EpicsPowerSupply m_HVPS
 
QList< EpicsPulseAnalyser * > m_TCA
 
QList< BM12Waveforms * > m_Waveforms
 
MCAControllerm_Controller
 
QwtPlot * m_Graph
 
int m_CurrentChannel
 
int m_CurrentWindow
 
QString m_SaveDataPath
 
QString m_SaveWindowsPath
 

Detailed Description

Definition at line 15 of file bm12controller.h.

Constructor & Destructor Documentation

BM12Controller::BM12Controller ( MCAController ctrl,
QwtPlot *  graph,
QObject *  parent = 0 
)

Definition at line 11 of file bm12controller.cpp.

References m_ADC, m_HVPS, m_MCA, m_NChannels, m_TCA, m_Waveforms, mcaValueChanged(), EpicsA2DConverter::setGain(), EpicsPowerSupply::setLimit(), EpicsA2DConverter::setLowerLevelDiscrim(), EpicsA2DConverter::setOffset(), EpicsA2DConverter::setRange(), EpicsA2DConverter::setUpperLevelDiscrim(), and EpicsPowerSupply::setVoltage().

12  : QObject(parent),
13  m_NChannels(13),
14  m_MCA("bm12det:aim_adc1"),
15  m_ADC("bm12det:adc1"),
16  m_HVPS("bm12det:hvps1"),
17  m_Controller(ctrl),
18  m_Graph(graph),
20  m_CurrentWindow(0),
21  m_SaveDataPath(QDir::currentPath()),
22  m_SaveWindowsPath(QDir::currentPath())
23 {
24 // printf("BM12Controller::BM12Controller\n");
25 
26  for (int i=0; i<m_NChannels; i++) {
27  m_TCA.append(new EpicsPulseAnalyser(QString("bm12det:tca%1").arg(i+1)));
28  m_Waveforms.append(new BM12Waveforms());
29  }
30 
31  connect(&m_MCA, SIGNAL(valueChanged()), this, SLOT(mcaValueChanged()));
32 
33  m_ADC.setGain(2048);
34  m_ADC.setRange(2048);
35  m_ADC.setOffset(0);
38 
39  m_HVPS.setVoltage(500);
40  m_HVPS.setLimit(500);
41 }
void setRange(int gain)
void setOffset(int gain)
void setLowerLevelDiscrim(double l)
QList< BM12Waveforms * > m_Waveforms
void setVoltage(double v)
EpicsPowerSupply m_HVPS
QwtPlot * m_Graph
QList< EpicsPulseAnalyser * > m_TCA
void setUpperLevelDiscrim(double l)
QString m_SaveDataPath
void setLimit(double v)
EpicsA2DConverter m_ADC
void setGain(int gain)
QString m_SaveWindowsPath
MCAController * m_Controller
BM12Controller::~BM12Controller ( )
virtual

Definition at line 43 of file bm12controller.cpp.

References m_TCA, and m_Waveforms.

44 {
45  while (!m_TCA.isEmpty()) {
46  delete m_TCA.takeFirst();
47  }
48 
49  while (!m_Waveforms.isEmpty()) {
50  delete m_Waveforms.takeFirst();
51  }
52 }
QList< BM12Waveforms * > m_Waveforms
QList< EpicsPulseAnalyser * > m_TCA

Member Function Documentation

EpicsA2DConverter * BM12Controller::a2d ( )

Definition at line 59 of file bm12controller.cpp.

References m_ADC.

60 {
61  return &m_ADC;
62 }
EpicsA2DConverter m_ADC
double BM12Controller::calibratedValue ( int  bin)

Definition at line 215 of file bm12controller.cpp.

Referenced by saveData(), and updateGraph().

216 {
217  return bin*0.0538287-0.060349;
218 }
void BM12Controller::clear ( int  ch,
int  mem 
)

Definition at line 108 of file bm12controller.cpp.

References EpicsMCA::erase(), m_MCA, m_Waveforms, and updateGraph().

Referenced by BM12ControlPanel::clear1(), BM12ControlPanel::clear2(), BM12ControlPanel::clear3(), and BM12ControlPanel::clearTotal().

109 {
110  if (ch >= 0 && ch < 13) {
111  BM12Waveforms *wf = m_Waveforms[ch];
112 
113  if (wf) {
114  switch (win) {
115  case 0:
116  m_MCA.erase();
117  wf -> YData().clear();
118  break;
119 
120  case 1:
121  wf -> YDataSaved1().clear();
122  break;
123 
124  case 2:
125  wf -> YDataSaved2().clear();
126  break;
127 
128  case 3:
129  wf -> YDataSaved3().clear();
130  break;
131  }
132  }
133 
134  updateGraph();
135  }
136 }
QList< BM12Waveforms * > m_Waveforms
void erase()
Definition: epicsmca.cpp:55
void BM12Controller::count ( int  ch,
int  win 
)

Definition at line 168 of file bm12controller.cpp.

References EpicsMCA::eraseAndStart(), m_CurrentChannel, m_CurrentWindow, m_MCA, and mcaValueChanged().

Referenced by BM12ControlPanel::countMCA().

169 {
170 // printf("BM12Controller::count(%d,%d)\n", ch,win);
171 
172  m_CurrentChannel = ch;
173  m_CurrentWindow = win;
174 
176 
177  mcaValueChanged();
178 }
void eraseAndStart()
Definition: epicsmca.cpp:65
void BM12Controller::loadEnergyWindows ( int  ch)

Definition at line 379 of file bm12controller.cpp.

References m_SaveWindowsPath, pulseAnalyser(), EpicsPulseAnalyser::setLowerLevel(), and EpicsPulseAnalyser::setUpperLevel().

Referenced by BM12ControlPanel::loadEnergyWindows().

380 {
381  QString name = QFileDialog::getOpenFileName(NULL, "Load Energy Windows...", m_SaveWindowsPath);
382 
383  if (name.length()) {
384  m_SaveWindowsPath = name;
385 
386 // printf("load windows from file %s\n", qPrintable(name));
387 
388  FILE *ifile = fopen(qPrintable(name),"r");
389  QTextStream istr(ifile);
390  QString line;
391  QRegExp match("epics_put\\(\\s*\"bm12det:tca(\\d+)SCA(\\d+)(\\S+)\",\\s*(\\S+)\\s*\\)\\;");
392 
393  do {
394  line = istr.readLine();
395 
396  if (match.exactMatch(line)) {
397  int chan = match.cap(1).toInt()-1;
398  int win = match.cap(2).toInt()-1;
399  int islow = match.cap(3)=="_LOW";
400  int ishigh = match.cap(3)=="_HI";
401 
402  double val = match.cap(4).toDouble();
403 
404  if (islow) {
405 // printf("set chan %d, win %d _LOW = %g\n", chan, win, val);
406  pulseAnalyser(chan)->setLowerLevel(win,val);
407  } else if (ishigh) {
408 // printf("set chan %d, win %d _HI = %g\n", chan, win, val);
409  pulseAnalyser(chan)->setUpperLevel(win,val);
410  }
411  }
412 
413  } while (!line.isNull());
414  }
415 }
void setLowerLevel(int chan, double lowerlevel)
EpicsPulseAnalyser * pulseAnalyser(int chan)
void setUpperLevel(int chan, double upperlevel)
QString m_SaveWindowsPath
EpicsMCA * BM12Controller::mca ( )

Definition at line 54 of file bm12controller.cpp.

References m_MCA.

Referenced by BM12ControlPanel::BM12ControlPanel().

55 {
56  return &m_MCA;
57 }
void BM12Controller::mcaValueChanged ( )
privateslot

Definition at line 180 of file bm12controller.cpp.

References m_CurrentChannel, m_CurrentWindow, m_MCA, m_Waveforms, updateGraph(), and EpicsArray::value().

Referenced by BM12Controller(), and count().

181 {
182 // printf("BM12Controller::mcaValueChanged() %d, %d\n", m_CurrentChannel, m_CurrentWindow);
183 
184  if (m_CurrentChannel >= 0 && m_CurrentChannel < 13) {
186 
187  if (wf) {
188  switch (m_CurrentWindow) {
189 
190  case 0:
191  wf -> YData() = m_MCA.value();
192  break;
193 
194  case 1:
195  wf -> YDataSCA1() = m_MCA.value();
196  break;
197 
198  case 2:
199  wf -> YDataSCA2() = m_MCA.value();
200  break;
201 
202  case 3:
203  wf -> YDataSCA3() = m_MCA.value();
204  break;
205 
206  default:
207  break;
208  }
209  }
210  }
211 
212  updateGraph();
213 }
QList< BM12Waveforms * > m_Waveforms
QVector< double > value()
Definition: epicsarray.cpp:90
EpicsPowerSupply * BM12Controller::powerSupply ( )

Definition at line 69 of file bm12controller.cpp.

References m_HVPS.

Referenced by BM12ControlPanel::BM12ControlPanel().

70 {
71  return &m_HVPS;
72 }
EpicsPowerSupply m_HVPS
EpicsPulseAnalyser * BM12Controller::pulseAnalyser ( int  chan)

Definition at line 64 of file bm12controller.cpp.

References m_TCA.

Referenced by BM12ControlPanel::BM12ControlPanel(), loadEnergyWindows(), and selectSCA().

65 {
66  return m_TCA.value(chan);
67 }
QList< EpicsPulseAnalyser * > m_TCA
void BM12Controller::save ( int  ch,
int  mem 
)

Definition at line 138 of file bm12controller.cpp.

References m_Waveforms, and updateGraph().

Referenced by BM12ControlPanel::save1(), BM12ControlPanel::save2(), and BM12ControlPanel::save3().

139 {
140  // printf("BM12Controller::save(%d,%d)\n", ch,win);
141 
142 // m_CurrentChannel = ch;
143 // m_CurrentWindow = win;
144 
145  if (ch >= 0 && ch < 13) {
146  BM12Waveforms *wf = m_Waveforms[ch];
147 
148  if (wf) {
149  switch (win) {
150  case 1:
151  wf -> YDataSaved1() = wf -> YData();
152  break;
153 
154  case 2:
155  wf -> YDataSaved2() = wf -> YData();
156  break;
157 
158  case 3:
159  wf -> YDataSaved3() = wf -> YData();
160  break;
161  }
162  }
163 
164  updateGraph();
165  }
166 }
QList< BM12Waveforms * > m_Waveforms
void BM12Controller::saveData ( int  ch)

Definition at line 316 of file bm12controller.cpp.

References calibratedValue(), m_SaveDataPath, m_Waveforms, max(), BM12Waveforms::YData(), BM12Waveforms::YDataSaved1(), BM12Waveforms::YDataSaved2(), BM12Waveforms::YDataSaved3(), BM12Waveforms::YDataSCA1(), BM12Waveforms::YDataSCA2(), and BM12Waveforms::YDataSCA3().

Referenced by BM12ControlPanel::saveData().

317 {
318  int maxsize = 0;
319  int ncolumns = 0;
320 
321  BM12Waveforms *wf;
322 
323  foreach(wf, m_Waveforms) {
324  max(ncolumns, maxsize, wf->YData().size());
325  max(ncolumns, maxsize, wf->YDataSCA1().size());
326  max(ncolumns, maxsize, wf->YDataSCA2().size());
327  max(ncolumns, maxsize, wf->YDataSCA3().size());
328  max(ncolumns, maxsize, wf->YDataSaved1().size());
329  max(ncolumns, maxsize, wf->YDataSaved2().size());
330  max(ncolumns, maxsize, wf->YDataSaved3().size());
331  }
332 
333  QString name = QFileDialog::getSaveFileName(NULL, "Save Data...", m_SaveDataPath);
334 
335  if (name.length()) {
336  m_SaveDataPath = name;
337 
338 // printf("save mca data in file %s\n", qPrintable(name));
339 // printf("dirName %s\n", qPrintable(m_SaveDataPath));
340 
341  FILE *ofile = fopen(qPrintable(name),"a+");
342 
343  fprintf(ofile, "#S 1\n");
344  fprintf(ofile, "#N %d\n", ncolumns+2);
345  fprintf(ofile, "#L point percent");
346 
347  for (int i=0; i<m_Waveforms.size(); i++) {
348  wf = m_Waveforms[i];
349  if (wf->YData().size()) fprintf(ofile," ch%d", i+1);
350  if (wf->YDataSCA1().size()) fprintf(ofile," ch%dsca1", i+1);
351  if (wf->YDataSCA2().size()) fprintf(ofile," ch%dsca2", i+1);
352  if (wf->YDataSCA3().size()) fprintf(ofile," ch%dsca3", i+1);
353  if (wf->YDataSaved1().size()) fprintf(ofile, " ch%dsav1", i+1);
354  if (wf->YDataSaved2().size()) fprintf(ofile, " ch%dsav2", i+1);
355  if (wf->YDataSaved3().size()) fprintf(ofile, " ch%dsav3", i+1);
356  }
357  fprintf(ofile, "\n");
358 
359  for (int row=0; row<maxsize; row++) {
360  fprintf(ofile,"%d\t%g", row, calibratedValue(row));
361 
362  for (int i=0; i<m_Waveforms.size(); i++) {
363  wf = m_Waveforms[i];
364  if (wf->YData().size()>row) fprintf(ofile,"\t%g", wf->YData()[row]);
365  if (wf->YDataSCA1().size()>row) fprintf(ofile,"\t%g", wf->YDataSCA1()[row]);
366  if (wf->YDataSCA2().size()>row) fprintf(ofile,"\t%g", wf->YDataSCA2()[row]);
367  if (wf->YDataSCA3().size()>row) fprintf(ofile,"\t%g", wf->YDataSCA3()[row]);
368  if (wf->YDataSaved1().size()>row) fprintf(ofile, "\t%g", wf->YDataSaved1()[row]);
369  if (wf->YDataSaved2().size()>row) fprintf(ofile, "\t%g", wf->YDataSaved2()[row]);
370  if (wf->YDataSaved3().size()>row) fprintf(ofile, "\t%g", wf->YDataSaved3()[row]);
371  }
372  fprintf(ofile, "\n");
373  }
374 
375  fclose(ofile);
376  }
377 }
QVector< double > & YDataSaved2()
QList< BM12Waveforms * > m_Waveforms
QVector< double > & YDataSCA3()
double calibratedValue(int bin)
QVector< double > & YDataSCA1()
QVector< double > & YData()
QString m_SaveDataPath
QVector< double > & YDataSaved1()
static void max(int &ncol, int &max, int sz)
QVector< double > & YDataSCA2()
QVector< double > & YDataSaved3()
void BM12Controller::saveEnergyWindows ( int  ch)

Definition at line 417 of file bm12controller.cpp.

References EpicsPulseAnalyser::channelCount(), EpicsPulseAnalyser::lowerLevel(), m_SaveWindowsPath, m_TCA, EpicsObject::pvName(), EpicsPulseAnalyser::upperLevel(), and EpicsDouble::value().

Referenced by BM12ControlPanel::saveEnergyWindows().

418 {
419  QString cmd;
420  EpicsPulseAnalyser *tca;
421 
422  foreach(tca, m_TCA) {
423  for (int i=0; i<tca->channelCount(); i++) {
424  EpicsDouble *lll = tca->lowerLevel(i);
425  EpicsDouble *hll = tca->upperLevel(i);
426 
427  cmd += QString("epics_put( \"%1\", %2 );\n").arg(lll->pvName()).arg(lll->value());
428  cmd += QString("epics_put( \"%1\", %2 );\n").arg(hll->pvName()).arg(hll->value());
429  }
430  }
431 
432 // printf("Energy Windows\n%s\n", qPrintable(cmd));
433 
434  QString name = QFileDialog::getSaveFileName(NULL, "Save Energy Windows...", m_SaveWindowsPath);
435 
436  if (name.length()) {
437  m_SaveWindowsPath = name;
438 
439 // printf("save windows in file %s\n", qPrintable(name));
440 
441  FILE *ofile = fopen(qPrintable(name), "w");
442  fputs(qPrintable(cmd), ofile);
443  fclose(ofile);
444  }
445 }
EpicsDouble * upperLevel(int chan)
EpicsDouble * lowerLevel(int chan)
double value()
QString pvName()
Definition: epicsobject.cpp:30
QList< EpicsPulseAnalyser * > m_TCA
QString m_SaveWindowsPath
void BM12Controller::selectSCA ( int  ch,
int  win 
)

Definition at line 74 of file bm12controller.cpp.

References EpicsPulseAnalyser::channelCount(), m_ADC, m_CurrentChannel, m_CurrentWindow, m_NChannels, pulseAnalyser(), EpicsA2DConverter::setCoincidence(), EpicsPulseAnalyser::setGated(), EpicsPulseAnalyser::setSelected(), EpicsObject::settle(), and updateGraph().

Referenced by BM12ControlPanel::selectSCA(), and BM12ControlPanel::setChannel().

75 {
76 // printf("BM12Controller::selectSCA(%d,%d)\n", ch,win);
77 
78 // pulseAnalyser(m_CurrentChannel)->setSelected(false);
79 // pulseAnalyser(m_CurrentChannel)->setGated(m_CurrentWindow, false);
80 
81  m_CurrentChannel = ch;
82  m_CurrentWindow = win;
83 
84 // pulseAnalyser(m_CurrentChannel)->setSelected(true);
85 // pulseAnalyser(m_CurrentChannel)->setGated(m_CurrentWindow, true);
86 
87  for (int i=0; i<m_NChannels; i++) {
89 
90  p->setSelected(i==ch);
91 
92  for (int j=0; j<p->channelCount(); j++) {
93  p->setGated(j, j==(win-1));
94  }
95  }
96 
97  if (win == 0) {
99  } else {
101  }
102 
103  pulseAnalyser(0)->settle(0.25);
104 
105  updateGraph();
106 }
void setSelected(int slct)
void settle(double t)
void setGated(int chan, int gtd)
EpicsPulseAnalyser * pulseAnalyser(int chan)
EpicsA2DConverter m_ADC
void setCoincidence(int coinc)
void BM12Controller::updateGraph ( )

Definition at line 220 of file bm12controller.cpp.

References calibratedValue(), m_Controller, m_CurrentChannel, m_Graph, m_Waveforms, BM12Waveforms::XData(), BM12Waveforms::YData(), BM12Waveforms::YDataSaved1(), BM12Waveforms::YDataSaved2(), BM12Waveforms::YDataSaved3(), BM12Waveforms::YDataSCA1(), BM12Waveforms::YDataSCA2(), and BM12Waveforms::YDataSCA3().

Referenced by clear(), mcaValueChanged(), save(), and selectSCA().

221 {
222  if (m_CurrentChannel >= 0 && m_CurrentChannel < 13) {
224 
225  if (wf) {
226  int xlen = wf->XData().size();
227  int ylen = wf->YData().size();
228 
229 // if (ylen != xlen) {
230  wf->XData().resize(ylen);
231  for (int i=0; i<ylen; i++) {
232  wf->XData()[i] = calibratedValue(i);
233  }
234 // }
235 
236  m_Graph -> detachItems(QwtPlotItem::Rtti_PlotCurve);
237  m_Graph -> detachItems(QwtPlotItem::Rtti_PlotMarker);
238 
239  QwtPlotCurve *pc = new QwtPlotCurve("Total");
240  pc -> setSamples(wf->XData().data(), wf->YData().data(), ylen);
241  QPen pen(Qt::black);
242  pc -> setPen(pen);
243  pc -> setSymbol(new QwtSymbol(QwtSymbol::Ellipse,QBrush(),pen,QSize(3,3)));
244  pc -> attach(m_Graph);
245 
246  if (ylen == wf->YDataSCA1().size()) {
247  QwtPlotCurve *pc1 = new QwtPlotCurve("SCA1");
248  QPen pen(Qt::red);
249  pc1 -> setSamples(wf->XData().data(), wf->YDataSCA1().data(), ylen);
250  pc1 -> setPen(pen);
251  pc1 -> setSymbol(new QwtSymbol(QwtSymbol::Ellipse,QBrush(),pen,QSize(3,3)));
252  pc1 -> setBrush(QBrush(QColor(255,0,0,20)));
253  pc1 -> attach(m_Graph);
254  }
255 
256  if (ylen == wf->YDataSCA2().size()) {
257  QwtPlotCurve *pc1 = new QwtPlotCurve("SCA2");
258  QPen pen(Qt::green);
259  pc1 -> setSamples(wf->XData().data(), wf->YDataSCA2().data(), ylen);
260  pc1 -> setPen(pen);
261  pc1 -> setSymbol(new QwtSymbol(QwtSymbol::Ellipse,QBrush(),pen,QSize(3,3)));
262  pc1 -> setBrush(QBrush(QColor(0,255,0,20)));
263  pc1 -> attach(m_Graph);
264  }
265 
266  if (ylen == wf->YDataSCA3().size()) {
267  QwtPlotCurve *pc1 = new QwtPlotCurve("SCA3");
268  QPen pen(Qt::blue);
269  pc1 -> setSamples(wf->XData().data(), wf->YDataSCA3().data(), ylen);
270  pc1 -> setPen(pen);
271  pc1 -> setSymbol(new QwtSymbol(QwtSymbol::Ellipse,QBrush(),pen,QSize(3,3)));
272  pc1 -> setBrush(QBrush(QColor(0,0,255,20)));
273  pc1 -> attach(m_Graph);
274  }
275 
276  if (ylen == wf->YDataSaved1().size()) {
277  QwtPlotCurve *pc1 = new QwtPlotCurve("Saved A");
278  QPen pen(Qt::darkRed);
279  pc1 -> setSamples(wf->XData().data(), wf->YDataSaved1().data(), ylen);
280  pc1 -> setPen(pen);
281  pc1 -> attach(m_Graph);
282  }
283 
284  if (ylen == wf->YDataSaved2().size()) {
285  QwtPlotCurve *pc1 = new QwtPlotCurve("Saved B");
286  QPen pen(Qt::darkGreen);
287  pc1 -> setSamples(wf->XData().data(), wf->YDataSaved2().data(), ylen);
288  pc1 -> setPen(pen);
289  pc1 -> attach(m_Graph);
290  }
291 
292  if (ylen == wf->YDataSaved3().size()) {
293  QwtPlotCurve *pc1 = new QwtPlotCurve("Saved C");
294  QPen pen(Qt::darkBlue);
295  pc1 -> setSamples(wf->XData().data(), wf->YDataSaved3().data(), ylen);
296  pc1 -> setPen(pen);
297  pc1 -> attach(m_Graph);
298  }
299 
300  m_Controller -> replot();
301  }
302  }
303 }
QVector< double > & YDataSaved2()
QList< BM12Waveforms * > m_Waveforms
QVector< double > & YDataSCA3()
double calibratedValue(int bin)
QwtPlot * m_Graph
QVector< double > & YDataSCA1()
QVector< double > & YData()
QVector< double > & YDataSaved1()
QVector< double > & XData()
QVector< double > & YDataSCA2()
QVector< double > & YDataSaved3()
MCAController * m_Controller

Member Data Documentation

EpicsA2DConverter BM12Controller::m_ADC
private

Definition at line 47 of file bm12controller.h.

Referenced by a2d(), BM12Controller(), and selectSCA().

MCAController* BM12Controller::m_Controller
private

Definition at line 51 of file bm12controller.h.

Referenced by updateGraph().

int BM12Controller::m_CurrentChannel
private

Definition at line 53 of file bm12controller.h.

Referenced by count(), mcaValueChanged(), selectSCA(), and updateGraph().

int BM12Controller::m_CurrentWindow
private

Definition at line 54 of file bm12controller.h.

Referenced by count(), mcaValueChanged(), and selectSCA().

QwtPlot* BM12Controller::m_Graph
private

Definition at line 52 of file bm12controller.h.

Referenced by updateGraph().

EpicsPowerSupply BM12Controller::m_HVPS
private

Definition at line 48 of file bm12controller.h.

Referenced by BM12Controller(), and powerSupply().

EpicsMCA BM12Controller::m_MCA
private

Definition at line 46 of file bm12controller.h.

Referenced by BM12Controller(), clear(), count(), mca(), and mcaValueChanged().

int BM12Controller::m_NChannels
private

Definition at line 45 of file bm12controller.h.

Referenced by BM12Controller(), and selectSCA().

QString BM12Controller::m_SaveDataPath
private

Definition at line 55 of file bm12controller.h.

Referenced by saveData().

QString BM12Controller::m_SaveWindowsPath
private

Definition at line 56 of file bm12controller.h.

Referenced by loadEnergyWindows(), and saveEnergyWindows().

QList<EpicsPulseAnalyser*> BM12Controller::m_TCA
private

Definition at line 49 of file bm12controller.h.

Referenced by BM12Controller(), pulseAnalyser(), saveEnergyWindows(), and ~BM12Controller().

QList<BM12Waveforms*> BM12Controller::m_Waveforms
private

The documentation for this class was generated from the following files: