21 #ifndef __stir_recon_buildblock_ProjMatrixByBinPinholeSPECTUB__ 22 #define __stir_recon_buildblock_ProjMatrixByBinPinholeSPECTUB__ 34 #include "stir/recon_buildblock/PinholeSPECTUB_Tools.h" 38 template <
int num_dimensions,
typename elemT>
39 class DiscretisedDensity;
134 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
146 float get_maximum_number_of_sigmas()
const;
147 void set_maximum_number_of_sigmas(
const float value);
150 float get_spatial_resolution_PSF()
const;
151 void set_spatial_resolution_PSF(
const float value);
154 int get_subsampling_factor_PSF()
const;
155 void set_subsampling_factor_PSF(
const int value);
159 void set_detector_file(
const std::string& value);
163 void set_collimator_file(
const std::string& value);
166 std::string get_psf_correction()
const;
167 void set_psf_correction(
const std::string& value);
170 std::string get_doi_correction()
const;
171 void set_doi_correction(
const std::string& value);
174 float get_object_radius()
const;
175 void set_object_radius(
const float value);
178 std::string get_attenuation_type()
const;
179 void set_attenuation_type(
const std::string& value);
180 shared_ptr<const DiscretisedDensity<3, float>> get_attenuation_image_sptr()
const;
184 void set_attenuation_image_sptr(
const std::string& value);
192 shared_ptr<const DiscretisedDensity<3, float>> get_mask_image_sptr()
const;
194 void set_mask_image_sptr(
const std::string& value);
197 bool get_mask_from_attenuation_map()
const;
198 void set_mask_from_attenuation_map(
bool value =
false);
201 bool get_keep_all_views_in_cache()
const;
202 void set_keep_all_views_in_cache(
bool value =
false);
209 float minimum_weight;
210 float maximum_number_of_sigmas;
211 float spatial_resolution_PSF;
212 int subsampling_factor_PSF;
213 std::string detector_file;
214 std::string collimator_file;
215 std::string psf_correction;
216 std::string doi_correction;
217 std::string attenuation_type;
218 std::string attenuation_map;
221 std::string mask_file;
222 bool mask_from_attenuation_map;
223 bool keep_all_views_in_cache;
230 shared_ptr<const ProjDataInfo> proj_data_info_ptr;
234 mutable SPECTUB_mph::wmh_mph_type wmh;
235 mutable SPECTUB_mph::wm_da_type wm;
236 mutable SPECTUB_mph::pcf_type pcf;
240 void set_defaults()
override;
241 void initialise_keymap()
override;
242 bool post_processing()
override;
244 shared_ptr<const DiscretisedDensity<3, float>> attenuation_image_sptr;
245 shared_ptr<const DiscretisedDensity<3, float>> mask_image_sptr;
256 SPECTUB_mph::volume_type vol;
257 SPECTUB_mph::prj_mph_type prj;
258 SPECTUB_mph::bin_type bin;
261 mutable SPECTUB_mph::psf2d_type psf_bin;
262 mutable SPECTUB_mph::psf2d_type psf_subs;
263 mutable SPECTUB_mph::psf2d_type
265 mutable SPECTUB_mph::psf2d_type kern;
267 void compute_one_subset(
const int kOS)
const;
268 void delete_PinholeSPECTUB_arrays();
Declaration of class stir::ProjDataInfo.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Generates projection matrix for pinhole SPECT studies.
Definition: ProjMatrixByBinPinholeSPECTUB.h:117
declaration of stir::ProjMatrixByBin and its helpers classes
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
This file defines the stir::IndexRange class.
This stores the non-zero projection matrix elements for every 'densel' that contributes to a given bi...
Definition: ProjMatrixElemsForOneBin.h:68
static const char *const registered_name
Name which will be used when parsing a ProjMatrixByBin object.
Definition: ProjMatrixByBinPinholeSPECTUB.h:122
defines the stir::CartesianCoordinate3D<coordT> class
Declaration of class stir::RegisteredParsingObject.