25 #ifndef __stir_recon_buildblock_BackProjectorByBin_h_ 26 #define __stir_recon_buildblock_BackProjectorByBin_h_ 36 template <
typename elemT>
37 class RelatedViewgrams;
38 template <
int num_dimensions,
class elemT>
39 class DiscretisedDensity;
42 class DataSymmetriesForViewSegmentNumbers;
43 template <
typename DataT>
68 virtual void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
88 #ifdef STIR_PROJECTORS_AS_V3 97 const int min_axial_pos_num,
98 const int max_axial_pos_num);
104 const int min_axial_pos_num,
105 const int max_axial_pos_num,
106 const int min_tangential_pos_num,
107 const int max_tangential_pos_num);
111 virtual void back_project(
const ProjData&,
int subset_num = 0,
int num_subsets = 1);
124 const int min_axial_pos_num,
125 const int max_axial_pos_num,
126 const int min_tangential_pos_num,
127 const int max_tangential_pos_num);
131 virtual void start_accumulating_in_new_target();
157 const int min_axial_pos_num,
158 const int max_axial_pos_num,
159 const int min_tangential_pos_num,
160 const int max_tangential_pos_num);
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);
181 virtual void check(
const ProjDataInfo& proj_data_info)
const;
192 bool _already_set_up;
196 shared_ptr<DataProcessor<DiscretisedDensity<3, float>>> _post_data_processor_sptr;
198 void set_defaults()
override;
199 void initialise_keymap()
override;
207 std::vector<shared_ptr<DiscretisedDensity<3, float>>> _local_output_image_sptrs;
214 #endif // __BackProjectorByBin_h_ Abstract base class for all back projectors.
Definition: BackProjectorByBin.h:50
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
Declaration of class stiir::RegisteredObject.
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.
An (abstract base) class that contains information on the projection data.
Definition: ProjDataInfo.h:69
shared_ptr< DiscretisedDensity< 3, float > > _density_sptr
Clone of the density sptr set with set_up()
Definition: BackProjectorByBin.h:195
The (abstract) base class for the projection data.
Definition: ProjData.h:103
shared_ptr< const ProjDataInfo > _proj_data_info_sptr
ProjDataInfo set by set_up()
Definition: BackProjectorByBin.h:203