QXRD  0.11.16
Public Types | Public Slots | Public Member Functions | Static Public Member Functions | Properties | Private Slots | Private Member Functions | Private Attributes | List of all members
QxrdDetectorProcessor Class Reference

#include <qxrddetectorprocessor.h>

Inheritance diagram for QxrdDetectorProcessor:
Inheritance graph
[legend]
Collaboration diagram for QxrdDetectorProcessor:
Collaboration graph
[legend]

Public Types

enum  { NoDisplayMode, ImageDisplayMode, IntegratedDisplayMode }
 

Public Slots

QxrdCenterFinderPtr centerFinder ()
 
QxrdIntegratorPtr integrator ()
 
QxrdROICalculatorPtr roiCalculator ()
 
void processAcquiredImage (QcepInt32ImageDataPtr image, QcepMaskDataPtr overflow, int fileIndex, int phase, int nPhases, bool trig)
 
void processDarkImage (QcepInt32ImageDataPtr image, QcepMaskDataPtr overflow, int fileIndex)
 
void processIdleImage (QcepImageDataBasePtr image)
 
QcepImageDataBasePtr data ()
 
QcepInt32ImageDataPtr dark ()
 
QcepDoubleImageDataPtr badPixels ()
 
QcepDoubleImageDataPtr gainCorrection ()
 
QcepMaskDataPtr mask ()
 
QcepMaskDataPtr overflow ()
 
- Public Slots inherited from QcepObject
virtual void printLine (QString line)
 
virtual void printMessage (QString msg, QDateTime dt=QDateTime::currentDateTime()) const
 
virtual void criticalMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual void statusMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual QString settingsScript ()
 
QString scriptValueLiteral (QVariant v)
 

Public Member Functions

 QxrdDetectorProcessor (QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdFileSaverWPtr fsav, QxrdDetectorWPtr det)
 
virtual ~QxrdDetectorProcessor ()
 
void setControlWindow (QxrdDetectorControlWindowWPtr ctrl)
 
void readSettings (QSettings *settings, QString section)
 
void writeSettings (QSettings *settings, QString section)
 
QxrdImagePlotSettingsWPtr imagePlotSettings ()
 
QString filePathInDarkOutputDirectory (QString fileName) const
 
QString filePathInRawOutputDirectory (QString fileName) const
 
QString filePathInSubtractedOutputDirectory (QString fileName) const
 
QString filePathInIntegratedOutputDirectory (QString fileName) const
 
- Public Member Functions inherited from QcepObject
 QcepObject (QString name, QcepObject *parent)
 
virtual ~QcepObject ()
 
QString get_Name () const
 
void set_Name (QString name)
 

Static Public Member Functions

static QScriptValue toScriptValue (QScriptEngine *engine, const QxrdDetectorProcessorPtr &proc)
 
static void fromScriptValue (const QScriptValue &obj, QxrdDetectorProcessorPtr &proc)
 
- Static Public Member Functions inherited from QcepObject
static int allocatedObjects ()
 
static int deletedObjects ()
 
static QSet< QcepObject * > allocatedObjectsSet ()
 
static QString addSlashes (QString str)
 

Properties

int detectorDisplayMode
 
bool performDarkSubtraction
 
bool saveRawImages
 
bool saveDarkImages
 
bool performBadPixels
 
bool performGainCorrection
 
bool saveSubtracted
 
QString darkImagePath
 
QString rawDataSubdir
 
QString darkDataSubdir
 
QString badPixelsPath
 
QString gainMapPath
 
QString subtractedSubdir
 
QString maskPath
 
bool performIntegration
 
bool displayIntegratedData
 
bool saveIntegratedData
 
QString integratedDataFile
 
bool saveIntegratedDataSeparate
 
QString integratedDataSubdir
 
bool accumulateIntegrated2D
 
QString accumulateIntegratedName
 
bool calculateROICounts
 
bool displayROIBorders
 
QcepDoubleVector roiCounts
 
- Properties inherited from QcepObject
QString name
 

Private Slots

void onMaskPathChanged (QString newPath)
 
void onDarkImagePathChanged (QString newPath)
 
void onBadPixelsPathChanged (QString newPath)
 
void onGainMapPathChanged (QString newPath)
 

Private Member Functions

void setAcquiredImageProperties (QcepImageDataBasePtr image, int fileIndex, int phase, int nPhases, bool trig)
 
QcepImageDataBasePtr doDarkSubtraction (QcepImageDataBasePtr img)
 
QcepImageDataBasePtr doBadPixels (QcepImageDataBasePtr img)
 
QcepImageDataBasePtr doGainCorrection (QcepImageDataBasePtr img)
 
QcepDoubleVector doCalculateROICounts (QcepImageDataBasePtr img)
 
void doSaveRawImage (QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
 
void doSaveSubtractedImage (QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
 
void doSaveDarkImage (QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
 
QString dataDirectory () const
 
QString darkOutputDirectory () const
 
QString rawOutputDirectory () const
 
QString subtractedOutputDirectory () const
 
QString integratedOutputDirectory () const
 
QString existingOutputDirectory (QString dir, QString subdir) const
 

Private Attributes

QcepSettingsSaverWPtr m_Saver
 
QMutex m_Mutex
 
QxrdExperimentWPtr m_Experiment
 
QxrdFileSaverWPtr m_FileSaver
 
QxrdDetectorWPtr m_Detector
 
QxrdCenterFinderPtr m_CenterFinder
 
QxrdIntegratorPtr m_Integrator
 
QxrdROICalculatorPtr m_ROICalculator
 
QxrdDetectorControlWindowWPtr m_ControlWindow
 
QxrdImagePlotSettingsPtr m_ImagePlotSettings
 
QcepImageDataBasePtr m_Data
 
QcepInt32ImageDataPtr m_DarkImage
 
QcepDoubleImageDataPtr m_BadPixels
 
QcepDoubleImageDataPtr m_GainMap
 
QcepDoubleImageDataPtr m_LiveData
 
QcepMaskDataPtr m_Mask
 
QcepMaskDataPtr m_Overflow
 

Detailed Description

Definition at line 24 of file qxrddetectorprocessor.h.

Member Enumeration Documentation

anonymous enum

Constructor & Destructor Documentation

QxrdDetectorProcessor::QxrdDetectorProcessor ( QcepSettingsSaverWPtr  saver,
QxrdExperimentWPtr  doc,
QxrdFileSaverWPtr  fsav,
QxrdDetectorWPtr  det 
)

Definition at line 15 of file qxrddetectorprocessor.cpp.

References DEBUG_CONSTRUCTORS, m_CenterFinder, m_Experiment, m_Integrator, m_ROICalculator, m_Saver, onBadPixelsPathChanged(), onDarkImagePathChanged(), onGainMapPathChanged(), onMaskPathChanged(), qcepDebug(), and QcepStringProperty::valueChanged().

20  : QcepObject("acquisitionProcessor", doc.data()),
21  m_Saver(saver),
22  m_DetectorDisplayMode(saver, this, "detectorDisplayMode", ImageDisplayMode, "Detector Display Mode"),
23  m_PerformDarkSubtraction(saver, this, "performDarkSubtraction", true, "Perform Dark Subtraction?"),
24  m_SaveRawImages(saver, this, "saveRawImages", true, "Save Raw Images?"),
25  m_SaveDarkImages(saver, this, "saveDarkImages", true, "Save Dark Images?"),
26  m_PerformBadPixels(saver, this, "performBadPixels", true, "Perform Bad Pixel Correction?"),
27  m_PerformGainCorrection(saver, this, "performGainCorrection", true, "Perform Gain Correction?"),
28  m_SaveSubtracted(saver, this, "saveSubtracted", true, "Save Dark Subtracted Data?"),
29  m_DarkImagePath(saver, this, "darkImagePath", "", "Dark Images Path"),
30  m_RawDataSubdir(saver, this, "rawDataSubdir", "", "Raw Data Subdirectory"),
31  m_DarkDataSubdir(saver, this, "darkDataSubdir", "", "Dark Data Subdirectory"),
32  m_BadPixelsPath(saver, this, "badPixelsPath", "", "Bad Pixels Path"),
33  m_GainMapPath(saver, this, "gainMapPath", "", "Gain Map Path"),
34  m_SubtractedSubdir(saver, this, "subtractedSubdir", "", "Subtracted Data Subdirectory"),
35  m_MaskPath(saver, this, "maskPath", "", "Mask Path"),
36 
37  m_PerformIntegration(saver, this, "performIntegration", true, "Perform Circular Integration?"),
38  m_DisplayIntegratedData(saver, this, "displayIntegratedData", true, "Display Integrated Data?"),
39  m_SaveIntegratedData(saver, this, "saveIntegratedData", true, "Save Integrated Data?"),
40  m_IntegratedDataFile(saver, this, "integratedDataFile", "", "Integrated Data File"),
41  m_SaveIntegratedDataSeparate(saver, this, "saveIntegratedDataSeparate", false, "Save Integrated Data in Separate Files?"),
42  m_IntegratedDataSubdir(saver, this, "integratedDataSubdir", "", "Integrated Data Subdir"),
43 
44  m_AccumulateIntegrated2D(saver, this, "accumulateIntegrated2D", 0, "Accumulate integrated data in 2-d dataset"),
45  m_AccumulateIntegratedName(saver, this, "accumulateIntegratedName", "", "Dataset name for accumulated data"),
46 
47  m_CalculateROICounts(saver, this, "calculateROICounts", true, "Calculate ROI Counts"),
48  m_DisplayROIBorders(saver, this, "displayROIBorders", true, "Display ROIs in image"),
49 
50  m_RoiCounts(QcepSettingsSaverWPtr(), this, "roiCounts", QcepDoubleVector(), "ROI Counts"),
51 
52  m_Experiment(doc),
53  m_FileSaver(fsav),
54  m_Detector(det),
56  m_Integrator(),
60 {
62  printf("QxrdDetectorProcessor::QxrdDetectorProcessor(%p)\n", this);
63  }
64 
68 
73 }
QSharedPointer< QxrdCenterFinder > QxrdCenterFinderPtr
void onBadPixelsPathChanged(QString newPath)
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
void valueChanged(QString val, int index)
QxrdDetectorControlWindowWPtr m_ControlWindow
void onDarkImagePathChanged(QString newPath)
QSharedPointer< QxrdROICalculator > QxrdROICalculatorPtr
QxrdIntegratorPtr m_Integrator
QVector< double > QcepDoubleVector
Definition: qcepmacros.h:19
QxrdExperimentWPtr m_Experiment
QxrdImagePlotSettingsPtr m_ImagePlotSettings
void onMaskPathChanged(QString newPath)
QcepSettingsSaverWPtr m_Saver
QSharedPointer< QxrdIntegrator > QxrdIntegratorPtr
QxrdROICalculatorPtr m_ROICalculator
QcepObject(QString name, QcepObject *parent)
Definition: qcepobject.cpp:16
QxrdCenterFinderPtr m_CenterFinder
QxrdFileSaverWPtr m_FileSaver
void onGainMapPathChanged(QString newPath)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr

Here is the call graph for this function:

QxrdDetectorProcessor::~QxrdDetectorProcessor ( )
virtual

Definition at line 75 of file qxrddetectorprocessor.cpp.

References DEBUG_CONSTRUCTORS, and qcepDebug().

76 {
78  printf("QxrdDetectorProcessor::~QxrdDetectorProcessor(%p)\n", this);
79  }
80 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26

Here is the call graph for this function:

Member Function Documentation

QcepDoubleImageDataPtr QxrdDetectorProcessor::badPixels ( )
slot

Definition at line 176 of file qxrddetectorprocessor.cpp.

References m_BadPixels.

177 {
178  return m_BadPixels;
179 }
QcepDoubleImageDataPtr m_BadPixels
QxrdCenterFinderPtr QxrdDetectorProcessor::centerFinder ( )
slot

Definition at line 151 of file qxrddetectorprocessor.cpp.

References m_CenterFinder.

152 {
153  return m_CenterFinder;
154 }
QxrdCenterFinderPtr m_CenterFinder
QcepInt32ImageDataPtr QxrdDetectorProcessor::dark ( )
slot

Definition at line 171 of file qxrddetectorprocessor.cpp.

References m_DarkImage.

Referenced by doDarkSubtraction(), and onDarkImagePathChanged().

172 {
173  return m_DarkImage;
174 }
QcepInt32ImageDataPtr m_DarkImage

Here is the caller graph for this function:

QString QxrdDetectorProcessor::darkOutputDirectory ( ) const
private

Definition at line 683 of file qxrddetectorprocessor.cpp.

References dataDirectory(), and existingOutputDirectory().

Referenced by filePathInDarkOutputDirectory().

684 {
685  return existingOutputDirectory(dataDirectory(), get_DarkDataSubdir());
686 }
QString existingOutputDirectory(QString dir, QString subdir) const

Here is the call graph for this function:

Here is the caller graph for this function:

QcepImageDataBasePtr QxrdDetectorProcessor::data ( )
slot

Definition at line 166 of file qxrddetectorprocessor.cpp.

References m_Data.

167 {
168  return m_Data;
169 }
QcepImageDataBasePtr m_Data
QString QxrdDetectorProcessor::dataDirectory ( ) const
private

Definition at line 667 of file qxrddetectorprocessor.cpp.

References m_Experiment.

Referenced by darkOutputDirectory(), integratedOutputDirectory(), rawOutputDirectory(), and subtractedOutputDirectory().

668 {
670 
671  if (expt) {
672  return QDir(expt->get_ExperimentDirectory()).filePath(expt->get_DataDirectory());
673  } else {
674  return QString();
675  }
676 }
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
QxrdExperimentWPtr m_Experiment

Here is the caller graph for this function:

QcepImageDataBasePtr QxrdDetectorProcessor::doBadPixels ( QcepImageDataBasePtr  img)
private

Definition at line 590 of file qxrddetectorprocessor.cpp.

References QcepObject::printMessage().

Referenced by processAcquiredImage(), and processIdleImage().

591 {
592  printMessage("Bad Pixel Correction not yet implemented");
593 
594  return img;
595 }
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84

Here is the call graph for this function:

Here is the caller graph for this function:

QcepDoubleVector QxrdDetectorProcessor::doCalculateROICounts ( QcepImageDataBasePtr  img)
private

Definition at line 604 of file qxrddetectorprocessor.cpp.

References DEBUG_ACQUIRE, m_Mask, m_ROICalculator, QcepObject::printMessage(), and qcepDebug().

Referenced by processAcquiredImage(), and processIdleImage().

605 {
606  QcepDoubleVector res;
607 
608  if (img && m_ROICalculator) {
609  res = m_ROICalculator->values(img, m_Mask);
610  }
611 
612  if (qcepDebug(DEBUG_ACQUIRE)) {
613  QString s = "[";
614 
615  for (int i=0; i<res.count(); i++) {
616  if (i == 0) {
617  s.append(tr("%1").arg(res.value(i)));
618  } else {
619  s.append(tr(", %1").arg(res.value(i)));
620  }
621  }
622 
623  s.append("]");
624 
625  printMessage(tr("ROI Values = %1").arg(s));
626  }
627 
628  return res;
629 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QVector< double > QcepDoubleVector
Definition: qcepmacros.h:19
QxrdROICalculatorPtr m_ROICalculator
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84

Here is the call graph for this function:

Here is the caller graph for this function:

QcepImageDataBasePtr QxrdDetectorProcessor::doDarkSubtraction ( QcepImageDataBasePtr  img)
private

Definition at line 492 of file qxrddetectorprocessor.cpp.

References QcepAllocator::AlwaysAllocate, dark(), m_DarkImage, QcepAllocator::newDoubleImage(), and QcepObject::printMessage().

Referenced by processAcquiredImage(), and processIdleImage().

493 {
495  QcepImageDataBasePtr res = img;
496 
497  if (img && dark) {
498  if (img->get_ExposureTime() != dark->get_ExposureTime()) {
499  printMessage("Exposure times of acquired data and dark image are different, skipping");
500  return img;
501  }
502 
503  if (img->get_Width() != dark->get_Width() ||
504  img->get_Height() != dark->get_Height()) {
505  printMessage("Dimensions of acquired data and dark image are different, skipping");
506  return img;
507  }
508 
509  if (img->get_CameraGain() != dark->get_CameraGain()) {
510  printMessage("Gains of acquired data and dark image are different, skipping");
511  return img;
512  }
513 
514  int height = img->get_Height();
515  int width = img->get_Width();
516  int nres = img -> get_SummedExposures();
517  int ndrk = dark -> get_SummedExposures();
518  int npixels = width*height;
519 
520  if (nres <= 0) nres = 1;
521 
522 
523  double ratio = ((double) nres)/((double) ndrk);
524 
526 
527  if (result) {
528  result->copyPropertiesFrom(img);
529 
530  double sumraw = 0, sumdark = 0;
531 
532  double *resptr = result->data();
533  quint32 *drkptr = dark->data();
534 
535  QcepInt16ImageDataPtr i16 = qSharedPointerDynamicCast<QcepInt16ImageData>(img);
536 
537  if (i16) {
538  quint16 *imgptr = i16->data();
539 
540  for (int i=0; i<npixels; i++) {
541  double valraw = imgptr[i];
542  double valdark = drkptr[i];
543 
544  sumraw += valraw;
545  sumdark += valdark;
546 
547  resptr[i] = valraw - ratio*valdark;
548  }
549  } else {
550  QcepInt32ImageDataPtr i32 = qSharedPointerDynamicCast<QcepInt32ImageData>(img);
551 
552  if (i32) {
553  quint32 *imgptr = i32->data();
554 
555  for (int i=0; i<npixels; i++) {
556  double valraw = imgptr[i];
557  double valdark = drkptr[i];
558 
559  sumraw += valraw;
560  sumdark += valdark;
561 
562  resptr[i] = valraw - ratio*valdark;
563  }
564  } else {
565  npixels = 0;
566 
567  for (int row=0; row<height; row++) {
568  for (int col=0; col<width; col++) {
569  double valraw = img -> getImageData(col, row);
570  double valdark = dark -> getImageData(col, row);
571  if (valraw == valraw && valdark == valdark) { // Check for NaNs
572  sumraw += valraw; sumdark += valdark;
573  npixels += 1;
574  double resval = valraw - ratio*valdark;
575 
576  result->setImageData(col, row, resval);
577  }
578  }
579  }
580  }
581  }
582  }
583 
584  res = result;
585  }
586 
587  return res;
588 }
static QcepDoubleImageDataPtr newDoubleImage(AllocationStrategy strat, int width, int height, QcepObject *parent)
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
QcepInt32ImageDataPtr dark()
QSharedPointer< QcepInt32ImageData > QcepInt32ImageDataPtr
QSharedPointer< QcepImageDataBase > QcepImageDataBasePtr
QSharedPointer< QcepInt16ImageData > QcepInt16ImageDataPtr
QcepInt32ImageDataPtr m_DarkImage
QSharedPointer< QcepDoubleImageData > QcepDoubleImageDataPtr

Here is the call graph for this function:

Here is the caller graph for this function:

QcepImageDataBasePtr QxrdDetectorProcessor::doGainCorrection ( QcepImageDataBasePtr  img)
private

Definition at line 597 of file qxrddetectorprocessor.cpp.

References QcepObject::printMessage().

Referenced by processAcquiredImage(), and processIdleImage().

598 {
599  printMessage("Gain Correction not yet implemented");
600 
601  return img;
602 }
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::doSaveDarkImage ( QcepImageDataBasePtr  img,
QcepMaskDataPtr  ovf 
)
private

Definition at line 643 of file qxrddetectorprocessor.cpp.

References filePathInDarkOutputDirectory(), m_Experiment, m_FileSaver, and QxrdFileSaver::NoOverwrite.

Referenced by processDarkImage().

644 {
647 
648  if (fsav && expt && img) {
649  QString fullPath = filePathInDarkOutputDirectory(img->get_FileBase());
650 
651  fsav->saveImageData(fullPath, img, ovf, QxrdFileSaver::NoOverwrite);
652  }
653 }
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
QString filePathInDarkOutputDirectory(QString fileName) const
QxrdExperimentWPtr m_Experiment
QSharedPointer< QxrdFileSaver > QxrdFileSaverPtr
QxrdFileSaverWPtr m_FileSaver

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::doSaveRawImage ( QcepImageDataBasePtr  img,
QcepMaskDataPtr  ovf 
)
private

Definition at line 631 of file qxrddetectorprocessor.cpp.

References filePathInRawOutputDirectory(), m_Experiment, m_FileSaver, and QxrdFileSaver::NoOverwrite.

Referenced by processAcquiredImage().

632 {
635 
636  if (fsav && expt && img) {
637  QString fullPath = filePathInRawOutputDirectory(img->get_FileBase());
638 
639  fsav->saveImageData(fullPath, img, ovf, QxrdFileSaver::NoOverwrite);
640  }
641 }
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
QxrdExperimentWPtr m_Experiment
QString filePathInRawOutputDirectory(QString fileName) const
QSharedPointer< QxrdFileSaver > QxrdFileSaverPtr
QxrdFileSaverWPtr m_FileSaver

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::doSaveSubtractedImage ( QcepImageDataBasePtr  img,
QcepMaskDataPtr  ovf 
)
private

Definition at line 655 of file qxrddetectorprocessor.cpp.

References filePathInSubtractedOutputDirectory(), m_Experiment, m_FileSaver, and QxrdFileSaver::NoOverwrite.

Referenced by processAcquiredImage().

656 {
659 
660  if (fsav && expt && img) {
661  QString fullPath = filePathInSubtractedOutputDirectory(img->get_FileBase());
662 
663  fsav->saveImageData(fullPath, img, ovf, QxrdFileSaver::NoOverwrite);
664  }
665 }
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
QxrdExperimentWPtr m_Experiment
QSharedPointer< QxrdFileSaver > QxrdFileSaverPtr
QString filePathInSubtractedOutputDirectory(QString fileName) const
QxrdFileSaverWPtr m_FileSaver

Here is the call graph for this function:

Here is the caller graph for this function:

QString QxrdDetectorProcessor::existingOutputDirectory ( QString  dir,
QString  subdir 
) const
private

Definition at line 678 of file qxrddetectorprocessor.cpp.

Referenced by darkOutputDirectory(), integratedOutputDirectory(), rawOutputDirectory(), and subtractedOutputDirectory().

679 {
680  return QDir(dir).filePath(subdir);
681 }

Here is the caller graph for this function:

QString QxrdDetectorProcessor::filePathInDarkOutputDirectory ( QString  fileName) const

Definition at line 688 of file qxrddetectorprocessor.cpp.

References darkOutputDirectory().

Referenced by doSaveDarkImage().

689 {
690  return QDir(darkOutputDirectory()).filePath(fileName);
691 }
QString darkOutputDirectory() const

Here is the call graph for this function:

Here is the caller graph for this function:

QString QxrdDetectorProcessor::filePathInIntegratedOutputDirectory ( QString  fileName) const

Definition at line 718 of file qxrddetectorprocessor.cpp.

References integratedOutputDirectory().

719 {
720  return QDir(integratedOutputDirectory()).filePath(fileName);
721 }
QString integratedOutputDirectory() const

Here is the call graph for this function:

QString QxrdDetectorProcessor::filePathInRawOutputDirectory ( QString  fileName) const

Definition at line 698 of file qxrddetectorprocessor.cpp.

References rawOutputDirectory().

Referenced by doSaveRawImage().

699 {
700  return QDir(rawOutputDirectory()).filePath(fileName);
701 }
QString rawOutputDirectory() const

Here is the call graph for this function:

Here is the caller graph for this function:

QString QxrdDetectorProcessor::filePathInSubtractedOutputDirectory ( QString  fileName) const

Definition at line 708 of file qxrddetectorprocessor.cpp.

References subtractedOutputDirectory().

Referenced by doSaveSubtractedImage().

709 {
710  return QDir(subtractedOutputDirectory()).filePath(fileName);
711 }
QString subtractedOutputDirectory() const

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::fromScriptValue ( const QScriptValue &  obj,
QxrdDetectorProcessorPtr proc 
)
static

Definition at line 138 of file qxrddetectorprocessor.cpp.

139 {
140  QObject *qobj = obj.toQObject();
141 
142  if (qobj) {
143  QxrdDetectorProcessor *qproc = qobject_cast<QxrdDetectorProcessor*>(qobj);
144 
145  if (qproc) {
146  proc = QxrdDetectorProcessorPtr(qproc);
147  }
148  }
149 }
QSharedPointer< QxrdDetectorProcessor > QxrdDetectorProcessorPtr
QcepDoubleImageDataPtr QxrdDetectorProcessor::gainCorrection ( )
slot

Definition at line 181 of file qxrddetectorprocessor.cpp.

References m_GainMap.

182 {
183  return m_GainMap;
184 }
QcepDoubleImageDataPtr m_GainMap
QxrdImagePlotSettingsWPtr QxrdDetectorProcessor::imagePlotSettings ( )

Definition at line 487 of file qxrddetectorprocessor.cpp.

References m_ImagePlotSettings.

488 {
489  return m_ImagePlotSettings;
490 }
QxrdImagePlotSettingsPtr m_ImagePlotSettings
QString QxrdDetectorProcessor::integratedOutputDirectory ( ) const
private

Definition at line 713 of file qxrddetectorprocessor.cpp.

References dataDirectory(), and existingOutputDirectory().

Referenced by filePathInIntegratedOutputDirectory().

714 {
715  return existingOutputDirectory(dataDirectory(), get_IntegratedDataSubdir());
716 }
QString existingOutputDirectory(QString dir, QString subdir) const

Here is the call graph for this function:

Here is the caller graph for this function:

QxrdIntegratorPtr QxrdDetectorProcessor::integrator ( )
slot

Definition at line 156 of file qxrddetectorprocessor.cpp.

References m_Integrator.

157 {
158  return m_Integrator;
159 }
QxrdIntegratorPtr m_Integrator
QcepMaskDataPtr QxrdDetectorProcessor::mask ( )
slot

Definition at line 186 of file qxrddetectorprocessor.cpp.

References m_Mask.

Referenced by onMaskPathChanged().

187 {
188  return m_Mask;
189 }

Here is the caller graph for this function:

void QxrdDetectorProcessor::onBadPixelsPathChanged ( QString  newPath)
privateslot

Definition at line 761 of file qxrddetectorprocessor.cpp.

References QcepAllocator::AlwaysAllocate, m_BadPixels, QcepAllocator::newDoubleImage(), and QcepObject::printMessage().

Referenced by QxrdDetectorProcessor().

762 {
763  if (newPath.length() == 0) {
764  printMessage("Clear Bad Pixels");
766  } else {
767  printMessage(tr("Load Bad Pixels from %1").arg(newPath));
768 
770 
771  if (bad && bad->readImage(newPath)) {
772  m_BadPixels = bad;
773  }
774  }
775 }
QcepDoubleImageDataPtr m_BadPixels
static QcepDoubleImageDataPtr newDoubleImage(AllocationStrategy strat, int width, int height, QcepObject *parent)
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
QSharedPointer< QcepDoubleImageData > QcepDoubleImageDataPtr

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::onDarkImagePathChanged ( QString  newPath)
privateslot

Definition at line 745 of file qxrddetectorprocessor.cpp.

References QcepAllocator::AlwaysAllocate, dark(), m_DarkImage, QcepAllocator::newInt32Image(), and QcepObject::printMessage().

Referenced by QxrdDetectorProcessor().

746 {
747  if (newPath.length() == 0) {
748  printMessage("Clear Dark Image");
750  } else {
751  printMessage(tr("Load Dark Image from %1").arg(newPath));
752 
754 
755  if (dark && dark -> readImage(newPath)) {
756  m_DarkImage = dark;
757  }
758  }
759 }
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
QcepInt32ImageDataPtr dark()
QSharedPointer< QcepInt32ImageData > QcepInt32ImageDataPtr
static QcepInt32ImageDataPtr newInt32Image(AllocationStrategy strat, int width, int height, QcepObject *parent)
QcepInt32ImageDataPtr m_DarkImage

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::onGainMapPathChanged ( QString  newPath)
privateslot

Definition at line 777 of file qxrddetectorprocessor.cpp.

References QcepObject::printMessage().

Referenced by QxrdDetectorProcessor().

778 {
779  if (newPath.length() == 0) {
780  printMessage("Clear Gain Map");
781  } else {
782  printMessage(tr("Load Gain Map from %1").arg(newPath));
783  }
784 }
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::onMaskPathChanged ( QString  newPath)
privateslot

Definition at line 723 of file qxrddetectorprocessor.cpp.

References QcepAllocator::AlwaysAllocate, m_ControlWindow, m_Mask, mask(), QcepAllocator::newMask(), and QcepObject::printMessage().

Referenced by QxrdDetectorProcessor().

724 {
725  if (newPath.length() == 0) {
726  printMessage("Clear Mask");
728  } else {
729  printMessage(tr("Load mask from %1").arg(newPath));
730 
732 
733  if (mask && mask->readImage(newPath)) {
734  m_Mask = mask;
735 
737 
738  if (ctl) {
739  ctl->displayNewMask(m_Mask);
740  }
741  }
742  }
743 }
QSharedPointer< QxrdDetectorControlWindow > QxrdDetectorControlWindowPtr
QxrdDetectorControlWindowWPtr m_ControlWindow
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
static QcepMaskDataPtr newMask(AllocationStrategy strat, int width, int height, int def, QcepObject *parent)
QSharedPointer< QcepMaskData > QcepMaskDataPtr

Here is the call graph for this function:

Here is the caller graph for this function:

QcepMaskDataPtr QxrdDetectorProcessor::overflow ( )
slot

Definition at line 191 of file qxrddetectorprocessor.cpp.

References m_Overflow.

Referenced by processAcquiredImage().

192 {
193  return m_Overflow;
194 }

Here is the caller graph for this function:

void QxrdDetectorProcessor::processAcquiredImage ( QcepInt32ImageDataPtr  image,
QcepMaskDataPtr  overflow,
int  fileIndex,
int  phase,
int  nPhases,
bool  trig 
)
slot

Definition at line 237 of file qxrddetectorprocessor.cpp.

References DEBUG_ACQUIRE, DEBUG_ACQUIRETIME, doBadPixels(), doCalculateROICounts(), doDarkSubtraction(), doGainCorrection(), doSaveRawImage(), doSaveSubtractedImage(), ImageDisplayMode, m_ControlWindow, m_Data, m_Overflow, overflow(), QcepObject::printMessage(), qcepDebug(), and setAcquiredImageProperties().

243 {
244  if (QThread::currentThread() != thread()) {
245  QMetaObject::invokeMethod(this, "processAcquiredImage",
246  Q_ARG(QcepInt32ImageDataPtr, image),
247  Q_ARG(QcepMaskDataPtr, overflow),
248  Q_ARG(int, fileIndex),
249  Q_ARG(int, phase),
250  Q_ARG(int, nPhases),
251  Q_ARG(bool, trig));
252  } else {
253  if (image) {
254  m_Data = image;
256 
257  QcepDoubleVector scalers;
258 
259  QcepImageDataBasePtr img = image;
260 
261  if (qcepDebug(DEBUG_ACQUIRE)) {
262  printMessage(tr("QxrdDetectorProcessor::processAcquiredImage(\"%1\",...)")
263  .arg(img->get_FileName()));
264  }
265 
266  QTime tic;
267  tic.start();
268 
269  setAcquiredImageProperties(img, fileIndex, phase, nPhases, trig);
270 
272 
273  if (get_SaveRawImages()) {
274  doSaveRawImage(img, overflow);
275 
276  int saveTime = tic.restart();
277 
279  printMessage(tr("Save took %1 msec").arg(saveTime));
280  }
281  }
282 
283  if (img && get_PerformDarkSubtraction()) {
284  img = doDarkSubtraction(img);
285 
286  int subTime = tic.restart();
287 
289  printMessage(tr("Subtraction took %1 msec").arg(subTime));
290  }
291  }
292 
293  if (img && get_PerformBadPixels()) {
294  img = doBadPixels(img);
295 
296  int pxlTime = tic.restart();
297 
299  printMessage(tr("Bd pixels took %1 msec").arg(pxlTime));
300  }
301  }
302 
303  if (img && get_PerformGainCorrection()) {
304  img = doGainCorrection(img);
305 
306  int gainTime = tic.restart();
307 
309  printMessage(tr("Gain correction took %1 msec").arg(gainTime));
310  }
311  }
312 
313  if (ctrl && get_DetectorDisplayMode() == ImageDisplayMode) {
314  ctrl->displayNewData(img, overflow);
315 
316  int displayTime = tic.restart();
317 
319  printMessage(tr("Display took %1 msec").arg(displayTime));
320  }
321  }
322 
323  if (img && get_CalculateROICounts()) {
324  const QcepDoubleVector s = doCalculateROICounts(img);
325 
326  scalers += s;
327 
328  set_RoiCounts(scalers);
329 
330  int roiTime = tic.restart();
331 
333  printMessage(tr("ROI calculation took %1 msec").arg(roiTime));
334  }
335  }
336 
337  if (img && get_SaveSubtracted()) {
339 
340  int saveTime = tic.restart();
341 
343  printMessage(tr("Save Subtracted took %1 msec").arg(saveTime));
344  }
345  }
346 
347  // if (get_PerformIntegration()) {
348  // integ = doPerformIntegration(img);
349 
350  // if (ctrl && get_DisplayIntegratedData()) {
351  // ctrl->displayIntegratedData(integ);
352  // }
353 
354  // if (get_SaveIntegratedData()) {
355  // doSaveIntegratedData(integ);
356  // }
357 
358  // if (get_SaveIntegratedDataSeparate()) {
359  // doSaveIntegratedDataSeparate(integ);
360  // }
361 
362  // if (get_AccumulateIntegrated2D()) {
363  // doAccumulateIntegrated2D(integ);
364  // }
365  // }
366  }
367  }
368 }
QSharedPointer< QxrdDetectorControlWindow > QxrdDetectorControlWindowPtr
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdDetectorControlWindowWPtr m_ControlWindow
QcepImageDataBasePtr doGainCorrection(QcepImageDataBasePtr img)
void doSaveSubtractedImage(QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
QVector< double > QcepDoubleVector
Definition: qcepmacros.h:19
QcepImageDataBasePtr doBadPixels(QcepImageDataBasePtr img)
QcepImageDataBasePtr m_Data
void doSaveRawImage(QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
void setAcquiredImageProperties(QcepImageDataBasePtr image, int fileIndex, int phase, int nPhases, bool trig)
QcepImageDataBasePtr doDarkSubtraction(QcepImageDataBasePtr img)
QSharedPointer< QcepInt32ImageData > QcepInt32ImageDataPtr
QcepDoubleVector doCalculateROICounts(QcepImageDataBasePtr img)
QSharedPointer< QcepImageDataBase > QcepImageDataBasePtr
QSharedPointer< QcepMaskData > QcepMaskDataPtr

Here is the call graph for this function:

void QxrdDetectorProcessor::processDarkImage ( QcepInt32ImageDataPtr  image,
QcepMaskDataPtr  overflow,
int  fileIndex 
)
slot

Definition at line 370 of file qxrddetectorprocessor.cpp.

References DEBUG_ACQUIRE, doSaveDarkImage(), m_DarkImage, QcepObject::printMessage(), qcepDebug(), and setAcquiredImageProperties().

373 {
374  if (QThread::currentThread() != thread()) {
375  QMetaObject::invokeMethod(this, "processDarkImage",
376  Q_ARG(QcepInt32ImageDataPtr, image),
377  Q_ARG(QcepMaskDataPtr, overflow),
378  Q_ARG(int, fileIndex));
379  } else {
380  if (image) {
381  if (qcepDebug(DEBUG_ACQUIRE)) {
382  printMessage(tr("QxrdDetectorProcessor::processDarkImage(\"%1\",...)")
383  .arg(image->get_FileName()));
384  }
385 
386  setAcquiredImageProperties(image, fileIndex, -1, 0, true);
387 
388  if (get_SaveDarkImages()) {
389  doSaveDarkImage(image, overflow);
390 
391  set_DarkImagePath(image->get_FileName());
392  }
393 
394  m_DarkImage = image;
395  }
396  }
397 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
void doSaveDarkImage(QcepImageDataBasePtr img, QcepMaskDataPtr ovf)
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
void setAcquiredImageProperties(QcepImageDataBasePtr image, int fileIndex, int phase, int nPhases, bool trig)
QSharedPointer< QcepInt32ImageData > QcepInt32ImageDataPtr
QSharedPointer< QcepMaskData > QcepMaskDataPtr
QcepInt32ImageDataPtr m_DarkImage

Here is the call graph for this function:

void QxrdDetectorProcessor::processIdleImage ( QcepImageDataBasePtr  image)
slot

Definition at line 399 of file qxrddetectorprocessor.cpp.

References DEBUG_ACQUIRE, DEBUG_ACQUIRETIME, doBadPixels(), doCalculateROICounts(), doDarkSubtraction(), doGainCorrection(), ImageDisplayMode, m_ControlWindow, m_Experiment, QcepObject::printMessage(), qcepDebug(), and setAcquiredImageProperties().

400 {
401  if (QThread::currentThread() != thread()) {
402  QMetaObject::invokeMethod(this, "processIdleImage",
403  Q_ARG(QcepImageDataBasePtr, image));
404  } else {
405  if (image) {
407 
408  if (expt) {
409  QxrdAcquisitionPtr acq(expt->acquisition());
410 
411  if (acq && acq->get_LiveViewAtIdle()) {
412  QcepDoubleVector scalers;
413 
414  QcepImageDataBasePtr img = image;
415 
416  if (qcepDebug(DEBUG_ACQUIRE)) {
417  printMessage(tr("QxrdDetectorProcessor::processIdleImage(\"%1\")")
418  .arg(image->get_FileName()));
419  }
420 
421  QTime tic;
422  tic.start();
423 
424  setAcquiredImageProperties(img, -1, -1, 0, true);
425 
427 
428  if (img && get_PerformDarkSubtraction()) {
429  img = doDarkSubtraction(img);
430 
431  int subTime = tic.restart();
432 
434  printMessage(tr("Subtraction took %1 msec").arg(subTime));
435  }
436  }
437 
438  if (img && get_PerformBadPixels()) {
439  img = doBadPixels(img);
440 
441  int pxlTime = tic.restart();
442 
444  printMessage(tr("Bd pixels took %1 msec").arg(pxlTime));
445  }
446  }
447 
448  if (img && get_PerformGainCorrection()) {
449  img = doGainCorrection(img);
450 
451  int gainTime = tic.restart();
452 
454  printMessage(tr("Gain correction took %1 msec").arg(gainTime));
455  }
456  }
457 
458  if (ctrl && get_DetectorDisplayMode() == ImageDisplayMode) {
459  ctrl->displayNewData(img, QcepMaskDataWPtr());
460 
461  int displayTime = tic.restart();
462 
464  printMessage(tr("Display took %1 msec").arg(displayTime));
465  }
466  }
467 
468  if (img && get_CalculateROICounts()) {
469  const QcepDoubleVector s = doCalculateROICounts(img);
470 
471  scalers += s;
472 
473  set_RoiCounts(scalers);
474 
475  int roiTime = tic.restart();
476 
478  printMessage(tr("ROI calculation took %1 msec").arg(roiTime));
479  }
480  }
481  }
482  }
483  }
484  }
485 }
QSharedPointer< QxrdDetectorControlWindow > QxrdDetectorControlWindowPtr
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdDetectorControlWindowWPtr m_ControlWindow
QcepImageDataBasePtr doGainCorrection(QcepImageDataBasePtr img)
QSharedPointer< QxrdAcquisition > QxrdAcquisitionPtr
QWeakPointer< QcepMaskData > QcepMaskDataWPtr
QVector< double > QcepDoubleVector
Definition: qcepmacros.h:19
QxrdExperimentWPtr m_Experiment
QcepImageDataBasePtr doBadPixels(QcepImageDataBasePtr img)
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
void setAcquiredImageProperties(QcepImageDataBasePtr image, int fileIndex, int phase, int nPhases, bool trig)
QcepImageDataBasePtr doDarkSubtraction(QcepImageDataBasePtr img)
QcepDoubleVector doCalculateROICounts(QcepImageDataBasePtr img)
QSharedPointer< QcepImageDataBase > QcepImageDataBasePtr

Here is the call graph for this function:

QString QxrdDetectorProcessor::rawOutputDirectory ( ) const
private

Definition at line 693 of file qxrddetectorprocessor.cpp.

References dataDirectory(), and existingOutputDirectory().

Referenced by filePathInRawOutputDirectory().

694 {
695  return existingOutputDirectory(dataDirectory(), get_RawDataSubdir());
696 }
QString existingOutputDirectory(QString dir, QString subdir) const

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::readSettings ( QSettings *  settings,
QString  section 
)
virtual

Reimplemented from QcepObject.

Definition at line 87 of file qxrddetectorprocessor.cpp.

References m_CenterFinder, m_ImagePlotSettings, m_Integrator, m_Mutex, m_ROICalculator, and QcepObject::readSettings().

88 {
89  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
90 
91  QcepObject::readSettings(settings, section);
92 
93  if (m_CenterFinder) {
94  m_CenterFinder->readSettings(settings, section+"/centerFinder");
95  }
96 
97  if (m_Integrator) {
98  m_Integrator->readSettings(settings, section+"/integrator");
99  }
100 
101  if (m_ROICalculator) {
102  m_ROICalculator->readSettings(settings, section+"/roiCalculator");
103  }
104 
105  if (m_ImagePlotSettings) {
106  m_ImagePlotSettings->readSettings(settings, section+"/imagePlotSettings");
107  }
108 }
virtual void readSettings(QSettings *set, QString section)
Definition: qcepobject.cpp:119
QxrdIntegratorPtr m_Integrator
QxrdImagePlotSettingsPtr m_ImagePlotSettings
QxrdROICalculatorPtr m_ROICalculator
QxrdCenterFinderPtr m_CenterFinder

Here is the call graph for this function:

QxrdROICalculatorPtr QxrdDetectorProcessor::roiCalculator ( )
slot

Definition at line 161 of file qxrddetectorprocessor.cpp.

References m_ROICalculator.

162 {
163  return m_ROICalculator;
164 }
QxrdROICalculatorPtr m_ROICalculator
void QxrdDetectorProcessor::setAcquiredImageProperties ( QcepImageDataBasePtr  image,
int  fileIndex,
int  phase,
int  nPhases,
bool  trig 
)
private

Definition at line 196 of file qxrddetectorprocessor.cpp.

References m_Detector, QcepImageDataBase::Raw32Data, and QcepImageDataBase::secondsSinceEpoch().

Referenced by processAcquiredImage(), processDarkImage(), and processIdleImage().

201 {
203 
204  if (det) {
205  QxrdAcquisitionPtr acq(det->acquisition());
206 
207  if (image && acq) {
208  QDateTime now = QDateTime::currentDateTime();
209  double msec = QcepImageDataBase::secondsSinceEpoch();
210 
211  image -> set_Title (image -> get_FileBase());
212  image -> set_ExposureTime (acq -> get_ExposureTime());
213  image -> set_DateTime (now);
214  image -> set_TimeStamp (msec);
215  image -> set_HBinning (det -> get_HBinning());
216  image -> set_VBinning (det -> get_VBinning());
217 
218  image -> set_DataType(QcepInt32ImageData::Raw32Data);
219 
220  image -> set_UserComment1 (acq -> get_UserComment1());
221  image -> set_UserComment2 (acq -> get_UserComment2());
222  image -> set_UserComment3 (acq -> get_UserComment3());
223  image -> set_UserComment4 (acq -> get_UserComment4());
224  image -> set_ObjectSaved (false);
225  image -> set_Triggered (trig);
226  image -> set_Normalization (acq -> get_Normalization());
227 
228  image -> set_ImageNumber (fileIndex);
229  image -> set_PhaseNumber (phase);
230  image -> set_NPhases (nPhases);
231 
232  acq -> copyDynamicProperties(image.data());
233  }
234  }
235 }
QSharedPointer< QxrdAcquisition > QxrdAcquisitionPtr
QSharedPointer< QxrdDetector > QxrdDetectorPtr
static double secondsSinceEpoch()

Here is the call graph for this function:

Here is the caller graph for this function:

void QxrdDetectorProcessor::setControlWindow ( QxrdDetectorControlWindowWPtr  ctrl)

Definition at line 82 of file qxrddetectorprocessor.cpp.

References m_ControlWindow.

83 {
84  m_ControlWindow = ctrl;
85 }
QxrdDetectorControlWindowWPtr m_ControlWindow
QString QxrdDetectorProcessor::subtractedOutputDirectory ( ) const
private

Definition at line 703 of file qxrddetectorprocessor.cpp.

References dataDirectory(), and existingOutputDirectory().

Referenced by filePathInSubtractedOutputDirectory().

704 {
705  return existingOutputDirectory(dataDirectory(), get_SubtractedSubdir());
706 }
QString existingOutputDirectory(QString dir, QString subdir) const

Here is the call graph for this function:

Here is the caller graph for this function:

QScriptValue QxrdDetectorProcessor::toScriptValue ( QScriptEngine *  engine,
const QxrdDetectorProcessorPtr proc 
)
static

Definition at line 133 of file qxrddetectorprocessor.cpp.

134 {
135  return engine->newQObject(proc.data());
136 }
void QxrdDetectorProcessor::writeSettings ( QSettings *  settings,
QString  section 
)
virtual

Reimplemented from QcepObject.

Definition at line 110 of file qxrddetectorprocessor.cpp.

References m_CenterFinder, m_ImagePlotSettings, m_Integrator, m_Mutex, m_ROICalculator, and QcepObject::writeSettings().

111 {
112  QcepMutexLocker lock(__FILE__, __LINE__, &m_Mutex);
113 
114  QcepObject::writeSettings(settings, section);
115 
116  if (m_CenterFinder) {
117  m_CenterFinder->writeSettings(settings, section+"/centerFinder");
118  }
119 
120  if (m_Integrator) {
121  m_Integrator->writeSettings(settings, section+"/integrator");
122  }
123 
124  if (m_ROICalculator) {
125  m_ROICalculator->writeSettings(settings, section+"/roiCalculator");
126  }
127 
128  if (m_ImagePlotSettings) {
129  m_ImagePlotSettings->writeSettings(settings, section+"/imagePlotSettings");
130  }
131 }
QxrdIntegratorPtr m_Integrator
QxrdImagePlotSettingsPtr m_ImagePlotSettings
QxrdROICalculatorPtr m_ROICalculator
virtual void writeSettings(QSettings *set, QString section)
Definition: qcepobject.cpp:114
QxrdCenterFinderPtr m_CenterFinder

Here is the call graph for this function:

Member Data Documentation

QcepDoubleImageDataPtr QxrdDetectorProcessor::m_BadPixels
private

Definition at line 211 of file qxrddetectorprocessor.h.

Referenced by badPixels(), and onBadPixelsPathChanged().

QxrdCenterFinderPtr QxrdDetectorProcessor::m_CenterFinder
private
QxrdDetectorControlWindowWPtr QxrdDetectorProcessor::m_ControlWindow
private
QcepInt32ImageDataPtr QxrdDetectorProcessor::m_DarkImage
private
QcepImageDataBasePtr QxrdDetectorProcessor::m_Data
private

Definition at line 209 of file qxrddetectorprocessor.h.

Referenced by data(), and processAcquiredImage().

QxrdDetectorWPtr QxrdDetectorProcessor::m_Detector
private

Definition at line 199 of file qxrddetectorprocessor.h.

Referenced by setAcquiredImageProperties().

QxrdExperimentWPtr QxrdDetectorProcessor::m_Experiment
private
QxrdFileSaverWPtr QxrdDetectorProcessor::m_FileSaver
private

Definition at line 198 of file qxrddetectorprocessor.h.

Referenced by doSaveDarkImage(), doSaveRawImage(), and doSaveSubtractedImage().

QcepDoubleImageDataPtr QxrdDetectorProcessor::m_GainMap
private

Definition at line 212 of file qxrddetectorprocessor.h.

Referenced by gainCorrection().

QxrdImagePlotSettingsPtr QxrdDetectorProcessor::m_ImagePlotSettings
private

Definition at line 207 of file qxrddetectorprocessor.h.

Referenced by imagePlotSettings(), readSettings(), and writeSettings().

QxrdIntegratorPtr QxrdDetectorProcessor::m_Integrator
private
QcepDoubleImageDataPtr QxrdDetectorProcessor::m_LiveData
private

Definition at line 213 of file qxrddetectorprocessor.h.

QcepMaskDataPtr QxrdDetectorProcessor::m_Mask
private

Definition at line 214 of file qxrddetectorprocessor.h.

Referenced by doCalculateROICounts(), mask(), and onMaskPathChanged().

QMutex QxrdDetectorProcessor::m_Mutex
private

Definition at line 195 of file qxrddetectorprocessor.h.

Referenced by readSettings(), and writeSettings().

QcepMaskDataPtr QxrdDetectorProcessor::m_Overflow
private

Definition at line 215 of file qxrddetectorprocessor.h.

Referenced by overflow(), and processAcquiredImage().

QxrdROICalculatorPtr QxrdDetectorProcessor::m_ROICalculator
private
QcepSettingsSaverWPtr QxrdDetectorProcessor::m_Saver
private

Definition at line 113 of file qxrddetectorprocessor.h.

Referenced by QxrdDetectorProcessor().

Property Documentation

bool QxrdDetectorProcessor::accumulateIntegrated2D
readwrite

Definition at line 179 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::accumulateIntegratedName
readwrite

Definition at line 182 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::badPixelsPath
readwrite

Definition at line 148 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::calculateROICounts
readwrite

Definition at line 185 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::darkDataSubdir
readwrite

Definition at line 145 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::darkImagePath
readwrite

Definition at line 139 of file qxrddetectorprocessor.h.

int QxrdDetectorProcessor::detectorDisplayMode
readwrite

Definition at line 118 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::displayIntegratedData
readwrite

Definition at line 164 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::displayROIBorders
readwrite

Definition at line 188 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::gainMapPath
readwrite

Definition at line 151 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::integratedDataFile
readwrite

Definition at line 170 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::integratedDataSubdir
readwrite

Definition at line 176 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::maskPath
readwrite

Definition at line 157 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::performBadPixels
readwrite

Definition at line 130 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::performDarkSubtraction
readwrite

Definition at line 121 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::performGainCorrection
readwrite

Definition at line 133 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::performIntegration
readwrite

Definition at line 161 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::rawDataSubdir
readwrite

Definition at line 142 of file qxrddetectorprocessor.h.

QcepDoubleVector QxrdDetectorProcessor::roiCounts
readwrite

Definition at line 191 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::saveDarkImages
readwrite

Definition at line 127 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::saveIntegratedData
readwrite

Definition at line 167 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::saveIntegratedDataSeparate
readwrite

Definition at line 173 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::saveRawImages
readwrite

Definition at line 124 of file qxrddetectorprocessor.h.

bool QxrdDetectorProcessor::saveSubtracted
readwrite

Definition at line 136 of file qxrddetectorprocessor.h.

QString QxrdDetectorProcessor::subtractedSubdir
readwrite

Definition at line 154 of file qxrddetectorprocessor.h.


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