STIR  6.2.0
Public Member Functions | Protected Member Functions | List of all members
stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT > Class Template Referenceabstract

Class for storing and using a coincidence event from a list mode file for a cylindrical single layer scanner. More...

#include "stir/listmode/CListEventScannerWithDiscreteDetectors.h"

Inheritance diagram for stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >:
Inheritance graph
[legend]

Public Member Functions

 CListEventScannerWithDiscreteDetectors (const shared_ptr< const ProjDataInfo > &proj_data_info)
 
const Scannerget_scanner_ptr () const
 
virtual void get_detection_position (DetectionPositionPair<> &) const =0
 This routine returns the corresponding detector pair.
 
virtual void set_detection_position (const DetectionPositionPair<> &)=0
 This routine sets in a coincidence event from detector "indices".
 
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
 

Protected Member Functions

shared_ptr< const ProjDataInfoT > get_uncompressed_proj_data_info_sptr () const
 

Detailed Description

template<class ProjDataInfoT>
class stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >

Class for storing and using a coincidence event from a list mode file for a cylindrical single layer scanner.

For scanners with discrete detectors, the list mode events usually store detector indices in some way. This class provides access mechanisms to those detection positions, and also provides more efficient implementations of some virtual members of CListEvent.

Member Function Documentation

◆ get_LOR()

template<class ProjDataInfoT >
LORAs2Points< float > stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >::get_LOR ( ) const
inlineoverridevirtual

find LOR between detector pairs

Overrides the default implementation to use get_detection_position() which should be faster.

Implements stir::ListEvent.

◆ get_bin()

template<class ProjDataInfoT >
void stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >::get_bin ( Bin bin,
const ProjDataInfo proj_data_info 
) const
inlineoverridevirtual

find bin for this event

Overrides the default implementation to use get_detection_position() which should be faster.

Warning
This implementation is only valid for proj_data_info of type ProjDataInfoT. However, because of efficiency reasons this is only checked in debug mode (NDEBUG not defined).

Reimplemented from stir::ListEvent.

◆ is_valid_template()

template<class ProjDataInfoT >
bool stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >::is_valid_template ( const ProjDataInfo proj_data_info) const
inlineoverridevirtual

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: