|
STIR 6.4.0
|
A BinNormalisation class that gets the normalisation factors from a ProjData object. More...
#include "stir/recon_buildblock/BinNormalisationFromProjData.h"

Public Member Functions | |
| BinNormalisationFromProjData () | |
| Default constructor. | |
| BinNormalisationFromProjData (const std::string &filename) | |
| Constructor that reads the projdata from a file. | |
| BinNormalisationFromProjData (const shared_ptr< ProjData > &norm_proj_data_ptr) | |
| Constructor that takes the projdata from a shared_pointer. | |
| bool | is_trivial () const override |
| check if we could be multiplying with 1 (i.e. do nothing) | |
| virtual bool | is_TOF_only_norm () const override |
| returns if the object can only handle TOF data | |
| 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. | |
| virtual shared_ptr< ProjData > | get_norm_proj_data_sptr () const |
| Get a shared_ptr to the normalisation proj_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 | |
Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromProjData, 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 |
| 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 ProjData" |
| Name which will be used when parsing a BinNormalisation object. | |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredParsingObject< BinNormalisationFromProjData, 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 the normalisation factors from a ProjData object.
Bin Normalisation From ProjData:= normalisation projdata filename := <ASCII> End Bin Normalisation From ProjData:=
| stir::BinNormalisationFromProjData::BinNormalisationFromProjData | ( | ) |
Default constructor.
References BinNormalisationFromProjData().
Referenced by BinNormalisationFromProjData(), and BinNormalisationFromProjData().
| stir::BinNormalisationFromProjData::BinNormalisationFromProjData | ( | const shared_ptr< ProjData > & | norm_proj_data_ptr | ) |
Constructor that takes the projdata from a shared_pointer.
The projdata object pointed to will not be modified.
|
overridevirtual |
check if we could be multiplying with 1 (i.e. do nothing)
always return false, as the case where the whole ProjData is set to 1 will never occur in "real life", so we save ourselves some time/complications by returning false
Reimplemented from stir::BinNormalisation.
|
overridevirtual |
returns if the object can only handle TOF data
Checks if the underlying "projection data" are TOF or not.
Reimplemented from stir::BinNormalisation.
References stir::error(), and get_norm_proj_data_sptr().
|
overridevirtual |
Checks if we can handle certain projection data.
Compares the ProjDataInfo from the ProjData object containing the normalisation factors with the ProjDataInfo supplied.
Reimplemented from stir::BinNormalisation.
References stir::BinNormalisation::set_up(), and stir::warning().
|
overridevirtual |
Normalise some data.
This means multiply with the data in the projdata object passed in the constructor.
Reimplemented from stir::BinNormalisation.
References stir::BinNormalisation::check(), stir::RelatedViewgrams< elemT >::get_basic_timing_pos_num(), stir::RelatedViewgrams< elemT >::get_basic_view_segment_num(), stir::DataWithProjDataInfo::get_proj_data_info_sptr(), and stir::RelatedViewgrams< elemT >::get_symmetries_ptr().
|
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::BinNormalisation::check(), stir::RelatedViewgrams< elemT >::get_basic_timing_pos_num(), stir::RelatedViewgrams< elemT >::get_basic_view_segment_num(), stir::DataWithProjDataInfo::get_proj_data_info_sptr(), and stir::RelatedViewgrams< elemT >::get_symmetries_ptr().
|
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.