STIR 6.4.0
BackProjectorByBinUsingProjMatrixByBin.h
Go to the documentation of this file.
1#ifndef _BackProjectorByBinUsingProjMatrixByBin_
2#define _BackProjectorByBinUsingProjMatrixByBin_
3
16/*
17 Copyright (C) 2000 PARAPET partners
18 Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
19 This file is part of STIR.
20
21 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
22
23 See STIR/LICENSE.txt for details
24*/
25
29#include "stir/shared_ptr.h"
30//#include "stir/DataSymmetriesForBins.h"
31//#include "stir/RelatedViewgrams.h"
32
33class Viewgrams;
34template <typename elemT>
35class RelatedViewgrams;
36class ProjDataInfoCylindricalArcCorr;
37
38START_NAMESPACE_STIR
39
45class BackProjectorByBinUsingProjMatrixByBin
46 : public RegisteredParsingObject<BackProjectorByBinUsingProjMatrixByBin, BackProjectorByBin>
47{
48public:
50 static const char* const registered_name;
51
52 BackProjectorByBinUsingProjMatrixByBin();
53
54 BackProjectorByBinUsingProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
55
57
59 void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
60 const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
61 ) override;
62
64
67 const int min_axial_pos_num,
68 const int max_axial_pos_num,
69 const int min_tangential_pos_num,
70 const int max_tangential_pos_num) override;
71
72 shared_ptr<ProjMatrixByBin>& get_proj_matrix_sptr() { return proj_matrix_ptr; }
73
74 BackProjectorByBinUsingProjMatrixByBin* clone() const override;
75
76protected:
77 shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
78
79 // currently not exposed, but leaving this ine for the future
80 void actual_back_project(DiscretisedDensity<3, float>& image, const Bin& bin);
81
82private:
83 void set_defaults() override;
84 void initialise_keymap() override;
85 bool post_processing() override;
86};
87
88END_NAMESPACE_STIR
89
90//#include "stir/recon_buildblock/BackProjectorByBinUsingProjMatrixByBin.inl"
91
92#endif
Declares class stir::BackProjectorByBin.
declaration of stir::ProjMatrixByBin and its helpers classes
Declaration of class stir::RegisteredParsingObject.
This implements the BackProjectorByBin interface, given any ProjMatrixByBin object.
Definition BackProjectorByBinUsingProjMatrixByBin.h:47
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 BackProjectorByBinUsingProjMatrixByBin.cxx:99
static const char *const registered_name
Name which will be used when parsing a BackProjectorByBin object.
Definition BackProjectorByBinUsingProjMatrixByBin.h:50
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 BackProjectorByBinUsingProjMatrixByBin.cxx:90
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 BackProjectorByBinUsingProjMatrixByBin.cxx:107
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...