|
qavrg 0.0.28
|
#include <qavrgfitter.h>
Public Types | |
| enum | { Background, Slope, PeakHeight } |
Public Slots | |
| void | performCalculation () |
| QVector< double > | readResult (int parm, int start, int nbins) |
| QVector< double > | readResult (int parm) |
| double | readResult (int parm, int bin) |
| double | readResultAverage (int parm, int start, int nbins) |
| double | readResultBunchAverage (int parm, int bunch, int norbits) |
| QVector< double > | get_RawData (int start, int nbins) |
| QVector< double > | get_RawData () |
| double | get_RawData (int bin) |
| QVector< double > | get_ReferenceData (int start, int nbins) |
| QVector< double > | get_ReferenceData () |
| double | get_ReferenceData (int bin) |
| QVector< double > | get_DarkData (int start, int nbins) |
| QVector< double > | get_DarkData () |
| double | get_DarkData (int bin) |
| QVector< double > | get_FitData (int start, int nbins) |
| QVector< double > | get_FitData () |
| double | get_FitData (int bin) |
Public Member Functions | |
| QavrgFitter (QavrgAcquisition *acq, int chan) | |
| ~QavrgFitter () | |
| void | resize (int nsamples) |
| void | setReferenceData () |
| void | saveReferenceData () |
| void | loadReferenceData () |
| void | setDarkData () |
| void | saveDarkData () |
| void | loadDarkData () |
| QMutex * | mutex () |
| double * | rawDataPtr () |
| double * | referenceDataPtr () |
| double * | darkDataPtr () |
| int | resultSize () |
| void | prepareCalculation () |
| void | readSettings (QSettings *settings) |
| void | writeSettings (QSettings *settings) |
| double | inputFullScale (int index) const |
| double | get_InputFullScale () const |
| void | set_InputFullScale (double val) |
| QCEP_INTEGER_PROPERTY (InputGain) | |
| QCEP_DOUBLE_PROPERTY (InputOffset) | |
| QCEP_INTEGER_PROPERTY (InputBandwidth) | |
| QCEP_INTEGER_PROPERTY (InputCoupling) | |
| QCEP_DOUBLE_PROPERTY (FittingOffset) | |
| QCEP_INTEGER_PROPERTY (FittingStart) | |
| QCEP_INTEGER_PROPERTY (FittingEnd) | |
| QCEP_BOOLEAN_PROPERTY (DisplayData) | |
| QCEP_BOOLEAN_PROPERTY (DisplayRaw) | |
| QCEP_BOOLEAN_PROPERTY (DisplayReference) | |
| QCEP_BOOLEAN_PROPERTY (DisplayDark) | |
| QCEP_BOOLEAN_PROPERTY (DisplayFit) | |
| QCEP_BOOLEAN_PROPERTY (DarkAvailable) | |
| QCEP_BOOLEAN_PROPERTY (ReferenceAvailable) | |
Properties | |
| double | inputFullScale |
| int | inputGain |
| double | inputOffset |
| int | inputBandwidth |
| int | inputCoupling |
| double | fittingOffset |
| int | fittingStart |
| int | fittingEnd |
| bool | displayData |
| bool | displayRaw |
| bool | displayReference |
| bool | displayDark |
| bool | displayFit |
| bool | darkAvailable |
| bool | referenceAvailable |
Private Member Functions | |
| QString | referenceDataPath () |
| QString | darkDataPath () |
Private Attributes | |
| QMutex | m_Mutex |
| QavrgAcquisition * | m_Acquisition |
| int | m_Channel |
| int | m_NSamples |
| QVector< double > | m_RawData |
| QVector< double > | m_DarkData |
| QVector< double > | m_ReferenceData |
| QVector< double > | m_FitData |
| QVector< QVector< double > > | m_Results |
| int | m_ResultSize |
Definition at line 11 of file qavrgfitter.h.
| anonymous enum |
Definition at line 73 of file qavrgfitter.h.
{
Background,
Slope,
PeakHeight
};
| QavrgFitter::QavrgFitter | ( | QavrgAcquisition * | acq, |
| int | chan | ||
| ) |
Definition at line 11 of file qavrgfitter.cpp.
References prepareCalculation().
: QObject(),
m_Mutex(QMutex::Recursive),
m_Acquisition(acq),
m_Channel(chan),
m_NSamples(0),
m_InputGain(m_Acquisition->saver(), this, "inputGain", 0, "Channel Input Gain"),
m_InputOffset(m_Acquisition->saver(), this, "inputOffset", 0, "Channel Input Offset"),
m_InputBandwidth(m_Acquisition->saver(), this, "inputBandwidth", 0, "Channel Input Bandwidth"),
m_InputCoupling(m_Acquisition->saver(), this, "inputCoupling", 3, "Channel Input Coupling"),
m_FittingOffset(m_Acquisition->saver(), this, "fittingOffset", 0, "Channel Fitting Offset"),
m_FittingStart(m_Acquisition->saver(), this, "fittingStart", 0, "Channel Fitting Start"),
m_FittingEnd(m_Acquisition->saver(), this, "fittingEnd", 32, "Channel Fitting End"),
m_DisplayData(m_Acquisition->saver(), this, "displayData", false, "Display Channel Data"),
m_DisplayRaw(m_Acquisition->saver(), this, "displayRaw", false, "Display Channel Raw Data"),
m_DisplayReference(m_Acquisition->saver(), this, "displayReference", false, "Display Channel Reference Data"),
m_DisplayDark(m_Acquisition->saver(), this, "displayDark", false, "Display Channel Dark Data"),
m_DisplayFit(m_Acquisition->saver(), this, "displayFit", false, "Display Channel Fit Data"),
m_DarkAvailable(QcepSettingsSaverWPtr(), this, "darkAvailable", false, "Channel Dark Data Available"),
m_ReferenceAvailable(QcepSettingsSaverWPtr(), this, "referenceAvailable", false, "Channel Reference Data Available")
// m_DarkChanged(this, "darkChanged", false),
// m_ReferenceChanged(this, "referenceChanged", false),
{
// printf("Fitter channel %d started\n", chan);
prepareCalculation();
}
| QavrgFitter::~QavrgFitter | ( | ) |
Definition at line 39 of file qavrgfitter.cpp.
{
// printf("Fitter channel %d stopped\n", m_Channel);
}
| QString QavrgFitter::darkDataPath | ( | ) | [private] |
Definition at line 552 of file qavrgfitter.cpp.
References m_Channel, and QavrgSettings::settingsDirectory().
Referenced by loadDarkData(), and saveDarkData().
{
return QavrgSettings::settingsDirectory().filePath(tr("dark%1").arg(m_Channel));
}
| double * QavrgFitter::darkDataPtr | ( | ) |
Definition at line 643 of file qavrgfitter.cpp.
References m_DarkData.
Referenced by QavrgAcquisitionSimulated::calculateSimulatedAcquisition(), and QavrgAcquisition::readoutAcquisition().
{
// if (!m_Mutex.locked()) {
// printf("Warning: QavrgFitter::darkDataPtr called on unlocked object\n");
// }
return m_DarkData.data();
}
| QVector< double > QavrgFitter::get_DarkData | ( | int | start, |
| int | nbins | ||
| ) | [slot] |
Definition at line 366 of file qavrgfitter.cpp.
References m_DarkData, and m_Mutex.
Referenced by QavrgWindow::updateGraph().
{
QMutexLocker lock(&m_Mutex);
return m_DarkData.mid(start,nbins);
}
| QVector< double > QavrgFitter::get_DarkData | ( | ) | [slot] |
Definition at line 373 of file qavrgfitter.cpp.
References m_DarkData, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
return m_DarkData;
}
| double QavrgFitter::get_DarkData | ( | int | bin | ) | [slot] |
Definition at line 380 of file qavrgfitter.cpp.
References m_DarkData, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
return m_DarkData.value(bin);
}
| QVector< double > QavrgFitter::get_FitData | ( | int | start, |
| int | nbins | ||
| ) | [slot] |
Definition at line 387 of file qavrgfitter.cpp.
References m_FitData, and m_Mutex.
Referenced by QavrgWindow::updateGraph().
| QVector< double > QavrgFitter::get_FitData | ( | ) | [slot] |
| double QavrgFitter::get_FitData | ( | int | bin | ) | [slot] |
| double QavrgFitter::get_InputFullScale | ( | ) | const |
Definition at line 433 of file qavrgfitter.cpp.
References inputFullScale.
{
// QMutexLocker lock(&m_Mutex);
return inputFullScale(get_InputGain());
}
| QVector< double > QavrgFitter::get_RawData | ( | ) | [slot] |
| double QavrgFitter::get_RawData | ( | int | bin | ) | [slot] |
| QVector< double > QavrgFitter::get_RawData | ( | int | start, |
| int | nbins | ||
| ) | [slot] |
Definition at line 324 of file qavrgfitter.cpp.
References m_Mutex, and m_RawData.
Referenced by QavrgAcquisition::saveData(), and QavrgWindow::updateGraph().
| QVector< double > QavrgFitter::get_ReferenceData | ( | int | start, |
| int | nbins | ||
| ) | [slot] |
Definition at line 345 of file qavrgfitter.cpp.
References m_Mutex, and m_ReferenceData.
Referenced by QavrgWindow::updateGraph().
{
QMutexLocker lock(&m_Mutex);
return m_ReferenceData.mid(start,nbins);
}
| QVector< double > QavrgFitter::get_ReferenceData | ( | ) | [slot] |
Definition at line 352 of file qavrgfitter.cpp.
References m_Mutex, and m_ReferenceData.
{
QMutexLocker lock(&m_Mutex);
return m_ReferenceData;
}
| double QavrgFitter::get_ReferenceData | ( | int | bin | ) | [slot] |
Definition at line 359 of file qavrgfitter.cpp.
References m_Mutex, and m_ReferenceData.
{
QMutexLocker lock(&m_Mutex);
return m_ReferenceData.value(bin);
}
| double QavrgFitter::inputFullScale | ( | int | index | ) | const |
Definition at line 422 of file qavrgfitter.cpp.
{
const double vals[] = {0.05, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0};
if (index < 0 || index > 6) {
return 0;
} else {
return vals[index];
}
}
| void QavrgFitter::loadDarkData | ( | ) |
Definition at line 583 of file qavrgfitter.cpp.
References darkDataPath(), m_Channel, m_DarkData, m_Mutex, m_NSamples, and resize().
{
QMutexLocker lock(&m_Mutex);
QFile file(darkDataPath());
if (!file.open(QIODevice::ReadOnly)) {
printf("Couldn't load dark data for channel %d\n", m_Channel);
return;
}
int sz = file.size();
int nsamp = sz / sizeof(double);
int nread = nsamp*sizeof(double);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
if (nsamp > m_NSamples) {
resize(nsamp);
}
m_DarkData.fill(0);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
int szrd = file.read((char*) m_DarkData.data(), nread);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
if (szrd != nread) {
printf("Incomplete read, read %ld of %ld.\n", (long) szrd, (long) nread);
}
set_DarkAvailable(true);
}
| void QavrgFitter::loadReferenceData | ( | ) |
Definition at line 506 of file qavrgfitter.cpp.
References m_Channel, m_Mutex, m_NSamples, m_ReferenceData, referenceDataPath(), and resize().
{
QMutexLocker lock(&m_Mutex);
QFile file(referenceDataPath());
if (!file.open(QIODevice::ReadOnly)) {
printf("Couldn't load reference data for channel %d\n", m_Channel);
return;
}
int sz = file.size();
int nsamp = sz / sizeof(double);
int nread = nsamp*sizeof(double);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
if (nsamp > m_NSamples) {
resize(nsamp);
}
m_ReferenceData.fill(0);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
int szrd = file.read((char*) m_ReferenceData.data(), nread);
// printf("File size %d, nsamp %d, nread %d\n", sz, nsamp, nread);
if (szrd != nread) {
printf("Incomplete read, read %d of %d.\n", szrd, nread);
}
set_ReferenceAvailable(true);
}
| QMutex * QavrgFitter::mutex | ( | ) |
| void QavrgFitter::performCalculation | ( | ) | [slot] |
Definition at line 155 of file qavrgfitter.cpp.
References QavrgMatrix::gaussj(), m_Acquisition, m_Channel, m_DarkData, m_FitData, m_Mutex, m_RawData, m_ReferenceData, and m_Results.
Referenced by QavrgAcquisitionSimulated::calculateSimulatedAcquisition(), and QavrgAcquisition::readoutAcquisition().
{
QMutexLocker lock(&m_Mutex);
// printf("Fitter channel %d calculation started\n", m_Channel);
// printf("Current thread %p, this->thread() %p\n", QThread::currentThread(), thread());
QTime tm;
tm.start();
int sz = m_Acquisition -> get_NSamples();
if (sz > m_RawData.size()) {
printf("data record for channel %d shorter than expected (expected %d, actual %d, adjusting\n",
m_Channel, sz, m_RawData.size());
sz = m_RawData.size();
}
if (!get_ReferenceAvailable()) {
printf("can't perform fitting if no reference is available\n");
return;
}
if (sz > m_ReferenceData.size()) {
printf("reference data record for channel %d shorter than expected (expected %d, actual %d, adjusting\n",
m_Channel, sz, m_ReferenceData.size());
sz = m_ReferenceData.size();
}
if (get_DarkAvailable() && sz > m_DarkData.size()) {
printf("dark data record for channel %d shorter than expected (expected %d, actual %d, adjusting\n",
m_Channel, sz, m_DarkData.size());
sz = m_DarkData.size();
}
m_FitData.resize(sz);
m_FitData.fill(0);
double bucketsperorbit = m_Acquisition -> get_BucketsPerOrbit();
double orbitperiod = m_Acquisition -> get_SamplesPerOrbit();
double bunchperiod = orbitperiod/bucketsperorbit;
QVector<int> filledBuckets = m_Acquisition -> get_FilledBuckets();
if (filledBuckets.size() == 0) {
// printf("Constructing fake fill pattern");
for (int i=0; i<24; i++) {
filledBuckets.append(i*bucketsperorbit/24.0);
}
}
double* d = m_RawData.data();
double* ref = m_ReferenceData.data();
double* drk = m_DarkData.data();
double* fit = m_FitData.data();
m_Results.resize(3);
m_Results[0].resize(0);
m_Results[1].resize(0);
m_Results[2].resize(0);
double t0 = 0;
// printf("Ch%d: Samples per orbit %g, samples per bunch %g\n", m_Channel, orbitperiod, bunchperiod);
// printf("%d filled buckets\n", filledBuckets.size());
int fitStart = get_FittingStart();
int fitEnd = get_FittingEnd();
double fitOffset = get_FittingOffset();
while (t0 < sz) {
int b;
foreach(b,filledBuckets) {
double t = t0 + b*bunchperiod;
int i0 = (int) (t + fitStart);
int i1 = (int) (t + fitEnd);
if (i1 < sz) {
QavrgMatrix m(3,3);
QVector<double> v(3);
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
m(i,j) = 0;
}
v[i]=0;
}
if (get_DarkAvailable()) {
for (int i=i0; i<i1; i++) {
double x=i-i0;
double r=ref[i] - drk[i] - fitOffset;
double y=(d[i] - drk[i] - fitOffset);
m(0,0) += 1;
m(0,1) += x;
m(0,2) += r;
v[0] += y;
m(1,0) += x;
m(1,1) += x*x;
m(1,2) += x*r;
v[1] += y*x;
m(2,0) += r;
m(2,1) += r*x;
m(2,2) += r*r;
v[2] += y*r;
}
} else {
for (int i=i0; i<i1; i++) {
double x=i-i0;
double r=ref[i] - fitOffset;
double y=(d[i] - fitOffset);
m(0,0) += 1;
m(0,1) += x;
m(0,2) += r;
v[0] += y;
m(1,0) += x;
m(1,1) += x*x;
m(1,2) += x*r;
v[1] += y*x;
m(2,0) += r;
m(2,1) += r*x;
m(2,2) += r*r;
v[2] += y*r;
}
}
QavrgMatrix::gaussj(m,v);
// printf("Ch%d:Bnch%d:v0=%g:v1=%g:v2=%g\n", m_Channel, b, v[0], v[1], v[2]);
if (get_DarkAvailable()) {
for (int i=i0; i<i1; i++) {
double x=i-i0;
double r=ref[i] - drk[i] - fitOffset;
fit[i] = v[0]+x*v[1]+r*v[2] + fitOffset;
}
} else {
for (int i=i0; i<i1; i++) {
double x=i-i0;
double r=ref[i] - fitOffset;
fit[i] = v[0]+x*v[1]+r*v[2] + fitOffset;
}
}
m_Results[0].append(v[0]);
m_Results[1].append(v[1]);
m_Results[2].append(v[2]);
// printf("Ch%d: Fit %g + %g*x +%g*ref\n", m_Channel, v[0], v[1], v[2]);
}
}
t0 += orbitperiod;
}
}
| void QavrgFitter::prepareCalculation | ( | ) |
Definition at line 104 of file qavrgfitter.cpp.
References m_Acquisition, m_Mutex, and m_ResultSize.
Referenced by QavrgFitter(), and resultSize().
{
QMutexLocker lock(&m_Mutex);
double bucketsperorbit = m_Acquisition -> get_BucketsPerOrbit();
double orbitperiod = m_Acquisition -> get_SamplesPerOrbit();
double bunchperiod = orbitperiod/bucketsperorbit;
QVector<int> filledBuckets = m_Acquisition -> get_FilledBuckets();
if (filledBuckets.size() == 0) {
// printf("Constructing fake fill pattern");
for (int i=0; i<24; i++) {
filledBuckets.append(i*bucketsperorbit/24.0);
}
}
int sz = m_Acquisition -> get_NSamples();
m_ResultSize = 0;
double t0 = 0;
// printf("Ch%d: Samples per orbit %g, samples per bunch %g, buckets per orbit %g samples %d\n",
// m_Channel, orbitperiod, bunchperiod, bucketsperorbit, sz);
// printf("%d filled buckets\n", filledBuckets.size());
// if (filledBuckets.size() == 24) {
// for (int i=0; i<24; i++) {
// printf("%d\t%d\t%g\n", i, filledBuckets.value(i), (i*bucketsperorbit/24.0));
// }
// }
while (t0 < sz) {
int b;
foreach(b,filledBuckets) {
double t = t0 + b*bunchperiod;
// int i0 = (int) (t + get_FittingStart());
int i1 = (int) (t + get_FittingEnd());
if (i1 < sz) {
m_ResultSize += 1;
}
}
t0 += orbitperiod;
}
}
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DisplayRaw | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | ReferenceAvailable | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DisplayData | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DisplayReference | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DisplayFit | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DarkAvailable | ) |
| QavrgFitter::QCEP_BOOLEAN_PROPERTY | ( | DisplayDark | ) |
| QavrgFitter::QCEP_DOUBLE_PROPERTY | ( | InputOffset | ) |
| QavrgFitter::QCEP_DOUBLE_PROPERTY | ( | FittingOffset | ) |
| QavrgFitter::QCEP_INTEGER_PROPERTY | ( | FittingStart | ) |
| QavrgFitter::QCEP_INTEGER_PROPERTY | ( | FittingEnd | ) |
| QavrgFitter::QCEP_INTEGER_PROPERTY | ( | InputGain | ) |
| QavrgFitter::QCEP_INTEGER_PROPERTY | ( | InputBandwidth | ) |
| QavrgFitter::QCEP_INTEGER_PROPERTY | ( | InputCoupling | ) |
| double * QavrgFitter::rawDataPtr | ( | ) |
Definition at line 625 of file qavrgfitter.cpp.
References m_RawData.
Referenced by QavrgAcquisitionSimulated::calculateSimulatedAcquisition(), and QavrgAcquisition::readoutAcquisition().
{
// if (!m_Mutex.locked()) {
// printf("Warning: QavrgFitter::rawDataPtr called on unlocked object\n");
// }
return m_RawData.data();
}
| double QavrgFitter::readResult | ( | int | parm, |
| int | bin | ||
| ) | [slot] |
| QVector< double > QavrgFitter::readResult | ( | int | parm, |
| int | start, | ||
| int | nbins | ||
| ) | [slot] |
Definition at line 53 of file qavrgfitter.cpp.
References m_Mutex, and m_Results.
Referenced by QavrgAcquisition::readResult().
| QVector< double > QavrgFitter::readResult | ( | int | parm | ) | [slot] |
| double QavrgFitter::readResultAverage | ( | int | parm, |
| int | start, | ||
| int | nbins | ||
| ) | [slot] |
Definition at line 74 of file qavrgfitter.cpp.
References m_Mutex, and m_Results.
Referenced by QavrgAcquisition::readResultAverage().
| double QavrgFitter::readResultBunchAverage | ( | int | parm, |
| int | bunch, | ||
| int | norbits | ||
| ) | [slot] |
Definition at line 88 of file qavrgfitter.cpp.
References m_Acquisition, m_Mutex, and m_Results.
Referenced by QavrgAcquisition::readResultBunchAverage().
{
QMutexLocker lock(&m_Mutex);
double res = 0;
QVector<double> vec = m_Results.value(parm);
for (int i=0; i<norbits; i++) {
int nb = i*m_Acquisition -> get_FilledBucketsPerOrbit() + bunch;
res += vec.value(nb);
}
return res/norbits;
}
| void QavrgFitter::readSettings | ( | QSettings * | settings | ) |
Definition at line 408 of file qavrgfitter.cpp.
References m_Channel, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
QcepProperty::readSettings(this, &staticMetaObject, tr("channels%1").arg(m_Channel), settings);
}
| QString QavrgFitter::referenceDataPath | ( | ) | [private] |
Definition at line 475 of file qavrgfitter.cpp.
References m_Channel, and QavrgSettings::settingsDirectory().
Referenced by loadReferenceData(), and saveReferenceData().
{
return QavrgSettings::settingsDirectory().filePath(tr("ref%1").arg(m_Channel));
}
| double * QavrgFitter::referenceDataPtr | ( | ) |
Definition at line 634 of file qavrgfitter.cpp.
References m_ReferenceData.
Referenced by QavrgAcquisitionSimulated::calculateSimulatedAcquisition(), and QavrgAcquisition::readoutAcquisition().
{
// if (!m_Mutex.locked()) {
// printf("Warning: QavrgFitter::referenceDataPtr called on unlocked object\n");
// }
return m_ReferenceData.data();
}
| void QavrgFitter::resize | ( | int | nsamples | ) |
Definition at line 452 of file qavrgfitter.cpp.
References m_DarkData, m_FitData, m_Mutex, m_NSamples, m_RawData, and m_ReferenceData.
Referenced by loadDarkData(), and loadReferenceData().
{
QMutexLocker lock(&m_Mutex);
if (nsamples != m_NSamples) {
m_NSamples = nsamples;
m_RawData.resize(m_NSamples);
m_DarkData.resize(m_NSamples);
m_ReferenceData.resize(m_NSamples);
m_FitData.resize(m_NSamples);
}
}
| int QavrgFitter::resultSize | ( | ) |
Definition at line 44 of file qavrgfitter.cpp.
References m_Mutex, m_ResultSize, and prepareCalculation().
Referenced by QavrgAcquisition::saveAcquisitionResult(), and QavrgAcquisition::startNewScan().
{
QMutexLocker lock(&m_Mutex);
prepareCalculation();
return m_ResultSize;
}
| void QavrgFitter::saveDarkData | ( | ) |
Definition at line 557 of file qavrgfitter.cpp.
References darkDataPath(), m_Channel, m_DarkData, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
QFile file(darkDataPath());
if (!file.open(QIODevice::WriteOnly)) {
printf("Couldn't save dark data for channel %d\n", m_Channel);
return;
}
// printf("File size = %ld\n", file.size());
qint64 sz = m_DarkData.size()*sizeof(double);
// printf("Dark data size = %ld elems\n", m_ReferenceData.size());
qint64 szwrt = file.write((char*) m_DarkData.data(), sz);
// printf("New file size = %ld\n", file.size());
if (szwrt != sz) {
printf("Incomplete write, wrote %ld of %ld.\n", (long) szwrt, (long) sz);
}
}
| void QavrgFitter::saveReferenceData | ( | ) |
Definition at line 480 of file qavrgfitter.cpp.
References m_Channel, m_Mutex, m_ReferenceData, and referenceDataPath().
{
QMutexLocker lock(&m_Mutex);
QFile file(referenceDataPath());
if (!file.open(QIODevice::WriteOnly)) {
printf("Couldn't save reference data for channel %d\n", m_Channel);
return;
}
// printf("File size = %ld\n", file.size());
qint64 sz = m_ReferenceData.size()*sizeof(double);
// printf("Reference data size = %ld elems\n", m_ReferenceData.size());
qint64 szwrt = file.write((char*) m_ReferenceData.data(), sz);
// printf("New file size = %ld\n", file.size());
if (szwrt != sz) {
printf("Incomplete write, wrote %ld of %ld.\n", (long) szwrt, (long) sz);
}
}
| void QavrgFitter::set_InputFullScale | ( | double | val | ) |
Definition at line 440 of file qavrgfitter.cpp.
References inputFullScale, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
for (int i=0; i<7; i++) {
if (inputFullScale(i) >= val) {
set_InputGain(i);
return;
}
}
}
| void QavrgFitter::setDarkData | ( | ) |
Definition at line 543 of file qavrgfitter.cpp.
References m_DarkData, m_Mutex, and m_RawData.
{
QMutexLocker lock(&m_Mutex);
m_DarkData = m_RawData;
set_DarkAvailable(true);
}
| void QavrgFitter::setReferenceData | ( | ) |
Definition at line 466 of file qavrgfitter.cpp.
References m_Mutex, m_RawData, and m_ReferenceData.
{
QMutexLocker lock(&m_Mutex);
m_ReferenceData = m_RawData;
set_ReferenceAvailable(true);
}
| void QavrgFitter::writeSettings | ( | QSettings * | settings | ) |
Definition at line 415 of file qavrgfitter.cpp.
References m_Channel, and m_Mutex.
{
QMutexLocker lock(&m_Mutex);
QcepProperty::writeSettings(this, &staticMetaObject, tr("channels%1").arg(m_Channel), settings);
}
QavrgAcquisition* QavrgFitter::m_Acquisition [private] |
Definition at line 85 of file qavrgfitter.h.
Referenced by performCalculation(), prepareCalculation(), and readResultBunchAverage().
int QavrgFitter::m_Channel [private] |
Definition at line 86 of file qavrgfitter.h.
Referenced by darkDataPath(), loadDarkData(), loadReferenceData(), performCalculation(), readSettings(), referenceDataPath(), saveDarkData(), saveReferenceData(), and writeSettings().
QVector<double> QavrgFitter::m_DarkData [private] |
Definition at line 90 of file qavrgfitter.h.
Referenced by darkDataPtr(), get_DarkData(), loadDarkData(), performCalculation(), resize(), saveDarkData(), and setDarkData().
QVector<double> QavrgFitter::m_FitData [private] |
Definition at line 92 of file qavrgfitter.h.
Referenced by get_FitData(), performCalculation(), and resize().
QMutex QavrgFitter::m_Mutex [private] |
Definition at line 84 of file qavrgfitter.h.
Referenced by get_DarkData(), get_FitData(), get_RawData(), get_ReferenceData(), loadDarkData(), loadReferenceData(), mutex(), performCalculation(), prepareCalculation(), readResult(), readResultAverage(), readResultBunchAverage(), readSettings(), resize(), resultSize(), saveDarkData(), saveReferenceData(), set_InputFullScale(), setDarkData(), setReferenceData(), and writeSettings().
int QavrgFitter::m_NSamples [private] |
Definition at line 88 of file qavrgfitter.h.
Referenced by loadDarkData(), loadReferenceData(), and resize().
QVector<double> QavrgFitter::m_RawData [private] |
Definition at line 89 of file qavrgfitter.h.
Referenced by get_RawData(), performCalculation(), rawDataPtr(), resize(), setDarkData(), and setReferenceData().
QVector<double> QavrgFitter::m_ReferenceData [private] |
Definition at line 91 of file qavrgfitter.h.
Referenced by get_ReferenceData(), loadReferenceData(), performCalculation(), referenceDataPtr(), resize(), saveReferenceData(), and setReferenceData().
QVector< QVector<double> > QavrgFitter::m_Results [private] |
Definition at line 94 of file qavrgfitter.h.
Referenced by performCalculation(), readResult(), readResultAverage(), and readResultBunchAverage().
int QavrgFitter::m_ResultSize [private] |
Definition at line 95 of file qavrgfitter.h.
Referenced by prepareCalculation(), and resultSize().
bool QavrgFitter::darkAvailable [read, write] |
Definition at line 126 of file qavrgfitter.h.
bool QavrgFitter::displayDark [read, write] |
Definition at line 121 of file qavrgfitter.h.
bool QavrgFitter::displayData [read, write] |
Definition at line 115 of file qavrgfitter.h.
bool QavrgFitter::displayFit [read, write] |
Definition at line 123 of file qavrgfitter.h.
bool QavrgFitter::displayRaw [read, write] |
Definition at line 117 of file qavrgfitter.h.
bool QavrgFitter::displayReference [read, write] |
Definition at line 119 of file qavrgfitter.h.
int QavrgFitter::fittingEnd [read, write] |
Definition at line 112 of file qavrgfitter.h.
double QavrgFitter::fittingOffset [read, write] |
Definition at line 108 of file qavrgfitter.h.
int QavrgFitter::fittingStart [read, write] |
Definition at line 110 of file qavrgfitter.h.
int QavrgFitter::inputBandwidth [read, write] |
Definition at line 103 of file qavrgfitter.h.
int QavrgFitter::inputCoupling [read, write] |
Definition at line 105 of file qavrgfitter.h.
double QavrgFitter::inputFullScale [read, write] |
Definition at line 98 of file qavrgfitter.h.
Referenced by get_InputFullScale(), and set_InputFullScale().
int QavrgFitter::inputGain [read, write] |
Definition at line 98 of file qavrgfitter.h.
double QavrgFitter::inputOffset [read, write] |
Definition at line 101 of file qavrgfitter.h.
bool QavrgFitter::referenceAvailable [read, write] |
Definition at line 128 of file qavrgfitter.h.
1.7.4