BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitParameterItems.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/FitParameterItems.h
6 //! @brief Defines FitParameterItems family of classes
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_FITPARAMETERITEMS_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_FITPARAMETERITEMS_H
17 
18 #include "Fit/Param/AttLimits.h"
20 
21 //! FitParameterItems is a collection of items to define fit parameters in GUI.
22 
23 //! The FitParameterLinkItem class holds a link to ParameterItem in tuning tree.
24 
25 class BA_CORE_API_ FitParameterLinkItem : public SessionItem {
26 
27 public:
28  static const QString P_LINK;
29  static const QString P_DOMAIN;
31 };
32 
33 //! The FitParameterItem class represents a fit parameter in GUI. Contains links to corresponding
34 //! ParameterItem's in a tuning tree.
35 
36 class BA_CORE_API_ FitParameterItem : public SessionItem {
37 
38 public:
39  static const QString P_TYPE;
40  static const QString P_START_VALUE;
41  static const QString P_MIN;
42  static const QString P_MAX;
43  static const QString T_LINK;
45 
46  void initMinMaxValues(const RealLimits& limits);
47 
48  AttLimits attLimits() const;
49 
50  bool isValid() const;
51 
52 private:
53  QString parameterType() const;
54  void onTypeChange();
55  void setLimitEnabled(const QString& name, bool enabled);
56  bool isLimited() const;
57  bool isFree() const;
58  bool isLowerLimited() const;
59  bool isUpperLimited() const;
60  bool isFixed() const;
61 };
62 
63 //! The FitParameterContainerItem class is a collection of all defined fit parameters in JobItem.
64 
65 namespace mumufit {
66 class Parameters;
67 }
68 
69 class BA_CORE_API_ FitParameterContainerItem : public SessionItem {
70 
71 public:
72  static const QString T_FIT_PARAMETERS;
74  FitParameterItem* fitParameterItem(const QString& link);
75  QVector<FitParameterItem*> fitParameterItems();
76  bool isEmpty();
77  void setValuesInParameterContainer(const QVector<double>& values,
78  class ParameterContainerItem* parameterContainer);
79  mumufit::Parameters createParameters() const;
80 };
81 
82 #endif // BORNAGAIN_GUI_COREGUI_MODELS_FITPARAMETERITEMS_H
Defines and implements class AttLimits.
Defines class SessionItem.
Attributes and limits of a fit parameter, and coupling between these properties.
Definition: AttLimits.h:25
static const QString T_FIT_PARAMETERS
The FitParameterItem class represents a fit parameter in GUI.
static const QString P_MAX
static const QString T_LINK
static const QString P_TYPE
static const QString P_MIN
static const QString P_START_VALUE
FitParameterItems is a collection of items to define fit parameters in GUI.
static const QString P_DOMAIN
static const QString P_LINK
The ParameterContainerItem is a top item to hold all ParameterItem, represents an entry point to para...
Limits for a real fit parameter.
Definition: RealLimits.h:24
A collection of fit parameters.
Definition: Parameters.h:26
QString const & name(EShape k)
Definition: particles.cpp:21
The multi-library, multi-algorithm fit wrapper library.