STIR 6.4.0
SRT2DReconstruction.h
Go to the documentation of this file.
1#ifndef __stir_analytic_SRT2D_SRT2DReconstruction_H__
2#define __stir_analytic_SRT2D_SRT2DReconstruction_H__
3/*
4 Copyright (C) 2012-2016, 2023-2024, Dimitra Kyriakopoulou
5 Copyright (C) 2024, University College London
6 This file is part of STIR.
7
8 SPDX-License-Identifier: Apache-2.0
9
10 See STIR/LICENSE.txt for details
11*/
26
29#include <string>
30#include <vector>
31#include "stir/shared_ptr.h"
32
33START_NAMESPACE_STIR
34
35template <int num_dimensions, typename elemT>
36class DiscretisedDensity;
37class Succeeded;
38class ProjData;
39
71
73 : public RegisteredParsingObject<SRT2DReconstruction, Reconstruction<DiscretisedDensity<3, float>>, AnalyticReconstruction>
74{
75 // typedef AnalyticReconstruction base_type;
77 base_type;
78#ifdef SWIG
79 // work-around swig problem. It gets confused when using a private (or protected)
80 // typedef in a definition of a public typedef/member
81 public:
82#else
83private:
84#endif
85 typedef DiscretisedDensity<3, float> TargetT;
86
87public:
89 static constexpr const char* const registered_name = "SRT2D";
90
97 explicit SRT2DReconstruction(const std::string& parameter_filename);
98
99 SRT2DReconstruction(const shared_ptr<ProjData>& proj_data_ptr_v, const int num_segments_to_combine = -1);
100 virtual std::string method_info() const;
101
102 virtual void ask_parameters();
103
104 virtual Succeeded set_up(shared_ptr<TargetT> const& target_data_sptr);
105
106protected: // make parameters protected such that doc shows always up in doxygen
107 // parameters used for parsing
108
110
116
117private:
118 Succeeded actual_reconstruct(shared_ptr<DiscretisedDensity<3, float>> const& target_image_ptr);
119
120 virtual void set_defaults();
121 virtual void initialise_keymap();
122 virtual bool post_processing();
123
135 void spline(const std::vector<float>& x, const std::vector<float>& y, int n, std::vector<float>& y2) const;
136
153 float hilbert_der(float x,
154 const std::vector<float>& f,
155 const std::vector<float>& ddf,
156 const std::vector<float>& p,
157 int sp,
158 const std::vector<float>& lg,
159 float termC) const;
160
171 float integ(float dist, int max, const std::vector<float>& ff) const;
172};
173
174END_NAMESPACE_STIR
175
176#endif
declares the stir::AnalyticReconstruction class
Declaration of class stir::RegisteredParsingObject.
base class for all analytic reconstruction algorithmsThis class provides extra functinoality (compare...
Definition AnalyticReconstruction.h:51
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
shared_ptr< DiscretisedDensity< 3, float > > target_data_sptr
Definition Reconstruction.h:207
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
int num_segments_to_combine
number of segments to combine (with SSRB) before starting 2D reconstruction
Definition SRT2DReconstruction.h:115
static constexpr const char *const registered_name
Name which will be used when parsing a reconstruction object.
Definition SRT2DReconstruction.h:89
SRT2DReconstruction()
Default constructor (calls set_defaults())
Definition SRT2DReconstruction.cxx:123
virtual std::string method_info() const
gives method information
Definition SRT2DReconstruction.cxx:112
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...