STIR
6.2.0
|
Class for storing and using gamma events from a list mode file. More...
#include "stir/listmode/ListEvent.h"
Public Member Functions | |
virtual bool | is_prompt () const =0 |
virtual LORAs2Points< float > | get_LOR () const =0 |
Finds the LOR between the coordinates where the detection took place. More... | |
virtual void | get_bin (Bin &bin, const ProjDataInfo &) const |
Finds the bin coordinates of this event for some characteristics of the projection data. More... | |
virtual bool | is_valid_template (const ProjDataInfo &) const =0 |
This method checks if the template is valid for LmToProjData. More... | |
Class for storing and using gamma events from a list mode file.
ListEvent is used to provide an interface to the actual events (i.e. detected counts) in the list mode stream.
|
pure virtual |
Finds the LOR between the coordinates where the detection took place.
Obviously, these coordinates are only estimates which depend on the scanner hardware. For example, Depth-of-Interaction might not be taken into account. However, the intention is that this function returns 'likely' positions (e.g. not the face of a crystal, but a point somewhere in the middle).
Coordinates are in mm and in the standard STIR coordinate system used by ProjDataInfo etc (i.e. origin is in the centre of the scanner).
Note that for PET data, this (should) return a "directed" LOR. e.g. if the TOF bin changes sign, the coordinates will swap.
Implemented in stir::CListEventSAFIR< Derived >, stir::CListEventSAFIR< CListRecordSAFIR< DataType > >, stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >, and stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >.
|
virtual |
Finds the bin coordinates of this event for some characteristics of the projection data.
bin.get_bin_value() will be <=0 when the event corresponds to an LOR outside the range of the projection data.
bin.get_bin_value() will be set to a negative value if no such bin can be found.
Currently, bin.get_bin_value() might indicate some weight which can be used for normalisation. This is unlikely to remain the case in future versions.
The default implementation uses get_LOR() and ProjDataInfo::get_bin(). However, a derived class can overload this with a more efficient implementation.
Reimplemented in stir::CListEventSAFIR< Derived >, stir::CListEventSAFIR< CListRecordSAFIR< DataType > >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< CListRecordECAT962 >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< CListEventECAT966 >, stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >, and stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >.
References stir::ProjDataInfo::get_bin().
|
pure virtual |
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.
Implemented in stir::CListEventSAFIR< Derived >, stir::CListEventSAFIR< CListRecordSAFIR< DataType > >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< Derived >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< CListRecordECAT962 >, stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< CListEventECAT966 >, stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoT >, and stir::CListEventScannerWithDiscreteDetectors< ProjDataInfoCylindricalNoArcCorr >.