24 #ifndef __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__ 25 #define __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__ 35 template <
typename elemT>
37 template <
typename elemT>
38 class RelatedViewgrams;
39 template <
typename elemT>
40 class VoxelsOnCartesianGrid;
42 class ProjDataInfoCylindrical;
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;
106 #if 0 // disabled as currently not used. needs to be written in the new style anyway 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,
225 const bool restrict_to_cylindrical_FOV);
227 void set_defaults()
override;
228 void initialise_keymap()
override;
This class is used to represent voxelised densities on a cuboid grid (3D).
Definition: FBP3DRPReconstruction.h:43
forward declaration of stir::Array class for multi-dimensional (numeric) arrays
static const char *const registered_name
Name which will be used when parsing a ForwardProjectorByBin object.
Definition: ForwardProjectorByBinUsingRayTracing.h:78
This class implements forward projection using Siddon's algorithm for ray tracing. That is, it computes length of intersection with the voxels.
Definition: ForwardProjectorByBinUsingRayTracing.h:73
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin)...
Definition: DataSymmetriesForViewSegmentNumbers.h:49
Declaration of class stir::DataSymmetriesForBins_PET_CartesianGrid.
bool restrict_to_cylindrical_FOV
variable that determines if a cylindrical FOV or the whole image will be handled
Definition: ForwardProjectorByBinUsingRayTracing.h:97
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
Base class for forward projectors which work on 'large' collections of bins: given the whole image...
Declaration of class stir::RegisteredParsingObject.