STIR  6.2.0
Public Member Functions | List of all members
stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived > Class Template Reference

Helper class for listmode events when using 2d sinograms and ring-pairs is most efficient. More...

#include "stir/listmode/CListEventCylindricalScannerWithViewTangRingRingEncoding.h"

Inheritance diagram for stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >:
Inheritance graph
[legend]

Public Member Functions

 CListEventCylindricalScannerWithViewTangRingRingEncoding (const shared_ptr< ProjDataInfo > &proj_data_info)
 
void get_detection_position (DetectionPositionPair<> &) const
 This routine returns the corresponding detector pair.
 
void set_detection_position (const DetectionPositionPair<> &)
 
virtual void get_bin (Bin &, const ProjDataInfo &) const
 warning only ProjDataInfoCylindricalNoArcCorr
 
virtual bool is_valid_template (const ProjDataInfo &) const
 This method checks if the template is valid for LmToProjData. More...
 
- Public Member Functions inherited from stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >
 CListEventScannerWithDiscreteDetectors (const shared_ptr< const ProjDataInfo > &proj_data_info)
 
const Scannerget_scanner_ptr () const
 
LORAs2Points< float > get_LOR () const override
 find LOR between detector pairs More...
 
void get_bin (Bin &bin, const ProjDataInfo &proj_data_info) const override
 find bin for this event More...
 
bool is_valid_template (const ProjDataInfo &) const override
 This method checks if the template is valid for LmToProjData. More...
 
- Public Member Functions inherited from stir::CListEvent
virtual Succeeded set_prompt (const bool prompt=true)
 Changes the event from prompt to delayed or vice versa. More...
 
- Public Member Functions inherited from stir::ListEvent
virtual bool is_prompt () const =0
 

Additional Inherited Members

- Protected Member Functions inherited from stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >
shared_ptr< const ProjDataInfoCylindricalNoArcCorrget_uncompressed_proj_data_info_sptr () const
 

Detailed Description

template<class Derived>
class stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >

Helper class for listmode events when using 2d sinograms and ring-pairs is most efficient.

This class simplifies coding of a CListEventCylindricalScannerWithDiscreteDetectors class in case the coordinates are stored in the raw data as view_num, tangential_pos_num, ring_a and ring_b.

The default implementations for get_detection_position() etc are somewhat inefficient in such case. This helper class provides faster implementations. For example usage, see ecat::ecat7::CListEventECAT966, but it's intended to be used as follows

class myEventClass : public CListEventCylindricalScannerWithDiscreteDetectors<myEventClass>
{
public:
someType get_data();
// etc
};

This implementation of this class relies on someType providing the following functions

class someType
{
void get_sinogram_and_ring_coordinates(int& view, int& tangential_pos_num, unsigned int& ring_a, unsigned int& ring_b) const;
void set_sinogram_and_ring_coordinates(
const int view_num, const int tangential_pos_num,
const int ring_a, const int ring_b);
// etc
};

Member Function Documentation

◆ set_detection_position()

template<class Derived >
void stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >::set_detection_position ( const DetectionPositionPair<> &  det_pos)
inlinevirtual

This routine constructs a (prompt) coincidence event

Implements stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >.

◆ is_valid_template()

template<class Derived >
bool stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >::is_valid_template ( const ProjDataInfo proj_data_info) const
inlinevirtual

This method checks if the template is valid for LmToProjData.

Used before the actual processing of the data (see issue #61), before calling get_bin() Most scanners have listmode data that correspond to non arc-corrected data and this check avoids a crash when an unsupported template is used as input.

Implements stir::ListEvent.


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