STIR 6.4.0
PlasmaData.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2005 - 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*/
18
19#ifndef __stir_modelling_PlasmaData_H__
20#define __stir_modelling_PlasmaData_H__
21
24#include <vector>
25
26START_NAMESPACE_STIR
27
29
34{
35 typedef std::vector<PlasmaSample> plot_type;
36
37public:
39 inline PlasmaData(const std::vector<PlasmaSample>& plasma_blood_plot);
40 inline PlasmaData();
41 inline ~PlasmaData();
42
43 typedef plot_type::const_iterator const_iterator;
45
46 /*
47 enum VolumeUnits
48 { ml , litre };
49 enum SamplingTimeUnits
50 { seconds , minutes };
51 enum RadioactivityUnits
52 { counts_per_sec , counts_per_min , kBq };
53 */
54
55 // Implementation to set the input units not currently used. Always, it assumed to use kBq, seconds, ml.
56 /* inline void set_input_units(const SamplingTimeUnits input_sampling_time_units,
57 const VolumeUnits input_volume_units,
58 const RadioactivityUnits input_radioactivity_units ) ;
59 */
60
65 inline void read_plasma_data(const std::string input_string);
66
67 inline void set_plot(const std::vector<PlasmaSample>& plasma_blood_plot);
68
74
79
82 inline double get_time_shift();
83 inline bool get_is_decay_corrected() const;
84 inline double get_isotope_halflife() const;
85 inline TimeFrameDefinitions get_time_frame_definitions() const;
90 const TimeFrameDefinitions& plasma_fdef);
93 inline void set_is_decay_corrected(const bool is_decay_corrected);
94 inline void set_isotope_halflife(const double isotope_halflife);
95 inline void shift_time(const double time_shift);
97
99 inline void decay_correct_PlasmaData();
100
103 inline const_iterator begin() const;
104 inline const_iterator end() const;
105 inline unsigned int size() const;
107
109 // inline iterator begin() ;
110 // inline iterator end() ;
111
112private:
113 // PlasmaSample _plasma_type ;
114 // VolumeUnits _input_volume_units ;
115 // SamplingTimeUnits _input_sampling_time_units ;
116 // RadioactivityUnits _input_radioactivity_units ;
117 bool _is_decay_corrected;
118 std::vector<PlasmaSample> _plasma_blood_plot;
119 TimeFrameDefinitions _plasma_fdef;
120 double _isotope_halflife;
121 int _sample_size;
122 double _time_shift;
123};
124
125END_NAMESPACE_STIR
126
128
129#endif //__stir_modelling_PlasmaData_H__
Implementations of inline functions of class stir::PlasmaData.
Declaration of class stir::PlasmaData.
Declaration of class stir::TimeFrameDefinitions.
double get_isotope_halflife() const
Function to get the isotope halflife.
Definition PlasmaData.inl:140
void set_time_frame_definitions(const TimeFrameDefinitions &plasma_fdef)
Definition PlasmaData.inl:153
double get_time_shift()
Function to get the time shift.
Definition PlasmaData.inl:133
void shift_time(const double time_shift)
Function to shift the time data.
Definition PlasmaData.inl:122
PlasmaData get_sample_data_in_frames(TimeFrameDefinitions time_frame_def)
Sorts the plasma_data into frames.
Definition PlasmaData.inl:200
void set_plot(const std::vector< PlasmaSample > &plasma_blood_plot)
Function to set the plasma_blood_plot.
Definition PlasmaData.inl:115
void read_plasma_data(const std::string input_string)
Implementation to read the input function from ONLY a 3-columns data file (Time-InputFunctionRadioact...
Definition PlasmaData.inl:50
void set_isotope_halflife(const double isotope_halflife)
Function to set the isotope halflife.
Definition PlasmaData.inl:147
PlasmaData(const std::vector< PlasmaSample > &plasma_blood_plot)
constructor giving a vector
Definition PlasmaData.inl:36
const_iterator begin() const
begin() and end() iterators for the plasma curve and the size() function
Definition PlasmaData.inl:287
void decay_correct_PlasmaData()
Function to decay correct the data.
Definition PlasmaData.inl:177
Class used for storing time frame durations.
Definition TimeFrameDefinitions.h:39