STIR  6.2.0
Public Member Functions | Static Public Attributes | List of all members
stir::ProjMatrixByBinPinholeSPECTUB Class Reference

Generates projection matrix for pinhole SPECT studies. More...

#include "stir/recon_buildblock/ProjMatrixByBinPinholeSPECTUB.h"

Inheritance diagram for stir::ProjMatrixByBinPinholeSPECTUB:
Inheritance graph
[legend]

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)
 
ProjMatrixByBinPinholeSPECTUBclone () 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 DataSymmetriesForBinsget_symmetries_ptr () const
 get a pointer to an object encoding all symmetries that are used by this ProjMatrixByBin
 
const shared_ptr< DataSymmetriesForBinsget_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 &)
 
ParsingObjectoperator= (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 ProjMatrixByBinread_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 ProjMatrixByBinread_registered_object (std::istream *in, const std::string &registered_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 ProjMatrixByBinask_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_lessRegistryType
 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 RegistryTyperegistry ()
 Static function returning the registry. More...
 
- Protected Attributes inherited from stir::ProjMatrixByBin
shared_ptr< DataSymmetriesForBinssymmetries_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 ProjDataInfoproj_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
 

Detailed Description

Generates projection matrix for pinhole SPECT studies.

Warning
this class currently only works with VoxelsOnCartesianGrid.
Sample parameter file
    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:=
Sample detector file
    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……………\#
Sample collimator file
    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.

Member Function Documentation

◆ get_maximum_number_of_sigmas()

float stir::ProjMatrixByBinPinholeSPECTUB::get_maximum_number_of_sigmas ( ) const

Minimum weight.

Maximum number of sigmas.

Maximum number of sigmas

◆ get_attenuation_type()

string stir::ProjMatrixByBinPinholeSPECTUB::get_attenuation_type ( ) const

Type of attenuation modelling.

Attenuation image.

References stir::error().

◆ get_mask_image_sptr()

shared_ptr< const DiscretisedDensity< 3, float > > stir::ProjMatrixByBinPinholeSPECTUB::get_mask_image_sptr ( ) const

Type of masking.

Mask from mask file

References stir::info(), and stir::read_from_file().

◆ get_mask_from_attenuation_map()

bool stir::ProjMatrixByBinPinholeSPECTUB::get_mask_from_attenuation_map ( ) const

Mask from attenuation map.

Mask image.

◆ get_keep_all_views_in_cache()

bool stir::ProjMatrixByBinPinholeSPECTUB::get_keep_all_views_in_cache ( ) const

Enable keeping the matrix in memory.

Keep all views in cache.


The documentation for this class was generated from the following files: