BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitComparisonWidget Class Reference

The FitComparisonWidget class plots realdata, simulated data and relative difference map during the course of the fit. More...

Inheritance diagram for FitComparisonWidget:
[legend]
Collaboration diagram for FitComparisonWidget:
[legend]

Public Member Functions

 FitComparisonWidget (QWidget *parent=nullptr)
 
 ~FitComparisonWidget () override
 
virtual QList< QAction * > actionList () override
 
SessionItemcurrentItem ()
 
const SessionItemcurrentItem () const
 
virtual void setItem (SessionItem *item)
 

Protected Member Functions

virtual void hideEvent (QHideEvent *)
 
virtual void showEvent (QShowEvent *)
 
void subscribeToItem () override
 
void unsubscribeFromItem () override
 

Private Slots

void onResetViewAction ()
 

Private Member Functions

IntensityDataItemdiffItem ()
 
JobItemjobItem ()
 
IntensityDataItemrealDataItem ()
 
IntensityDataItemsimulatedDataItem ()
 

Private Attributes

FitComparisonController2Dm_comparisonController
 
FitFlowWidgetm_fitFlowWidget
 
SessionItemControllerm_itemController
 
IntensityDataPropertyWidgetm_propertyWidget
 
ColorMapCanvasm_realDataPlot
 
ColorMapCanvasm_relativeDiffPlot
 
QAction * m_resetViewAction
 
ColorMapCanvasm_simulatedDataPlot
 
PlotStatusLabelm_statusLabel
 

Detailed Description

The FitComparisonWidget class plots realdata, simulated data and relative difference map during the course of the fit.

Definition at line 35 of file FitComparisonWidget.h.

Constructor & Destructor Documentation

◆ FitComparisonWidget()

FitComparisonWidget::FitComparisonWidget ( QWidget *  parent = nullptr)
explicit

Definition at line 30 of file FitComparisonWidget.cpp.

31  : SessionItemWidget(parent)
36  , m_statusLabel(new PlotStatusLabel(nullptr, this))
38  , m_resetViewAction(new QAction(this))
40 {
41  auto vlayout = new QVBoxLayout;
42  vlayout->setMargin(0);
43  vlayout->setSpacing(0);
44 
45  auto gridLayout = new QGridLayout;
46  gridLayout->setMargin(0);
47  gridLayout->setSpacing(0);
48 
49  gridLayout->addWidget(m_realDataPlot, 0, 0);
50  gridLayout->addWidget(m_simulatedDataPlot, 0, 1);
51  gridLayout->addWidget(m_relativeDiffPlot, 1, 0);
52  gridLayout->addWidget(m_fitFlowWidget, 1, 1);
53 
54  vlayout->addLayout(gridLayout);
55  vlayout->addWidget(m_statusLabel);
56 
57  auto hlayout = new QHBoxLayout;
58  hlayout->setMargin(0);
59  hlayout->setSpacing(0);
60  hlayout->addLayout(vlayout);
61  hlayout->addWidget(m_propertyWidget);
62  setLayout(hlayout);
63 
64  m_resetViewAction->setText("Center view");
65  m_resetViewAction->setIcon(QIcon(":/images/camera-metering-center.svg"));
66  m_resetViewAction->setToolTip("Reset View");
67  connect(m_resetViewAction, &QAction::triggered, this, &FitComparisonWidget::onResetViewAction);
68 
69  m_propertyWidget->setVisible(false);
70 }
The ColorMapCanvas class contains ColorMap for intensity data presentation, and provide control of fo...
Provides synchronization between certain properties of fit related IntensityDataItems.
PlotStatusLabel * m_statusLabel
FitFlowWidget * m_fitFlowWidget
ColorMapCanvas * m_simulatedDataPlot
IntensityDataPropertyWidget * m_propertyWidget
ColorMapCanvas * m_realDataPlot
FitComparisonController2D * m_comparisonController
ColorMapCanvas * m_relativeDiffPlot
The FitFlowWidget class is intended for showing chi2 .vs interation count dependency.
Definition: FitFlowWidget.h:26
The IntensityDataPropertyWidget shows ComponentEditor for given IntensityDataItem.
The PlotStatusLabel class shows status string as reported by DescriptedPlot in a frame.
SessionItemWidget(QWidget *parent=0)

References m_fitFlowWidget, m_propertyWidget, m_realDataPlot, m_relativeDiffPlot, m_resetViewAction, m_simulatedDataPlot, m_statusLabel, and onResetViewAction().

Here is the call graph for this function:

◆ ~FitComparisonWidget()

FitComparisonWidget::~FitComparisonWidget ( )
overridedefault

Member Function Documentation

◆ actionList()

QList< QAction * > FitComparisonWidget::actionList ( )
overridevirtual

Reimplemented from SessionItemWidget.

Definition at line 74 of file FitComparisonWidget.cpp.

75 {
76  return QList<QAction*>() << m_resetViewAction << m_propertyWidget->actionList();
77 }

References IntensityDataPropertyWidget::actionList(), m_propertyWidget, and m_resetViewAction.

Here is the call graph for this function:

◆ currentItem() [1/2]

SessionItem * SessionItemWidget::currentItem ( )
inherited

Definition at line 41 of file SessionItemWidget.cpp.

42 {
43  return const_cast<SessionItem*>(static_cast<const SessionItemWidget*>(this)->currentItem());
44 }
The SessionItemWidget class is a base for all widgets representing the content of SessionItem.
SessionItem * currentItem()

Referenced by RectangularDetectorEditor::detectorItem(), SphericalDetectorEditor::detectorItem(), FitFlowWidget::fitSuiteItem(), DistributionEditor::groupItem(), DepthProbeInstrumentEditor::instrumentItem(), EnvironmentEditor::instrumentItem(), GISASBeamEditor::instrumentItem(), GISASDetectorEditor::instrumentItem(), GISASInstrumentEditor::instrumentItem(), OffSpecularBeamEditor::instrumentItem(), OffSpecularInstrumentEditor::instrumentItem(), PolarizationAnalysisEditor::instrumentItem(), SpecularBeamEditor::instrumentItem(), SpecularInstrumentEditor::instrumentItem(), RealDataMaskWidget::intensityDataItem(), IntensityDataCanvas::intensityDataItem(), IntensityDataProjectionsWidget::intensityDataItem(), IntensityDataWidget::intensityDataItem(), ProjectionsPlot::intensityItem(), ColorMap::intensityItem(), DetectorPresenter::itemPresentation(), InstrumentPresenter::itemPresentation(), JobResultsPresenter::itemPresentation(), jobItem(), FitComparisonWidget1D::jobItem(), FitParameterWidget::jobItem(), RunFitControlWidget::jobItem(), JobPropertiesWidget::jobItem(), ParameterTuningWidget::jobItem(), SpecularDataImportWidget::realDataItem(), ItemComboWidget::setPresentation(), JobResultsPresenter::setPresentation(), SpecularDataCanvas::specularDataItem(), SpecularDataImportWidget::specularDataItem(), SpecularDataWidget::specularDataItem(), SpecularPlot::specularItem(), ItemComboWidget::subscribeToItem(), DistributionEditor::subscribeToItem(), GISASDetectorEditor::subscribeToItem(), PolarizationAnalysisEditor::subscribeToItem(), IntensityDataPropertyWidget::subscribeToItem(), JobPropertiesWidget::subscribeToItem(), ProjectionsPropertyPanel::subscribeToItem(), ProjectionsPlot::unsubscribeFromChildren(), and Plot1D::viewItem().

◆ currentItem() [2/2]

const SessionItem * SessionItemWidget::currentItem ( ) const
inherited

Definition at line 46 of file SessionItemWidget.cpp.

47 {
48  return m_itemController->currentItem();
49 }
SessionItemController * m_itemController

References SessionItemController::currentItem(), and SessionItemWidget::m_itemController.

Here is the call graph for this function:

◆ diffItem()

IntensityDataItem * FitComparisonWidget::diffItem ( )
private

Definition at line 136 of file FitComparisonWidget.cpp.

137 {
139 }

References FitComparisonController2D::diffItem(), and m_comparisonController.

Here is the call graph for this function:

◆ hideEvent()

void SessionItemWidget::hideEvent ( QHideEvent *  )
protectedvirtualinherited

Definition at line 56 of file SessionItemWidget.cpp.

57 {
59 }
void unsubscribe()
Fully unsubscribes the parent from listening item's signals.

References SessionItemWidget::m_itemController, and SessionItemController::unsubscribe().

Here is the call graph for this function:

◆ jobItem()

JobItem * FitComparisonWidget::jobItem ( )
private

Definition at line 120 of file FitComparisonWidget.cpp.

121 {
122  JobItem* jobItem = dynamic_cast<JobItem*>(currentItem());
123  return jobItem;
124 }

References SessionItemWidget::currentItem().

Referenced by realDataItem(), simulatedDataItem(), and subscribeToItem().

Here is the call graph for this function:

◆ onResetViewAction

void FitComparisonWidget::onResetViewAction ( )
privateslot

Definition at line 112 of file FitComparisonWidget.cpp.

113 {
114  if (auto item = realDataItem())
115  item->resetView();
116 
118 }
IntensityDataItem * realDataItem()

References m_comparisonController, realDataItem(), and FitComparisonController2D::resetDiffItem().

Referenced by FitComparisonWidget(), and subscribeToItem().

Here is the call graph for this function:

◆ realDataItem()

IntensityDataItem * FitComparisonWidget::realDataItem ( )
private

Definition at line 126 of file FitComparisonWidget.cpp.

127 {
128  return jobItem()->realDataItem()->intensityDataItem();
129 }
RealDataItem * realDataItem()
Definition: JobItem.cpp:259
IntensityDataItem * intensityDataItem()

References RealDataItem::intensityDataItem(), jobItem(), and JobItem::realDataItem().

Referenced by onResetViewAction(), and subscribeToItem().

Here is the call graph for this function:

◆ setItem()

void SessionItemWidget::setItem ( SessionItem item)
virtualinherited

Reimplemented in SpecularPlotCanvas, SpecularDataImportWidget, SpecularDataWidget, IntensityDataWidget, SpecularDataCanvas, ProjectionsWidget, IntensityDataCanvas, ColorMapCanvas, and Plot1DCanvas.

Definition at line 28 of file SessionItemWidget.cpp.

29 {
31 
32  if (isVisible())
34 }
void setItem(SessionItem *item)
void subscribe()
Subscribe parent to item's signals.

References SessionItemWidget::m_itemController, SessionItemController::setItem(), and SessionItemController::subscribe().

Referenced by IntensityDataWidget::onFFTAction(), JobSelectorWidget::onSelectionChanged(), ProjectionsEditor::resetContext(), ProjectionsEditor::setContext(), MaskGraphicsProxy::setIntensityItem(), FitSessionWidget::setItem(), Plot1DCanvas::setItem(), InstrumentEditorWidget::setItem(), ColorMapCanvas::setItem(), IntensityDataCanvas::setItem(), ProjectionsWidget::setItem(), SpecularDataCanvas::setItem(), DistributionDialog::setItem(), IntensityDataWidget::setItem(), SpecularDataWidget::setItem(), SpecularDataImportWidget::setItem(), SpecularPlotCanvas::setItem(), ItemComboWidget::setPresentation(), GISASInstrumentEditor::subscribeToItem(), OffSpecularInstrumentEditor::subscribeToItem(), SpecularInstrumentEditor::subscribeToItem(), subscribeToItem(), FitComparisonWidget1D::subscribeToItem(), and GISASDetectorEditor::updateDetectorPresenter().

Here is the call graph for this function:

◆ showEvent()

void SessionItemWidget::showEvent ( QShowEvent *  )
protectedvirtualinherited

Definition at line 51 of file SessionItemWidget.cpp.

52 {
54 }

References SessionItemWidget::m_itemController, and SessionItemController::subscribe().

Here is the call graph for this function:

◆ simulatedDataItem()

IntensityDataItem * FitComparisonWidget::simulatedDataItem ( )
private

Definition at line 131 of file FitComparisonWidget.cpp.

132 {
133  return jobItem()->intensityDataItem();
134 }
IntensityDataItem * intensityDataItem()
Definition: JobItem.cpp:113

References JobItem::intensityDataItem(), and jobItem().

Referenced by subscribeToItem().

Here is the call graph for this function:

◆ subscribeToItem()

void FitComparisonWidget::subscribeToItem ( )
overrideprotectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 79 of file FitComparisonWidget.cpp.

80 {
81  if (!jobItem()->isValidForFitting())
82  return;
83 
85  [this](const QString& name) {
86  if (name == JobItem::P_STATUS) {
87  if (jobItem()->isCompleted())
89  }
90  },
91  this);
92 
97  m_fitFlowWidget->setItem(jobItem()->fitSuiteItem());
98 
103 
105 }
ColorMap * colorMap()
void setItem(SessionItem *intensityDataItem)
void setItem(JobItem *job_item)
IntensityDataItem * simulatedDataItem()
static const QString P_STATUS
Definition: JobItem.h:40
void setOnPropertyChange(std::function< void(QString)> f, const void *caller=0)
Definition: ModelMapper.cpp:35
void reset()
Disconnects all color maps from the label.
void addPlot(ScientificPlot *plot)
virtual void setItem(SessionItem *item)
ModelMapper * mapper()
Returns the current model mapper of this item. Creates new one if necessary.
QString const & name(EShape k)
Definition: particles.cpp:21

References PlotStatusLabel::addPlot(), ColorMapCanvas::colorMap(), FitComparisonController2D::diffItem(), jobItem(), m_comparisonController, m_fitFlowWidget, m_propertyWidget, m_realDataPlot, m_relativeDiffPlot, m_simulatedDataPlot, m_statusLabel, SessionItem::mapper(), RealSpace::Particles::name(), onResetViewAction(), JobItem::P_STATUS, realDataItem(), PlotStatusLabel::reset(), FitComparisonController2D::setItem(), ColorMapCanvas::setItem(), SessionItemWidget::setItem(), ModelMapper::setOnPropertyChange(), and simulatedDataItem().

Here is the call graph for this function:

◆ unsubscribeFromItem()

void FitComparisonWidget::unsubscribeFromItem ( )
overrideprotectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 107 of file FitComparisonWidget.cpp.

References FitComparisonController2D::clear(), and m_comparisonController.

Here is the call graph for this function:

Member Data Documentation

◆ m_comparisonController

FitComparisonController2D* FitComparisonWidget::m_comparisonController
private

◆ m_fitFlowWidget

FitFlowWidget* FitComparisonWidget::m_fitFlowWidget
private

Definition at line 60 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and subscribeToItem().

◆ m_itemController

◆ m_propertyWidget

IntensityDataPropertyWidget* FitComparisonWidget::m_propertyWidget
private

Definition at line 62 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), actionList(), and subscribeToItem().

◆ m_realDataPlot

ColorMapCanvas* FitComparisonWidget::m_realDataPlot
private

Definition at line 57 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and subscribeToItem().

◆ m_relativeDiffPlot

ColorMapCanvas* FitComparisonWidget::m_relativeDiffPlot
private

Definition at line 59 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and subscribeToItem().

◆ m_resetViewAction

QAction* FitComparisonWidget::m_resetViewAction
private

Definition at line 64 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and actionList().

◆ m_simulatedDataPlot

ColorMapCanvas* FitComparisonWidget::m_simulatedDataPlot
private

Definition at line 58 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and subscribeToItem().

◆ m_statusLabel

PlotStatusLabel* FitComparisonWidget::m_statusLabel
private

Definition at line 61 of file FitComparisonWidget.h.

Referenced by FitComparisonWidget(), and subscribeToItem().


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