24#ifndef __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__
25#define __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__
35template <
typename elemT>
37template <
typename elemT>
38class RelatedViewgrams;
39template <
typename elemT>
40class VoxelsOnCartesianGrid;
42class ProjDataInfoCylindrical;
73class ForwardProjectorByBinUsingRayTracing
80 ForwardProjectorByBinUsingRayTracing();
84 ForwardProjectorByBinUsingRayTracing(
const shared_ptr<const ProjDataInfo>&,
89 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
102 const int min_axial_pos_num,
103 const int max_axial_pos_num,
104 const int min_tangential_pos_num,
105 const int max_tangential_pos_num)
override;
107 void actual_forward_project(
Bin&,
112 shared_ptr<DataSymmetriesForBins_PET_CartesianGrid> symmetries_ptr;
127 const int min_axial_pos_num,
128 const int max_axial_pos_num,
129 const int min_tangential_pos_num,
130 const int max_tangential_pos_num)
const;
143 const int min_axial_pos_num,
144 const int max_axial_pos_num,
145 const int min_tangential_pos_num,
146 const int max_tangential_pos_num)
const;
158 const int min_axial_pos_num,
159 const int max_axial_pos_num,
160 const int min_tangential_pos_num,
161 const int max_tangential_pos_num)
const;
172 const int min_axial_pos_num,
173 const int max_axial_pos_num,
174 const int min_tangential_pos_num,
175 const int max_tangential_pos_num)
const;
183 const int min_axial_pos_num,
184 const int max_axial_pos_num,
185 const int min_tangential_pos_num,
186 const int max_tangential_pos_num)
const;
190 const int min_axial_pos_num,
191 const int max_axial_pos_num,
192 const int min_tangential_pos_num,
193 const int max_tangential_pos_num)
const;
197 const int min_axial_pos_num,
198 const int max_axial_pos_num,
199 const int min_tangential_pos_num,
200 const int max_tangential_pos_num)
const;
204 const int min_axial_pos_num,
205 const int max_axial_pos_num,
206 const int min_tangential_pos_num,
207 const int max_tangential_pos_num)
const;
210 template <
int symmetry_type>
213 const shared_ptr<const ProjDataInfoCylindrical> proj_data_info_sptr,
219 const int min_ax_pos_num,
220 const int max_ax_pos_num,
222 const int num_planes_per_axial_pos,
223 const float axial_pos_to_z_offset,
224 const float norm_factor,
227 void set_defaults()
override;
228 void initialise_keymap()
override;
forward declaration of stir::Array class for multi-dimensional (numeric) arrays
Declaration of class stir::DataSymmetriesForBins_PET_CartesianGrid.
Base class for forward projectors which work on 'large' collections of bins: given the whole image,...
Declaration of class stir::RegisteredParsingObject.
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
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
static const char *const registered_name
Name which will be used when parsing a ForwardProjectorByBin object.
Definition ForwardProjectorByBinUsingRayTracing.h:78
bool restrict_to_cylindrical_FOV
variable that determines if a cylindrical FOV or the whole image will be handled
Definition ForwardProjectorByBinUsingRayTracing.h:97
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 ForwardProjectorByBinUsingRayTracing.cxx:103
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const override
Informs on which symmetries the projector handles.
Definition ForwardProjectorByBinUsingRayTracing.cxx:164
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
A class for 2d projection data.
Definition Viewgram.h:49
This class is used to represent voxelised densities on a cuboid grid (3D).
Definition VoxelsOnCartesianGrid.h:46
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...