|
STIR
6.3.0
|
A BinNormalisation class that gets the normalisation factors from an ECAT8 3D normalisation file. Note that you have to point it to the "Interfile" header. More...
#include "stir/recon_buildblock/BinNormalisationFromECAT8.h"

Public Member Functions | |
| BinNormalisationFromECAT8 () | |
| Default constructor. More... | |
| BinNormalisationFromECAT8 (const string &filename) | |
| Constructor that reads the projdata from a file. | |
| Succeeded | set_up (const shared_ptr< const ExamInfo > &exam_info_sptr, const shared_ptr< const ProjDataInfo > &) override |
| initialises the object and checks if it can handle such projection data More... | |
| float | get_uncalibrated_bin_efficiency (const Bin &bin) const override |
| bool | use_detector_efficiencies () const |
| bool | use_dead_time () const |
| bool | use_geometric_factors () const |
| bool | use_crystal_interference_factors () const |
| bool | use_axial_effects_factors () const |
Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromECAT8, BinNormalisation, BinNormalisationWithCalibration > | |
| 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::BinNormalisationWithCalibration | |
| Succeeded | set_up (const shared_ptr< const ExamInfo > &exam_info_sptr, const shared_ptr< const ProjDataInfo > &) override |
| initialises the object and checks if it can handle such projection data More... | |
| float | get_calib_decay_branching_ratio_factor (const Bin &) const |
| product of calibration factor etc | |
| float | get_calibration_factor () const override |
| float | get_branching_ratio () const |
| void | set_calibration_factor (const float) |
| void | set_radionuclide (const Radionuclide &) |
| float | get_bin_efficiency (const Bin &bin) const final |
| return efficiency for 1 bin More... | |
Public Member Functions inherited from stir::BinNormalisation | |
| virtual bool | is_trivial () const |
| check if we would be multiplying with 1 (i.e. do nothing) More... | |
| virtual bool | is_TOF_only_norm () const |
| returns if the object can only handle TOF data More... | |
| virtual void | apply (RelatedViewgrams< float > &) const |
| normalise some data More... | |
| virtual void | undo (RelatedViewgrams< float > &) const |
| undo the normalisation of some data More... | |
| void | apply (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| normalise some data More... | |
| void | undo (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| undo the normalisation of some data More... | |
| void | set_exam_info_sptr (const shared_ptr< const ExamInfo > _exam_info_sptr) |
| shared_ptr< const ExamInfo > | get_exam_info_sptr () const |
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) |
Static Public Attributes | |
| static const char *const | registered_name = "From ECAT8" |
| Name which will be used when parsing a BinNormalisation object. | |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromECAT8, BinNormalisation, BinNormalisationWithCalibration > | |
| static BinNormalisation * | 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< BinNormalisation > | |
| static BinNormalisation * | 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 BinNormalisation * | 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< BinNormalisation > | |
| typedef BinNormalisation *(* | 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::BinNormalisationWithCalibration | |
| void | set_defaults () override |
| void | initialise_keymap () override |
| Initialise all keywords. | |
| bool | post_processing () override |
| This will be called at the end of the parsing. More... | |
Protected Member Functions inherited from stir::BinNormalisation | |
| virtual void | check (const ProjDataInfo &proj_data_info) const |
| check if the argument is the same as what was used for set_up() More... | |
| virtual void | check (const ExamInfo &exam_info) const |
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< BinNormalisation > | |
| static RegistryType & | registry () |
| Static function returning the registry. More... | |
Protected Attributes inherited from stir::BinNormalisation | |
| bool | _already_set_up |
| shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
Protected Attributes inherited from stir::ParsingObject | |
| KeyParser | parser |
A BinNormalisation class that gets the normalisation factors from an ECAT8 3D normalisation file. Note that you have to point it to the "Interfile" header.
Bin Normalisation type := from ecat8 Bin Normalisation From ECAT8:= normalisation filename:= myfile.n.hdr ; next keywords can be used to switch off some of the normalisation components ; do not use unless you know why. ; Default values are indicated below (i.e. use all of them) ; use_gaps:=1 ; use_detector_efficiencies:=1 ; use_dead_time:=1 ; use_geometric_factors:=1 ; use_crystal_interference_factors:=1 ; use_axial_effects_factors:=1 ; keyword that can be used to write the components to a separate text files for debugging ; files are written in the current directory and are called geom_out.txt etc. ; write_components_to_file := 0 End Bin Normalisation From ECAT8:=
Siemens stores axial effects, i.e. one number per sinogram. This normally limits the use of the file to data that have been acquired with the same span, which is usually 11 for present Siemens scanners.
We work around this in 2 ways:
axial_effects_factor is the same for every ring pair contributing to a particular Siemens sinogramaxial_effects_factor of 1. This should be reasonable as the numbers are around 1 (on the mMR).This strategy allows us to give normalisation factor for span=1 data, even if the norm file is for span=11.
| stir::ecat::BinNormalisationFromECAT8::BinNormalisationFromECAT8 | ( | ) |
Default constructor.
|
overridevirtual |
initialises the object and checks if it can handle such projection data
Default version sets _already_set_up and stores the shared pointers.
Reimplemented from stir::BinNormalisation.
References stir::Array< num_dimensions, elemT >::begin_all(), stir::Array< num_dimensions, elemT >::end_all(), stir::error(), stir::Array< num_dimensions, elemT >::fill(), stir::get_directory_name(), stir::VectorWithOffset< T >::get_max_index(), stir::VectorWithOffset< T >::get_min_index(), stir::max_filename_length, stir::open_read_binary(), stir::prepend_directory_name(), stir::read_data(), and stir::warning().
1.8.13