STIR
6.2.0
|
Abstract base class for all projector pairs. More...
#include "stir/recon_buildblock/ProjectorByBinPair.h"
Public Member Functions | |
ProjectorByBinPair () | |
Default constructor. | |
virtual Succeeded | set_up (const shared_ptr< const ProjDataInfo > &, const shared_ptr< const DiscretisedDensity< 3, float >> &) |
Stores all necessary geometric info. More... | |
const shared_ptr< ForwardProjectorByBin > | get_forward_projector_sptr () const |
const shared_ptr< BackProjectorByBin > | get_back_projector_sptr () const |
const DataSymmetriesForViewSegmentNumbers * | get_symmetries_used () const |
Provide access to the (minimal) symmetries used by the projectors. More... | |
Public Member Functions inherited from stir::RegisteredObjectBase | |
virtual std::string | get_registered_name () const =0 |
Returns the name of the type of the object. More... | |
Public Member Functions inherited from stir::ParsingObject | |
ParsingObject (const ParsingObject &) | |
ParsingObject & | operator= (const ParsingObject &) |
void | ask_parameters () |
virtual std::string | parameter_info () |
bool | parse (std::istream &f) |
bool | parse (const char *const filename) |
Protected Member Functions | |
virtual void | check (const ProjDataInfo &proj_data_info, const DiscretisedDensity< 3, float > &density_info) const |
check if the argument is the same as what was used for set_up() More... | |
Protected Member Functions inherited from stir::ParsingObject | |
virtual void | set_defaults () |
Set defaults before parsing. | |
virtual void | initialise_keymap () |
Initialise all keywords. | |
virtual bool | post_processing () |
This will be called at the end of the parsing. More... | |
virtual void | set_key_values () |
This will be called before parsing or parameter_info is called. More... | |
Protected Attributes | |
shared_ptr< ForwardProjectorByBin > | forward_projector_sptr |
shared_ptr< BackProjectorByBin > | back_projector_sptr |
bool | _already_set_up |
Protected Attributes inherited from stir::ParsingObject | |
KeyParser | parser |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredObject< ProjectorByBinPair > | |
static ProjectorByBinPair * | 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 ProjectorByBinPair * | 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< ProjectorByBinPair > | |
typedef ProjectorByBinPair *(* | 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. | |
Static Protected Member Functions inherited from stir::RegisteredObject< ProjectorByBinPair > | |
static RegistryType & | registry () |
Static function returning the registry. More... | |
Abstract base class for all projector pairs.
This class is useful for all algorithms which need both a forward and back projector. It's only purpose in that case is to provide the parsing mechanisms, such that the projectors can be defined in a .par file.
|
virtual |
Stores all necessary geometric info.
If necessary, set_up() can be called more than once.
Derived classes can assume that the projectors will be called with input corresponding to the arguments of the last call to set_up().
Reimplemented in stir::ProjectorByBinPairUsingProjMatrixByBin, and stir::ProjectorByBinPairUsingParallelproj.
|
inline |
Provide access to the (minimal) symmetries used by the projectors.
It is expected that the forward and back projector can handle the same symmetries.
|
protectedvirtual |
check if the argument is the same as what was used for set_up()
calls error() if anything is wrong.
If overriding this function in a derived class, you need to call this one.
References stir::error(), and stir::ProjDataInfo::parameter_info().