21#ifndef __stir_gpu_BackProjectorByBinParallelproj_h__
22#define __stir_gpu_BackProjectorByBinParallelproj_h__
30class DataSymmetriesForViewSegmentNumbers;
31class ProjDataInMemory;
34class ParallelprojHelper;
59 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
83 _cuda_verbosity = verbosity;
87 void set_num_gpu_chunks(
int num_gpu_chunks)
89 _num_gpu_chunks = num_gpu_chunks;
91 int get_num_gpu_chunks()
93 return _num_gpu_chunks;
96 BackProjectorByBinParallelproj* clone()
const override;
98 bool get_restrict_to_cylindrical_FOV()
const;
99 void set_restrict_to_cylindrical_FOV(
bool val);
102 void actual_back_project(
const RelatedViewgrams<float>&,
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;
109 shared_ptr<DataSymmetriesForViewSegmentNumbers> _symmetries_sptr;
110 shared_ptr<ProjDataInMemory> _proj_data_to_backproject_sptr;
111 shared_ptr<detail::ParallelprojHelper> _helper;
112 bool _do_not_setup_helper;
113 friend class ProjectorByBinPairUsingParallelproj;
114 void set_helper(shared_ptr<detail::ParallelprojHelper>);
115 bool _cuda_verbosity;
117 bool _restrict_to_cylindrical_FOV;
Declares class stir::BackProjectorByBin.
Declaration of class stir::RegisteredParsingObject.
static const char *const registered_name
Name which will be used when parsing a BackProjectorByBin object.
Definition BackProjectorByBinParallelproj.h:45
BackProjectorByBinParallelproj()
Default constructor calls reset_timers()
Definition BackProjectorByBinParallelproj.cxx:61
void get_output(DiscretisedDensity< 3, float > &) const override
Get output.
Definition BackProjectorByBinParallelproj.cxx:161
void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_sptr) override
Stores all necessary geometric info.
Definition BackProjectorByBinParallelproj.cxx:110
const DataSymmetriesForViewSegmentNumbers * get_symmetries_used() const override
Symmetries not used, so returns TrivialDataSymmetriesForBins.
Definition BackProjectorByBinParallelproj.cxx:125
void set_verbosity(const bool verbosity)
Set verbosity.
Definition BackProjectorByBinParallelproj.h:81
void start_accumulating_in_new_target() override
tell the back projector to start accumulating into a new target. This function has to be called befor...
Definition BackProjectorByBinParallelproj.cxx:304
void set_defaults() override
set defaults
Definition BackProjectorByBinParallelproj.cxx:83
void initialise_keymap() override
Keymap.
Definition BackProjectorByBinParallelproj.cxx:73
void back_project(DiscretisedDensity< 3, float > &, const ProjData &, int subset_num=0, int num_subsets=1)
project whole proj_data into the volume
Definition BackProjectorByBin.cxx:112
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
The (abstract) base class for the projection data.
Definition ProjData.h:105
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78