Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkExponentialDecayModel.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkExponentialDecayModel_h
14 #define mitkExponentialDecayModel_h
15 
16 #include <mitkModelBase.h>
17 
18 #include <MitkModelFitExports.h>
19 
20 namespace mitk
21 {
22 
34  {
35 
36  public:
41 
44 
46  itkFactorylessNewMacro(Self);
47  itkCloneMacro(Self);
48 
51 
52 
54  static const std::string NAME_PARAMETER_y0;
56  static const std::string NAME_PARAMETER_lambda;
57 
59  static const unsigned int NUMBER_OF_PARAMETERS;
60 
62  static const std::string UNIT_PARAMETER_y0;
64  static const std::string UNIT_PARAMETER_lambda;
65 
67  static const unsigned int POSITION_PARAMETER_y0;
69  static const unsigned int POSITION_PARAMETER_lambda;
70 
72  static const std::string NAME_DERIVED_PARAMETER_k;
73 
75  static const unsigned int NUMBER_OF_DERIVED_PARAMETERS;
76 
78  static const std::string UNIT_DERIVED_PARAMETER_k;
79 
81  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
82 
84  static const std::string MODEL_DISPLAY_NAME;
85 
87  static const std::string MODEL_TYPE;
88 
90  static const std::string FUNCTION_STRING;
91 
93  static const std::string X_NAME;
94 
96  static const std::string X_AXIS_NAME;
97 
99  static const std::string X_AXIS_UNIT;
100 
102  static const std::string Y_AXIS_NAME;
103 
105  static const std::string Y_AXIS_UNIT;
106 
115  std::string GetModelDisplayName() const override;
116  std::string GetModelType() const override;
118  std::string GetXName() const override;
119  std::string GetXAxisName() const override;
120  std::string GetXAxisUnit() const override;
121  std::string GetYAxisName() const override;
122  std::string GetYAxisUnit() const override;
123 
125  const mitk::ModelBase::ParametersType &parameters) const override;
126 
127  protected:
129  ~ExponentialDecayModel() override {};
130 
132 
134 
135  ModelResultType ComputeModelfunction(const ParametersType& parameters) const override;
136 
138  const StaticParameterValuesType& values) override;
140 
141  private:
142 
143  void operator=(const Self&); //purposely not implemented
144 
145  };
146 }
147 
148 #endif
#define MITKMODELFIT_EXPORT
Simple model of exponential decay: y(x) = y-intercept * exp(-x/lambda).
static const std::string UNIT_DERIVED_PARAMETER_k
Unit of the derived rate constant parameter.
std::string GetXName() const override
Returns the name of the independent variable used by the model (e.g. "x").
ModelResultType ComputeModelfunction(const ParametersType &parameters) const override
Computes the model function for the given parameters.
ParametersSizeType GetNumberOfStaticParameters() const override
Returns the number of static parameters.
static const std::string MODEL_TYPE
Type category of this model.
static const unsigned int POSITION_PARAMETER_lambda
Index position of lambda in the parameter vector.
ParamterUnitMapType GetDerivedParameterUnits() const override
Returns the unit strings for all derived parameters.
ParamterUnitMapType GetParameterUnits() const override
Returns the unit strings for all model parameters.
static const std::string X_AXIS_NAME
Display name for the x-axis.
ParameterNamesType GetDerivedParameterNames() const override
Returns the names of derived parameters that can be computed by the model.
static const std::string UNIT_PARAMETER_lambda
Unit of the decay constant parameter.
FunctionStringType GetFunctionString() const override
Returns a parsable function string representing the model equation.
std::string GetXAxisUnit() const override
Returns the unit of the x-axis (e.g. "s", "ms").
static const unsigned int POSITION_PARAMETER_y0
Index position of y-intercept in the parameter vector.
std::string GetXAxisName() const override
Returns the display name of the x-axis (e.g. "Time").
static const std::string Y_AXIS_NAME
Display name for the y-axis.
std::string GetYAxisName() const override
Returns the display name of the y-axis (e.g. "Signal Intensity").
static const unsigned int NUMBER_OF_DERIVED_PARAMETERS
Total number of derived parameters (1).
itk::SmartPointer< Self > Pointer
static const std::string NAME_PARAMETER_lambda
Name string for the decay constant parameter (lambda).
ParameterNamesType GetParameterNames() const override
Returns the names of parameters that must be defined when using the model to compute the signal (GetS...
static const unsigned int NUMBER_OF_STATIC_PARAMETERS
Total number of static parameters (0).
mitk::ModelBase::DerivedParameterMapType ComputeDerivedParameters(const mitk::ModelBase::ParametersType &parameters) const override
Computes derived parameters from the given model parameters.
static const unsigned int NUMBER_OF_PARAMETERS
Total number of model parameters (2).
std::string GetModelType() const override
Returns the type/category string of the model (e.g. "Linear", "Pharmacokinetic").
std::string GetYAxisUnit() const override
Returns the unit of the y-axis.
static const std::string Y_AXIS_UNIT
Unit for the y-axis.
StaticParameterValuesType GetStaticParameterValue(const ParameterNameType &name) const override
Retrieves a single static parameter value by name.
ParametersSizeType GetNumberOfParameters() const override
Returns the number of parameters that must be defined when using the model to compute the signal (Get...
static const std::string X_NAME
Name of the independent variable.
static const std::string FUNCTION_STRING
Function string representation of the model equation.
ParametersSizeType GetNumberOfDerivedParameters() const override
Returns the number of derived parameters that can be computed by the model.
static const std::string NAME_DERIVED_PARAMETER_k
Name string for the derived rate constant parameter (k = 1/lambda).
Superclass::ParameterNameType ParameterNameType
std::string GetModelDisplayName() const override
Returns the human-readable display name of the model.
ParameterNamesType GetStaticParameterNames() const override
Returns the names of static parameters used when computing the signal.
Superclass::ParametersSizeType ParametersSizeType
void SetStaticParameter(const ParameterNameType &name, const StaticParameterValuesType &values) override
Sets a single static parameter by name.
mitkCloneMacro(ExponentialDecayModel)
static const std::string X_AXIS_UNIT
Unit for the x-axis.
static const std::string UNIT_PARAMETER_y0
Unit of the y-intercept parameter.
static const std::string NAME_PARAMETER_y0
Name string for the y-intercept parameter.
itk::SmartPointer< const Self > ConstPointer
static const std::string MODEL_DISPLAY_NAME
Display name of this model.
ExponentialDecayModel(const ExponentialDecayModel &source)
Base class for (dynamic) models.
Definition: mitkModelBase.h:56
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:73
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:72
std::map< ParameterNameType, DerivedParameterValueType > DerivedParameterMapType
Definition: mitkModelBase.h:83
std::vector< StaticParameterValueType > StaticParameterValuesType
Definition: mitkModelBase.h:79
ModelTraitsInterface::ParameterNameType ParameterNameType
Definition: mitkModelBase.h:71
ModelTraitsInterface::ModelResultType ModelResultType
Definition: mitkModelBase.h:63
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:67
std::string FunctionStringType
Type for the function string representation of the model.
std::map< ParameterNameType, std::string > ParamterUnitMapType
Map type associating parameter names to their unit strings.
Find image slices visible on a given plane.