GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
QFitDataWidget.cpp
Go to the documentation of this file.
1// $Id$
2//-----------------------------------------------------------------------
3// The GSI Online Offline Object Oriented (Go4) Project
4// Experiment Data Processing at EE department, GSI
5//-----------------------------------------------------------------------
6// Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7// Planckstr. 1, 64291 Darmstadt, Germany
8// Contact: http://go4.gsi.de
9//-----------------------------------------------------------------------
10// This software can be used under the license agreements as stated
11// in Go4License.txt file which is part of the distribution.
12//-----------------------------------------------------------------------
13
14#include "QFitDataWidget.h"
15#include "QFitItem.h"
16#include "TGo4FitData.h"
17#include "TGo4FitModel.h"
18#include "TGo4Fitter.h"
19#include "TGo4FitGuiTypes.h"
20
21QFitDataWidget::QFitDataWidget(QWidget *parent, const char *name)
22 : QFitNamedWidget(parent, name)
23{
24 setupUi(this);
25
26 QObject::connect(NumCalibrSpin, QOverload<int>::of(&QSpinBox::valueChanged), this, &QFitDataWidget::NumCalibrSpin_valueChanged);
27 QObject::connect(UseBinsChk, &QCheckBox::toggled, this, &QFitDataWidget::UseBinsChk_toggled);
28 QObject::connect(SigmaCmb, QOverload<int>::of(&QComboBox::activated), this, &QFitDataWidget::SigmaCmb_activated);
29 QObject::connect(SigmaEdt, &QGo4LineEdit::textChanged, this, &QFitDataWidget::SigmaEdt_textChanged);
30 QObject::connect(BinsLimitEdt, &QGo4LineEdit::textChanged, this, &QFitDataWidget::BinsLimitEdt_textChanged);
31 QObject::connect(AmplChk, &QCheckBox::toggled, this, &QFitDataWidget::AmplChk_toggled);
32 QObject::connect(UseBuffersChk, &QCheckBox::toggled, this, &QFitDataWidget::UseBuffersChk_toggled);
33}
34
36{
37 return dynamic_cast<TGo4FitData *>(GetObject());
38}
39
41{
43
44 if(GetData()) {
45 if(GetData()->GetDataType()==TGo4FitData::dtHistogram) DataInfoLbl->setText("Data type: histogramic");
46 else DataInfoLbl->setText("Data type: set of points");
47 DataInfoLbl->adjustSize();
48
49 AmplChk->setChecked(GetData()->GetAmplPar() != nullptr);
50 AmplChk->setEnabled(GetData()->CanAmplTouch());
51
52 NumCalibrSpin->setValue(GetData()->GetNumberOfTransSlots());
53 UseBinsChk->setChecked(GetData()->GetUseBinScale());
54 SigmaCmb->setCurrentIndex(GetData()->GetSigmaSource());
55 SigmaEdt->setEnabled(GetData()->GetSigmaSource()==2);
56 SigmaEdt->setText(QString::number(GetData()->GetSigmaValue()));
57 BinsLimitEdt->setText(QString::number(GetData()->GetExcludeLessThen()));
58 UseBuffersChk->setChecked(GetData()->GetUseBuffers());
59
60 QString info("Models:");
61
62 TGo4Fitter *fitter = dynamic_cast<TGo4Fitter*> (GetItem()->Parent()->Object());
63 if (fitter)
64 for (Int_t nmodel = 0; nmodel < fitter->GetNumModel(); nmodel++) {
65 TGo4FitModel *model = fitter->GetModel(nmodel);
66 if (model->IsAssignTo(GetData()->GetName())) {
67 info += " ";
68 info += model->GetName();
69 }
70 }
71 ModelsLbl->setText(info);
72 ModelsLbl->adjustSize();
73 }
74}
75
77{
78 if (!fbFillWidget && GetData())
79 if (GetData()->SetNumberOfTransSlots(num)) {
80 if (GetFitter())
82 UpdateWidgetItem(true);
84 }
85}
86
88{
89 if (!fbFillWidget && GetData())
91}
92
94{
95 if (!fbFillWidget && GetData()) {
96 GetData()->SetSigmaSource(zn, -1.);
97 SigmaEdt->setEnabled(zn == 2);
98 }
99}
100
101void QFitDataWidget::SigmaEdt_textChanged( const QString & value)
102{
103 if(!fbFillWidget && GetData()) {
104 bool ok = true;
105 double zn = value.toDouble(&ok);
106 if(ok) GetData()->SetSigmaValue(zn);
107 }
108}
109
111{
112 if (!fbFillWidget && GetData()) {
113 bool ok = true;
114 double zn = value.toDouble(&ok);
115 if (ok)
117 }
118}
119
121{
122 if (!fbFillWidget && GetData() && GetData()->CanAmplTouch()) {
123 bool res = false;
124 if (chk)
125 res = GetData()->MakeAmpl();
126 else
127 res = GetData()->RemoveAmpl();
128 if (res)
130 }
131}
132
134{
135 if (!fbFillWidget && GetData())
136 GetData()->SetUseBuffers(zn);
137}
void FillSpecificData() override
virtual TGo4FitData * GetData()
virtual void NumCalibrSpin_valueChanged(int num)
virtual void UseBuffersChk_toggled(bool)
virtual void SigmaCmb_activated(int zn)
virtual void UseBinsChk_toggled(bool zn)
virtual void SigmaEdt_textChanged(const QString &value)
QFitDataWidget(QWidget *parent=nullptr, const char *name=nullptr)
virtual void BinsLimitEdt_textChanged(const QString &value)
virtual void AmplChk_toggled(bool chk)
QFitItem * Parent() const
Definition QFitItem.h:35
TObject * Object() const
Definition QFitItem.h:27
QFitNamedWidget(QWidget *parent=nullptr, const char *name=nullptr)
void FillSpecificData() override
virtual TObject * GetObject()
bool fbFillWidget
Definition QFitWidget.h:63
virtual void UpdateWidgetItem(bool trace)
virtual QFitItem * GetItem()
virtual TGo4Fitter * GetFitter()
virtual void UpdateItemsOfType(int typ, bool allitems=false)
Bool_t MakeAmpl(Bool_t isFixed=kFALSE)
Create amplitude parameter and adds it to parameters list.
void SetUseBuffers(Bool_t iUse)
Sets usage of additional buffers.
Bool_t RemoveAmpl()
Remove amplitude parameter from parameters list.
Basic abstract class for representing data, which should be fitted.
Definition TGo4FitData.h:39
void SetSigmaValue(Double_t SigmaValue)
Set constant sigma value.
void SetSigmaSource(Int_t TakeFrom, Double_t SigmaValue=1.)
Sets source of sigma for data.
void SetExcludeLessThen(Double_t limit=0.)
Sets limit to exclude bins, which not less then this limit.
void SetUseBinScale(Bool_t iUseBinScale)
If kTRUE, binary numbers will be used as scale values.
Definition TGo4FitData.h:74
Basic abstract class for representing model components of fitted data.
Bool_t IsAssignTo(const char *DataName) const
Checks, if model assigned to given data.
void SetUpdateSlotList()
Update internal list of slots (if exists).
Central class of Go4Fit package.
Definition TGo4Fitter.h:38
TGo4FitModel * GetModel(Int_t n)
Return model component with given index.
Int_t GetNumModel() const
Return number of model component in fitter.
Definition TGo4Fitter.h:179