21#ifndef __stir_recon_buildblock_ProjMatrixByBinPinholeSPECTUB__
22#define __stir_recon_buildblock_ProjMatrixByBinPinholeSPECTUB__
34#include "stir/recon_buildblock/PinholeSPECTUB_Tools.h"
38template <
int num_dimensions,
typename elemT>
39class DiscretisedDensity;
134 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
147 void set_maximum_number_of_sigmas(
const float value);
151 void set_spatial_resolution_PSF(
const float value);
155 void set_subsampling_factor_PSF(
const int value);
167 void set_psf_correction(
const std::string& value);
171 void set_doi_correction(
const std::string& value);
175 void set_object_radius(
const float value);
179 void set_attenuation_type(
const std::string& value);
180 shared_ptr<const DiscretisedDensity<3, float>> get_attenuation_image_sptr()
const;
194 void set_mask_image_sptr(
const std::string& value);
198 void set_mask_from_attenuation_map(
bool value =
false);
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();
defines the stir::CartesianCoordinate3D<coordT> class
This file defines the stir::IndexRange class.
Declaration of class stir::ProjDataInfo.
declaration of stir::ProjMatrixByBin and its helpers classes
Declaration of class stir::RegisteredParsingObject.
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
This class defines ranges which can be 'irregular'.
Definition IndexRange.h:69
ProjMatrixByBinPinholeSPECTUB()
Default constructor (calls set_defaults())
Definition ProjMatrixByBinPinholeSPECTUB.cxx:78
void set_detector_file(const std::string &value)
Detector file.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:241
shared_ptr< const DiscretisedDensity< 3, float > > get_mask_image_sptr() const
Type of masking.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:387
bool get_keep_all_views_in_cache() const
Enable keeping the matrix in memory.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:414
static const char *const registered_name
Name which will be used when parsing a ProjMatrixByBin object.
Definition ProjMatrixByBinPinholeSPECTUB.h:122
int get_subsampling_factor_PSF() const
Subsampling factor PSF.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:215
std::string get_attenuation_type() const
Type of attenuation modelling.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:309
float get_spatial_resolution_PSF() const
Spatial resolution PSF.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:198
std::string get_doi_correction() const
Set DOI correction.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:291
std::string get_psf_correction() const
PSF correction.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:272
bool get_mask_from_attenuation_map() const
Mask from attenuation map.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:371
float get_object_radius() const
Object radius (cm)
Definition ProjMatrixByBinPinholeSPECTUB.cxx:354
void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_ptr) override
Checks all necessary geometric info.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:432
void set_attenuation_image_sptr(const shared_ptr< const DiscretisedDensity< 3, float > > value)
Attenuation image.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:333
float get_maximum_number_of_sigmas() const
Minimum weight.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:181
void set_collimator_file(const std::string &value)
Collimator file.
Definition ProjMatrixByBinPinholeSPECTUB.cxx:261
This stores the non-zero projection matrix elements for every 'densel' that contributes to a given bi...
Definition ProjMatrixElemsForOneBin.h:69
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...