|
STIR 6.4.0
|
A BinNormalisation class that gets attenuation correction factors from an attenuation image. More...
#include "stir/recon_buildblock/BinNormalisationFromAttenuationImage.h"

Public Member Functions | |
| BinNormalisationFromAttenuationImage () | |
| Default constructor. | |
| BinNormalisationFromAttenuationImage (const std::string &filename, shared_ptr< ForwardProjectorByBin > const &=shared_ptr< ForwardProjectorByBin >()) | |
| Constructor that reads the image from a file. | |
| BinNormalisationFromAttenuationImage (const shared_ptr< const DiscretisedDensity< 3, float > > &attenuation_image_ptr, shared_ptr< ForwardProjectorByBin > const &=shared_ptr< ForwardProjectorByBin >()) | |
| Constructor that takes the image as an argument. | |
| Succeeded | set_up (const shared_ptr< const ExamInfo > &exam_info_sptr, const shared_ptr< const ProjDataInfo > &) override |
| Checks if we can handle certain projection data. | |
| void | apply (RelatedViewgrams< float > &viewgrams) const override |
| Normalise some data. | |
| void | undo (RelatedViewgrams< float > &viewgrams) const override |
| Undo the normalisation of some data. | |
| float | get_bin_efficiency (const Bin &bin) const override |
| Return the 'efficiency' factor for a single bin. | |
| void | apply (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| normalise some data | |
| void | undo (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| undo the normalisation of some data | |
Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromAttenuationImage, BinNormalisation > | |
| 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::BinNormalisation | |
| virtual float | get_calibration_factor () const |
| virtual bool | is_trivial () const |
| check if we would be multiplying with 1 (i.e. do nothing) | |
| virtual bool | is_TOF_only_norm () const |
| returns if the object can only handle TOF data | |
| void | apply (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| normalise some data | |
| void | undo (ProjData &, shared_ptr< DataSymmetriesForViewSegmentNumbers >=shared_ptr< DataSymmetriesForViewSegmentNumbers >()) const |
| undo the normalisation of some data | |
| 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 &) |
| bool | parse (std::istream &f) |
| bool | parse (const char *const filename) |
| void | ask_parameters () |
Static Public Attributes | |
| static const char *const | registered_name = "From Attenuation Image" |
| Name which will be used when parsing a BinNormalisation object. | |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromAttenuationImage, BinNormalisation > | |
| static BinNormalisation * | read_from_stream (std::istream *) |
| Construct a new object (of type Derived) by parsing the istream. | |
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. | |
| static BinNormalisation * | ask_type_and_parameters () |
| ask the user for the type, and then calls read_registered_object(0, type) | |
| static void | list_registered_names (std::ostream &stream) |
| List all possible registered names to the stream. | |
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::BinNormalisation | |
| virtual void | check (const ProjDataInfo &proj_data_info) const |
| check if the argument is the same as what was used for set_up() | |
| virtual void | check (const ExamInfo &exam_info) const |
| virtual void | set_key_values () |
| This will be called before parsing or parameter_info is called. | |
Static Protected Member Functions inherited from stir::RegisteredObject< BinNormalisation > | |
| static RegistryType & | registry () |
| Static function returning the registry. | |
Protected Attributes inherited from stir::BinNormalisation | |
| bool | _already_set_up |
| shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
| KeyParser | parser |
A BinNormalisation class that gets attenuation correction factors from an attenuation image.
This forwards projects the attenuation image, multiplies with -1, and exponentiates to obtain the attenuation correction factors.
Default forward projector is ForwardProjectorByBinUsingRayTracing.
Bin Normalisation From Attenuation Image:= attenuation_image_filename := <ASCII> forward projector type := <ASCII> End Bin Normalisation From Attenuation Image :=
| stir::BinNormalisationFromAttenuationImage::BinNormalisationFromAttenuationImage | ( | ) |
Default constructor.
References BinNormalisationFromAttenuationImage().
Referenced by BinNormalisationFromAttenuationImage(), and BinNormalisationFromAttenuationImage().
| stir::BinNormalisationFromAttenuationImage::BinNormalisationFromAttenuationImage | ( | const std::string & | filename, |
| shared_ptr< ForwardProjectorByBin > const & | forward_projector_ptr = shared_ptr<ForwardProjectorByBin>() ) |
Constructor that reads the image from a file.
Default forward projector is ForwardProjectorByBinUsingRayTracing.
References BinNormalisationFromAttenuationImage().
| stir::BinNormalisationFromAttenuationImage::BinNormalisationFromAttenuationImage | ( | const shared_ptr< const DiscretisedDensity< 3, float > > & | attenuation_image_ptr, |
| shared_ptr< ForwardProjectorByBin > const & | forward_projector_ptr = shared_ptr<ForwardProjectorByBin>() ) |
Constructor that takes the image as an argument.
Default forward projector is ForwardProjectorByBinUsingRayTracing. The image pointed to by attenuation_image_ptr is NOT modified.
|
overridevirtual |
Checks if we can handle certain projection data.
This test is essentially checking if the forward projector can handle the data by calling ForwardProjectorByBin::set_up().
Reimplemented from stir::BinNormalisation.
References stir::error(), and stir::BinNormalisation::set_up().
|
overridevirtual |
Normalise some data.
This means multiply with the data in the projdata object passed in the constructor.
Reimplemented from stir::BinNormalisation.
References stir::RelatedViewgrams< elemT >::begin(), stir::BinNormalisation::check(), stir::RelatedViewgrams< elemT >::end(), stir::RelatedViewgrams< elemT >::get_empty_copy(), stir::DataWithProjDataInfo::get_proj_data_info_sptr(), and stir::in_place_exp().
|
overridevirtual |
Undo the normalisation of some data.
This means divide with the data in the projdata object passed in the constructor.
Reimplemented from stir::BinNormalisation.
References stir::RelatedViewgrams< elemT >::begin(), stir::BinNormalisation::check(), stir::RelatedViewgrams< elemT >::end(), stir::RelatedViewgrams< elemT >::get_empty_copy(), stir::DataWithProjDataInfo::get_proj_data_info_sptr(), and stir::in_place_exp().
|
overridevirtual |
Return the 'efficiency' factor for a single bin.
With the notation of the class documentation, this returns the factor 
Implements stir::BinNormalisation.
References stir::error().
| void stir::BinNormalisation::apply | ( | ProjData & | proj_data, |
| shared_ptr< DataSymmetriesForViewSegmentNumbers > | symmetries_sptr = shared_ptr<DataSymmetriesForViewSegmentNumbers>() ) const |
normalise some data
This would be used for instance to precorrect unnormalised data. With the notation of the class documentation, this would divide by the factors 
This just loops over all RelatedViewgrams.
The default value for the symmetries means that TrivialDataSymmetriesForBins will be used.
| void stir::BinNormalisation::undo | ( | ProjData & | proj_data, |
| shared_ptr< DataSymmetriesForViewSegmentNumbers > | symmetries_sptr = shared_ptr<DataSymmetriesForViewSegmentNumbers>() ) const |
undo the normalisation of some data
This would be used for instance to bring geometrically forward projected data to the mean of the measured data. With the notation of the class documentation, this would multiply by the factors 
This just loops over all RelatedViewgrams.
The default value for the symmetries means that TrivialDataSymmetriesForBins will be used.