STIR
6.2.0
|
Generates projection matrix for pinhole SPECT studies. More...
#include "stir/recon_buildblock/ProjMatrixByBinPinholeSPECTUB.h"
Public Member Functions | |
ProjMatrixByBinPinholeSPECTUB () | |
Default constructor (calls set_defaults()) | |
ProjMatrixByBinPinholeSPECTUB (const ProjMatrixByBinPinholeSPECTUB &)=delete | |
~ProjMatrixByBinPinholeSPECTUB () override | |
Destructor (deallocates UB SPECT memory) | |
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. | |
float | get_maximum_number_of_sigmas () const |
Minimum weight. More... | |
void | set_maximum_number_of_sigmas (const float value) |
float | get_spatial_resolution_PSF () const |
Spatial resolution PSF. | |
void | set_spatial_resolution_PSF (const float value) |
int | get_subsampling_factor_PSF () const |
Subsampling factor PSF. | |
void | set_subsampling_factor_PSF (const int value) |
void | set_detector_file (const std::string &value) |
Detector file. | |
void | set_collimator_file (const std::string &value) |
Collimator file. | |
std::string | get_psf_correction () const |
PSF correction. | |
void | set_psf_correction (const std::string &value) |
std::string | get_doi_correction () const |
Set DOI correction. | |
void | set_doi_correction (const std::string &value) |
float | get_object_radius () const |
Object radius (cm) | |
void | set_object_radius (const float value) |
std::string | get_attenuation_type () const |
Type of attenuation modelling. More... | |
void | set_attenuation_type (const std::string &value) |
shared_ptr< const DiscretisedDensity< 3, float > > | get_attenuation_image_sptr () const |
void | set_attenuation_image_sptr (const shared_ptr< const DiscretisedDensity< 3, float >> value) |
Attenuation image. | |
void | set_attenuation_image_sptr (const std::string &value) |
shared_ptr< const DiscretisedDensity< 3, float > > | get_mask_image_sptr () const |
Type of masking. More... | |
void | set_mask_image_sptr (const shared_ptr< const DiscretisedDensity< 3, float >> value) |
void | set_mask_image_sptr (const std::string &value) |
bool | get_mask_from_attenuation_map () const |
Mask from attenuation map. More... | |
void | set_mask_from_attenuation_map (bool value=false) |
bool | get_keep_all_views_in_cache () const |
Enable keeping the matrix in memory. More... | |
void | set_keep_all_views_in_cache (bool value=false) |
ProjMatrixByBinPinholeSPECTUB * | clone () const override |
Public Member Functions inherited from stir::RegisteredParsingObject< ProjMatrixByBinPinholeSPECTUB, ProjMatrixByBin, ProjMatrixByBin > | |
std::string | get_registered_name () const override |
Returns Derived::registered_name. | |
std::string | parameter_info () override |
Returns a string with all parameters and their values, in a form suitable for parsing again. | |
Public Member Functions inherited from stir::ProjMatrixByBin | |
const DataSymmetriesForBins * | get_symmetries_ptr () const |
get a pointer to an object encoding all symmetries that are used by this ProjMatrixByBin | |
const shared_ptr< DataSymmetriesForBins > | get_symmetries_sptr () const |
get a shared_ptr to an object encoding all symmetries that are used by this ProjMatrixByBin | |
void | get_proj_matrix_elems_for_one_bin (ProjMatrixElemsForOneBin &, const Bin &) const |
The main method for getting a row of the matrix. More... | |
void | enable_cache (const bool v=true) |
void | store_only_basic_bins_in_cache (const bool v=true) |
bool | is_cache_enabled () const |
bool | does_cache_store_only_basic_bins () const |
void | clear_cache () const |
Remove all elements from the cache. | |
Public Member Functions inherited from stir::ParsingObject | |
ParsingObject (const ParsingObject &) | |
ParsingObject & | operator= (const ParsingObject &) |
void | ask_parameters () |
bool | parse (std::istream &f) |
bool | parse (const char *const filename) |
Public Member Functions inherited from stir::TimedObject | |
void | reset_timers () |
reset all timers kept by this object | |
void | stop_timers () const |
stop all timers kept by this object More... | |
void | start_timers (bool do_reset=false) const |
start all timers kept by this object More... | |
double | get_CPU_timer_value () const |
get current value of the CPU timer (since first use or last reset) | |
double | get_wall_clock_timer_value () const |
get current value of the wall-clock timer (since first use or last reset) | |
Static Public Attributes | |
static const char *const | registered_name = "Pinhole SPECT UB" |
Name which will be used when parsing a ProjMatrixByBin object. | |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredParsingObject< ProjMatrixByBinPinholeSPECTUB, ProjMatrixByBin, ProjMatrixByBin > | |
static ProjMatrixByBin * | read_from_stream (std::istream *) |
Construct a new object (of type Derived) by parsing the istream. More... | |
Static Public Member Functions inherited from stir::RegisteredObject< ProjMatrixByBin > | |
static ProjMatrixByBin * | read_registered_object (std::istream *in, const std::string ®istered_name) |
Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream. More... | |
static ProjMatrixByBin * | ask_type_and_parameters () |
ask the user for the type, and then calls read_registered_object(0, type) More... | |
static void | list_registered_names (std::ostream &stream) |
List all possible registered names to the stream. More... | |
Protected Types inherited from stir::RegisteredObject< ProjMatrixByBin > | |
typedef ProjMatrixByBin *(* | RootFactory) (std::istream *) |
The type of a root factory is a function, taking an istream* as argument, and returning a Root*. | |
typedef FactoryRegistry< std::string, RootFactory, interfile_less > | RegistryType |
The type of the registry. | |
Protected Member Functions inherited from stir::ProjMatrixByBin | |
ProjMatrixByBin () | |
default ctor (calls set_defaults()) More... | |
Succeeded | get_cached_proj_matrix_elems_for_one_bin (ProjMatrixElemsForOneBin &) const |
The method that tries to get data from the cache. More... | |
void | cache_proj_matrix_elems_for_one_bin (const ProjMatrixElemsForOneBin &) const |
The method to store data in the cache. | |
Protected Member Functions inherited from stir::ParsingObject | |
virtual void | set_key_values () |
This will be called before parsing or parameter_info is called. More... | |
Static Protected Member Functions inherited from stir::RegisteredObject< ProjMatrixByBin > | |
static RegistryType & | registry () |
Static function returning the registry. More... | |
Protected Attributes inherited from stir::ProjMatrixByBin | |
shared_ptr< DataSymmetriesForBins > | symmetries_sptr |
bool | cache_disabled |
bool | cache_stores_only_basic_bins |
bool | tof_enabled |
If activated TOF reconstruction will be performed. | |
shared_ptr< const VoxelsOnCartesianGrid< float > > | image_info_sptr |
We need a local copy of the discretised density in order to find the cartesian coordinates of each voxel. | |
shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
We need a local copy of the proj_data_info to get the integration boundaries and RayTracing. | |
Protected Attributes inherited from stir::ParsingObject | |
KeyParser | parser |
Generates projection matrix for pinhole SPECT studies.
Projection Matrix By Bin Pinhole SPECT UB Parameters:= maximum number of sigmas := 2.0 spatial resolution PSF := 0.001 subsampling factor PSF := 1 detector file := detector.txt collimator file := collimator.txt ; PSF and DOI correction { Yes // No } psf correction := no doi correction := no ; Attenuation correction { Simple // Full // No } attenuation type := no attenuation map := object radius (cm) := 2.3 mask file := ; If no mask file is set, we can either compute it from attenuation map or object radius mask from attenuation map := 0 keep all views in cache := 0 End Projection Matrix By Bin Pinhole SPECT UB Parameters:=
Information of detector Comments are allowed here or anywhere in lines not containing parameters. Parameters are defined with a delimiting colon. Avoid using a colon elsewehere. # Sigma = FWHM/(2*sqrt(2*ln(2))) where FWHM = 0.85 mm # CsI at 140.5 keV from NIST Number of rings: 1 #intrinsic PSF# Sigma (cm): 0.0361 Crystal thickness (cm): 0.3 Crystal attenuation coefficient (cm -1): 4.407 \#……repeat for each ring …………\# Nangles: 4 ang0 (deg): 180. incr (deg): 90.0 z0 (cm): 0. \#…………until here……………\#
Information of collimator Comments are allowed here or anywhere in lines not containing parameters. Parameters are defined with a delimiting colon. Avoid using a colon elsewehere. Model (cyl/pol): pol Collimator radius (cm): 2.8 Wall thickness (cm): 1. #holes# Number of holes: 4 nh / ind / x(cm) / y(cm) / z(cm) / shape(rect-round) / sizex(cm) / sizez(cm) / angx(deg) / angz(deg) / accx(deg) / accz(deg) h1: 1 0. 0. 0. round 0.1 0.1 0. 0. 45. 45. h2: 2 0. 0. 0. round 0.1 0.1 0. 0. 45. 45. h3: 3 0. 0. 0. round 0.1 0.1 0. 0. 45. 45. h4: 4 0. 0. 0. round 0.1 0.1 0. 0. 45. 45.
float stir::ProjMatrixByBinPinholeSPECTUB::get_maximum_number_of_sigmas | ( | ) | const |
Minimum weight.
Maximum number of sigmas.
Maximum number of sigmas
string stir::ProjMatrixByBinPinholeSPECTUB::get_attenuation_type | ( | ) | const |
shared_ptr< const DiscretisedDensity< 3, float > > stir::ProjMatrixByBinPinholeSPECTUB::get_mask_image_sptr | ( | ) | const |
bool stir::ProjMatrixByBinPinholeSPECTUB::get_mask_from_attenuation_map | ( | ) | const |
Mask from attenuation map.
Mask image.
bool stir::ProjMatrixByBinPinholeSPECTUB::get_keep_all_views_in_cache | ( | ) | const |
Enable keeping the matrix in memory.
Keep all views in cache.