STIR 6.4.0
PatlakPlot.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2006 - 2011, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
19
20#ifndef __stir_modelling_PatlakPlot_H__
21#define __stir_modelling_PatlakPlot_H__
22
26#include "stir/Succeeded.h"
28
29START_NAMESPACE_STIR
30
32
71class PatlakPlot : public RegisteredParsingObject<PatlakPlot, KineticModel>
72{
73public:
75 static const char* const registered_name;
76
77 PatlakPlot();
78 ~PatlakPlot() override;
85 const TimeFrameDefinitions& time_frame_definitions,
86 const unsigned int starting_frame);
88 unsigned int get_starting_frame() const;
90 unsigned int get_ending_frame() const;
94
96 void set_model_matrix(ModelMatrix<2> model_matrix);
98
100
106 const DynamicDiscretisedDensity& dyn_image) const;
108
111 const DynamicDiscretisedDensity& dyn_image) const;
112
114
117 const ParametricVoxelsOnCartesianGrid& par_image) const;
118
120
124
125 void set_defaults() override;
126
127 Succeeded set_up() override;
128
130 unsigned int _starting_frame;
140
141private:
142 void create_model_matrix();
143 void initialise_keymap() override;
144 bool post_processing() override;
145 mutable ModelMatrix<2> _model_matrix;
146 bool _matrix_is_stored;
148};
149
150END_NAMESPACE_STIR
151
152#endif //__stir_modelling_PatlakPlot_H__
Definition of class stir::KineticModel.
Declaration of class stir::ModelMatrix<num_param>
Declaration of class stir::PlasmaData.
Declaration of class stir::RegisteredParsingObject.
Declaration of class stir::Succeeded.
Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,...
Definition DynamicDiscretisedDensity.h:46
A helper class to store the model matrix for a linear kinetic model.
Definition ModelMatrix.h:37
TimeFrameDefinitions get_time_frame_definitions() const
Returns the TimeFrameDefinitions that the PatlakPlot linearization is assumed to be valid: ChT::Check...
Definition PatlakPlot.cxx:330
bool _if_cardiac
Switches between cardiac and brain data.
Definition PatlakPlot.h:129
bool _in_correct_scale
Switch to scale or not the model_matrix to the correct scale, according to the appropriate scale fact...
Definition PatlakPlot.h:133
std::string _blood_data_filename
Name of file in which the input function is stored.
Definition PatlakPlot.h:136
void set_model_matrix(ModelMatrix< 2 > model_matrix)
Simply set model matrix.
Definition PatlakPlot.cxx:63
unsigned int _starting_frame
Starting frame to apply the model.
Definition PatlakPlot.h:130
float _time_shift
Shifts the time to fit the timing of Plasma Data with the Projection Data.
Definition PatlakPlot.h:132
PatlakPlot()
Default constructor (calls set_defaults())
Definition PatlakPlot.cxx:42
virtual void multiply_dynamic_image_with_model_gradient(ParametricVoxelsOnCartesianGrid &parametric_image, const DynamicDiscretisedDensity &dyn_image) const
Multiplies the dynamic image with the model gradient.
Definition PatlakPlot.cxx:248
static const char *const registered_name
Name which will be used when parsing a PatlakPlot object.
Definition PatlakPlot.h:75
ModelMatrix< 2 > get_model_matrix() const
Simply gets model matrix, if it has been already stored.
Definition PatlakPlot.cxx:53
unsigned int get_ending_frame() const
Returns the number of the last frame available.
Definition PatlakPlot.cxx:324
float _cal_factor
Calibration Factor, maybe to be removed.
Definition PatlakPlot.h:131
TimeFrameDefinitions _frame_defs
TimeFrameDefinitions.
Definition PatlakPlot.h:139
unsigned int get_starting_frame() const
Returns the frame that the PatlakPlot linearization is assumed to be valid.
Definition PatlakPlot.cxx:318
std::string _time_frame_definition_filename
name of file to get frame definitions
Definition PatlakPlot.h:138
ModelMatrix< 2 > get_model_matrix(const PlasmaData &plasma_data, const TimeFrameDefinitions &time_frame_definitions, const unsigned int starting_frame)
Creates model matrix from plasma data (Must be already sorted in appropriate frames).
void apply_linear_regression(ParametricVoxelsOnCartesianGrid &par_image, const DynamicDiscretisedDensity &dyn_image) const
This is the common method used to estimate the parametric images from the dynamic images.
Definition PatlakPlot.cxx:162
bool _in_total_cnt
Switch to choose the values of the model to be in total counts or in mean counts.
Definition PatlakPlot.h:135
virtual void multiply_dynamic_image_with_model_gradient_and_add_to_input(ParametricVoxelsOnCartesianGrid &parametric_image, const DynamicDiscretisedDensity &dyn_image) const
Multiplies the dynamic image with the model gradient and add to original parametric_image.
Definition PatlakPlot.cxx:271
PlasmaData _plasma_frame_data
Stores the plasma data into frames for brain studies.
Definition PatlakPlot.h:137
virtual void get_dynamic_image_from_parametric_image(DynamicDiscretisedDensity &dyn_image, const ParametricVoxelsOnCartesianGrid &par_image) const
Multiplies the parametric image with the model matrix to get the corresponding dynamic image.
Definition PatlakPlot.cxx:294
void set_defaults() override
Set defaults before parsing.
Definition PatlakPlot.cxx:28
A class for storing plasma and blood samples of a single study.
Definition PlasmaData.h:34
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Class used for storing time frame durations.
Definition TimeFrameDefinitions.h:39
ParametricDiscretisedDensity< ParametricVoxelsOnCartesianGridBaseType > ParametricVoxelsOnCartesianGrid
Convenience typedef for Cartesian Voxelised Parametric Images with just two parameters.
Definition ParametricDiscretisedDensity.h:172