4 #ifndef __stir_recon_buildblock_ForwardProjectorByBin_h__ 5 #define __stir_recon_buildblock_ForwardProjectorByBin_h__ 39 template <
typename elemT>
40 class RelatedViewgrams;
41 template <
int num_dimensions,
class elemT>
42 class DiscretisedDensity;
45 class DataSymmetriesForViewSegmentNumbers;
46 template <
typename DataT>
70 virtual void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
89 #ifdef STIR_PROJECTORS_AS_V3 96 const int min_axial_pos_num,
97 const int max_axial_pos_num);
101 const int min_axial_pos_num,
102 const int max_axial_pos_num,
103 const int min_tangential_pos_num,
104 const int max_tangential_pos_num);
108 virtual void forward_project(
ProjData&,
int subset_num = 0,
int num_subsets = 1,
bool zero =
true);
117 const int min_axial_pos_num,
118 const int max_axial_pos_num,
119 const int min_tangential_pos_num,
120 const int max_tangential_pos_num);
122 #if 0 // disabled as currently not used. needs to be written in the new style anyway 125 void forward_project(
Bin&,
140 const int min_axial_pos_num,
141 const int max_axial_pos_num,
142 const int min_tangential_pos_num,
143 const int max_tangential_pos_num);
146 const int min_axial_pos_num,
147 const int max_axial_pos_num,
148 const int min_tangential_pos_num,
149 const int max_tangential_pos_num);
151 #if 0 // disabled as currently not used. needs to be written in the new style anyway 152 virtual void actual_forward_project(
Bin&,
162 virtual void check(
const ProjDataInfo& proj_data_info)
const;
173 bool _already_set_up;
177 shared_ptr<DataProcessor<DiscretisedDensity<3, float>>> _pre_data_processor_sptr;
179 void set_defaults()
override;
180 void initialise_keymap()
override;
189 #endif // __stir_recon_buildblock_ForwardProjectorByBin_h__
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Base class that defines an interface for classes that do data processing.
Definition: DataProcessor.h:46
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin)...
Definition: DataSymmetriesForViewSegmentNumbers.h:49
base class for all objects which need timers. At the moment, there's only a CPU timer.
Definition: TimedObject.h:35
shared_ptr< DiscretisedDensity< 3, float > > _density_sptr
The density ptr set with set_up()
Definition: ForwardProjectorByBin.h:176
shared_ptr< const ProjDataInfo > _proj_data_info_sptr
ProjDataInfo set by set_up()
Definition: ForwardProjectorByBin.h:184
Abstract base class for all forward projectors.
Definition: ForwardProjectorByBin.h:53
Declaration of class stiir::RegisteredObject.
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Declaration of class stir::Bin.
declares the stir::TimedObject class
Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes wi...
Definition: RegisteredObject.h:95
Declaration of class stir::ProjMatrixElemsForOneBin.
defines the stir::VoxelsOnCartesianGrid class
An (abstract base) class that contains information on the projection data.
Definition: ProjDataInfo.h:69
The (abstract) base class for the projection data.
Definition: ProjData.h:103