24 #ifndef __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__ 25 #define __stir_recon_buildblock_ForwardProjectorByBinUsingRayTracing__H__ 34 template <
typename elemT>
36 template <
typename elemT>
37 class RelatedViewgrams;
38 template <
typename elemT>
39 class VoxelsOnCartesianGrid;
40 template <
int num_dimensions,
typename elemT>
43 class ProjDataInfoCylindrical;
90 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
103 const int min_axial_pos_num,
104 const int max_axial_pos_num,
105 const int min_tangential_pos_num,
106 const int max_tangential_pos_num)
override;
107 #if 0 // disabled as currently not used. needs to be written in the new style anyway 108 void actual_forward_project(
Bin&,
113 shared_ptr<DataSymmetriesForBins_PET_CartesianGrid> symmetries_ptr;
128 const int min_axial_pos_num,
129 const int max_axial_pos_num,
130 const int min_tangential_pos_num,
131 const int max_tangential_pos_num)
const;
144 const int min_axial_pos_num,
145 const int max_axial_pos_num,
146 const int min_tangential_pos_num,
147 const int max_tangential_pos_num)
const;
159 const int min_axial_pos_num,
160 const int max_axial_pos_num,
161 const int min_tangential_pos_num,
162 const int max_tangential_pos_num)
const;
173 const int min_axial_pos_num,
174 const int max_axial_pos_num,
175 const int min_tangential_pos_num,
176 const int max_tangential_pos_num)
const;
184 const int min_axial_pos_num,
185 const int max_axial_pos_num,
186 const int min_tangential_pos_num,
187 const int max_tangential_pos_num)
const;
191 const int min_axial_pos_num,
192 const int max_axial_pos_num,
193 const int min_tangential_pos_num,
194 const int max_tangential_pos_num)
const;
198 const int min_axial_pos_num,
199 const int max_axial_pos_num,
200 const int min_tangential_pos_num,
201 const int max_tangential_pos_num)
const;
205 const int min_axial_pos_num,
206 const int max_axial_pos_num,
207 const int min_tangential_pos_num,
208 const int max_tangential_pos_num)
const;
211 template <
int symmetry_type>
214 const shared_ptr<const ProjDataInfoCylindrical> proj_data_info_sptr,
220 const int min_ax_pos_num,
221 const int max_ax_pos_num,
223 const int num_planes_per_axial_pos,
224 const float axial_pos_to_z_offset,
225 const float norm_factor,
226 const bool restrict_to_cylindrical_FOV);
228 void set_defaults()
override;
229 void initialise_keymap()
override;
This class is used to represent voxelised densities on a cuboid grid (3D).
Definition: FBP3DRPReconstruction.h:43
static const char *const registered_name
Name which will be used when parsing a ForwardProjectorByBin object.
Definition: ForwardProjectorByBinUsingRayTracing.h:79
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:74
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
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:98
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.