STIR 6.4.0
BackProjectorByBinUsingSquareProjMatrixByBin.h
Go to the documentation of this file.
1//
2// $Id: BackProjectorByBinUsingSquareProjMatrixByBin.h
3//
4
5#ifndef _BackProjectorByBinUsingSquareProjMatrixByBin_
6#define _BackProjectorByBinUsingSquareProjMatrixByBin_
7
16/*
17 Copyright (C) 2000- 2001, IRSL
18 SPDX-License-Identifier: Apache-2.0
19 See STIR/LICENSE.txt for details
20*/
21
25#include "stir/shared_ptr.h"
26//#include "stir/recon_buildblock/DataSymmetriesForBins.h"
27//#include "stir/RelatedViewgrams.h"
28
29class Viewgrams;
30template <typename elemT>
31class RelatedViewgrams;
32class ProjDataInfoCylindricalArcCorr;
33
34START_NAMESPACE_STIR
35
41class BackProjectorByBinUsingSquareProjMatrixByBin
42 : public RegisteredParsingObject<BackProjectorByBinUsingSquareProjMatrixByBin, BackProjectorByBin>
43{
44public:
45 static const char* const registered_name;
46
47 BackProjectorByBinUsingSquareProjMatrixByBin();
48
49 BackProjectorByBinUsingSquareProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
50
52
53 void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
54 const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
55 ) override;
56
59 const int min_axial_pos_num,
60 const int max_axial_pos_num,
61 const int min_tangential_pos_num,
62 const int max_tangential_pos_num) override;
63
64 shared_ptr<ProjMatrixByBin>& get_proj_matrix_sptr() { return proj_matrix_ptr; }
65
66protected:
67 shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
68
70
71private:
72 void set_defaults() override;
73 void initialise_keymap() override;
74};
75
76END_NAMESPACE_STIR
77
78//#include "stir/BackProjectorByBinUsingSquareProjMatrixByBin.inl"
79
80#endif
Declares class stir::BackProjectorByBin.
declaration of stir::ProjMatrixByBin and its helpers classes
Declaration of class stir::RegisteredParsingObject.
void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_ptr) override
Stores all necessary geometric info.
Definition BackProjectorByBinUsingSquareProjMatrixByBin.cxx:119
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const override
Informs on which symmetries the projector handles It should get data related by at least those symmet...
Definition BackProjectorByBinUsingSquareProjMatrixByBin.cxx:51
void actual_back_project(DiscretisedDensity< 3, float > &image, const RelatedViewgrams< float > &, const int min_axial_pos_num, const int max_axial_pos_num, const int min_tangential_pos_num, const int max_tangential_pos_num) override
This actually does the back projection. There are two versions of this code to enable backwards compa...
Definition BackProjectorByBinUsingSquareProjMatrixByBin.cxx:59
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin).
Definition DataSymmetriesForViewSegmentNumbers.h:50
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
A class for storing viewgrams which are related by symmetry.
Definition RelatedViewgrams.h:41
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...