STIR 6.4.0
ForwardProjectorByBinUsingProjMatrixByBin.h
Go to the documentation of this file.
1//
2//
3#ifndef _ForwardProjectorByBinUsingProjMatrixByBin_
4#define _ForwardProjectorByBinUsingProjMatrixByBin_
5
19/*
20 Copyright (C) 2000 PARAPET partners
21 Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
22 This file is part of STIR.
23
24 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
25
26 See STIR/LICENSE.txt for details
27*/
28
32#include "stir/shared_ptr.h"
33
34START_NAMESPACE_STIR
35
36template <typename elemT>
37class RelatedViewgrams;
38
47class ForwardProjectorByBinUsingProjMatrixByBin
48 : public RegisteredParsingObject<ForwardProjectorByBinUsingProjMatrixByBin, ForwardProjectorByBin>
49{
50public:
52 static const char* const registered_name;
53
54 ForwardProjectorByBinUsingProjMatrixByBin();
55
56 ForwardProjectorByBinUsingProjMatrixByBin(const shared_ptr<ProjMatrixByBin>& proj_matrix_ptr);
57
59
61 void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
62 const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
63 ) override;
64
66
67private:
68 shared_ptr<ProjMatrixByBin> proj_matrix_ptr;
69
70 void actual_forward_project(RelatedViewgrams<float>&,
72 const int min_axial_pos_num,
73 const int max_axial_pos_num,
74 const int min_tangential_pos_num,
75 const int max_tangential_pos_num) override;
76
77#if 0 // disabled as currently not used. needs to be written in the new style anyway
78 void actual_forward_project(Bin&, const DiscretisedDensity<3,float>&);
79#endif
80
81 void set_defaults() override;
82 void initialise_keymap() override;
83 bool post_processing() override;
84};
85
86END_NAMESPACE_STIR
87
88#endif
Base class for forward projectors which work on 'large' collections of bins: given the whole image,...
declaration of stir::ProjMatrixByBin and its helpers classes
Declaration of class stir::RegisteredParsingObject.
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
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const override
Informs on which symmetries the projector handles.
Definition ForwardProjectorByBinUsingProjMatrixByBin.cxx:94
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 ForwardProjectorByBinUsingProjMatrixByBin.cxx:86
static const char *const registered_name
Name which will be used when parsing a ForwardProjectorByBin object.
Definition ForwardProjectorByBinUsingProjMatrixByBin.h:52
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...