19#ifndef __stir_recon_buildblock_ProjMatrixByBinSPECTUB__
20#define __stir_recon_buildblock_ProjMatrixByBinSPECTUB__
30#include "stir/recon_buildblock/SPECTUB_Tools.h"
34template <
int num_dimensions,
typename elemT>
35class DiscretisedDensity;
95 void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
99 bool get_keep_all_views_in_cache()
const;
107 std::string get_attenuation_type()
const;
114 shared_ptr<const DiscretisedDensity<3, float>> get_attenuation_image_sptr()
const;
141 void set_resolution_model(
const float collimator_sigma_0_in_mm,
const float collimator_slope_in_mm,
const bool full_3D =
true);
150 float minimum_weight;
151 float maximum_number_of_sigmas;
152 float spatial_resolution_PSF;
153 std::string psf_type;
154 float collimator_sigma_0;
155 float collimator_slope;
156 std::string attenuation_type;
157 std::string attenuation_map;
158 std::string mask_type;
159 std::string mask_file;
160 bool keep_all_views_in_cache;
167 shared_ptr<const ProjDataInfo> proj_data_info_ptr;
177 void set_defaults()
override;
178 void initialise_keymap()
override;
179 bool post_processing()
override;
181 shared_ptr<const DiscretisedDensity<3, float>> attenuation_image_sptr;
205 void compute_one_subset(
const int kOS,
const float* Rrad)
const;
206 void delete_UB_SPECT_arrays();
207 mutable std::vector<bool> subset_already_processed;
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
void set_attenuation_image_sptr(const shared_ptr< const DiscretisedDensity< 3, float > > value)
Sets attenuation image.
Definition ProjMatrixByBinSPECTUB.cxx:173
ProjMatrixByBinSPECTUB()
Default constructor (calls set_defaults())
Definition ProjMatrixByBinSPECTUB.cxx:67
void set_attenuation_type(const std::string &value)
Set type of attenuation modelling.
Definition ProjMatrixByBinSPECTUB.cxx:155
void set_resolution_model(const float collimator_sigma_0_in_mm, const float collimator_slope_in_mm, const bool full_3D=true)
Set the parameters for the depth-dependent resolution model.
Definition ProjMatrixByBinSPECTUB.cxx:194
void set_keep_all_views_in_cache(bool value=true)
Enable keeping the matrix in memory.
Definition ProjMatrixByBinSPECTUB.cxx:139
static const char *const registered_name
Name which will be used when parsing a ProjMatrixByBin object.
Definition ProjMatrixByBinSPECTUB.h:83
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 ProjMatrixByBinSPECTUB.cxx:217
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...
structure to store angles values, indices and ratios
Definition SPECTUB_Tools.h:231
structure for bin information
Definition SPECTUB_Tools.h:288
structure for distribution function information
Definition SPECTUB_Tools.h:188
structure for projection information
Definition SPECTUB_Tools.h:80
structure for bin information
Definition SPECTUB_Tools.h:49
structure for voxel information
Definition SPECTUB_Tools.h:263
weight_mat_da structure definition. Structure for generating weight matrix
Definition SPECTUB_Tools.h:160
complementary information (matrix header)
Definition SPECTUB_Tools.h:107