STIR
6.2.0
|
A class that reads the listmode data for ECAT scanners. More...
#include "stir/listmode/CListModeDataECAT.h"
Public Member Functions | |
CListModeDataECAT (const std::string &listmode_filename_prefix) | |
Constructor taking a prefix for the filename. More... | |
virtual std::string | get_name () const |
Returns the name of the list mode data. More... | |
virtual shared_ptr< CListRecord > | get_empty_record_sptr () const |
Get a pointer to an empty record. More... | |
virtual Succeeded | get_next_record (CListRecord &record) const |
virtual Succeeded | reset () |
Call this function if you want to re-start reading at the beginning. | |
virtual SavedPosition | save_get_position () |
Save the current reading position. More... | |
virtual Succeeded | set_get_position (const SavedPosition &) |
Set the position for reading to a previously saved point. | |
virtual bool | has_delayeds () const |
returns true , as ECAT listmode data stores delayed events (and prompts) More... | |
Public Member Functions inherited from stir::ListModeData | |
ListModeData () | |
Default constructor. | |
shared_ptr< ListRecord > | get_empty_record_sptr () const |
Get a pointer to an empty record. More... | |
virtual Succeeded | get_next_record (ListRecord &event) const |
Gets the next record in the listmode sequence. | |
const Scanner & | get_scanner () const |
Get reference to scanner. More... | |
virtual unsigned long int | get_total_number_of_events () const |
Returns the total number of events in the listmode file. More... | |
virtual shared_ptr< const ProjDataInfo > | get_proj_data_info_sptr () const |
Public Member Functions inherited from stir::ExamData | |
ExamData () | |
ExamData. More... | |
ExamData (const shared_ptr< const ExamInfo > &_this_exam) | |
virtual const ExamInfo & | get_exam_info () const |
virtual shared_ptr< const ExamInfo > | get_exam_info_sptr () const |
Get shared pointer to exam info. | |
virtual void | set_exam_info (ExamInfo const &) |
change exam info More... | |
void | set_exam_info_sptr (shared_ptr< const ExamInfo > new_exam_info_sptr) |
Additional Inherited Members | |
Public Types inherited from stir::ListModeData | |
typedef ListModeData | hierarchy_base_type |
typedef used by read_from_file | |
typedef unsigned int | SavedPosition |
Use this typedef for save/set_get_position. | |
Protected Member Functions inherited from stir::CListModeData | |
shared_ptr< ListRecord > | get_empty_record_helper_sptr () const override |
Succeeded | get_next (ListRecord &event) const override |
Protected Member Functions inherited from stir::ListModeData | |
virtual void | set_proj_data_info_sptr (shared_ptr< const ProjDataInfo >) |
Protected Attributes inherited from stir::ListModeData | |
shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
Has to be set by the derived class. More... | |
Protected Attributes inherited from stir::ExamData | |
shared_ptr< const ExamInfo > | exam_info_sptr |
A class that reads the listmode data for ECAT scanners.
This file format is currently used by the HR+ and HR++. It stores the coincidence data in multiple .lm files, with a maximum filesize of about 2 GB (to avoid problems with OS limits on filesize). In addition, there is a .sgl file with the singles rate per 'bucket'-per-ring (roughly every 2 seconds). The .sgl also contains a 'main_header' with some scanner and patient info.
stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::CListModeDataECAT | ( | const std::string & | listmode_filename_prefix | ) |
Constructor taking a prefix for the filename.
If the listmode files are called something_1.lm, something_2.lm etc. Then this constructor should be called with the argument "something"
References stir::ProjDataInfo::construct_proj_data_info(), stir::error(), stir::PatientPosition::FFDL, stir::PatientPosition::FFDR, stir::PatientPosition::FFP, stir::PatientPosition::FFS, stir::ecat::ecat7::find_scanner(), stir::PatientPosition::HFDL, stir::PatientPosition::HFDR, stir::PatientPosition::HFP, stir::PatientPosition::HFS, stir::ExamData::set_exam_info(), and stir::warning().
|
virtual |
Returns the name of the list mode data.
This name is not necessarily unique, and might be empty. However, it is expected (but not guaranteed) that ListModeData::read_from_file(lm_data_ptr->get_name())
would read the same list mode data.
The reason this cannot be guaranteed is largely in case the list mode data is not really on disk, but the object corresponds for instance to a Monte Carlo simulator.
Implements stir::ListModeData.
|
virtual |
Get a pointer to an empty record.
This is mainly/only useful to get a record of the correct type, that can then be passed to get_next_record().
Implements stir::CListModeData.
Referenced by stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::set_get_position().
|
virtual |
Implements stir::CListModeData.
Referenced by stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::set_get_position().
|
virtual |
Save the current reading position.
Note that the return value is not related to the number of events already read. In particular, you cannot do any arithmetic on it to skip a few events. This is different from e.g. std::streampos.
Implements stir::ListModeData.
Referenced by stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::set_get_position().
|
inlinevirtual |
returns true
, as ECAT listmode data stores delayed events (and prompts)
Implements stir::CListModeData.