20 #ifndef __stir_listmode_CListRecordROOT_H__ 21 #define __stir_listmode_CListRecordROOT_H__ 27 #include "boost/static_assert.hpp" 29 #include <boost/cstdint.hpp> 34 class CListEventROOT :
public CListEventCylindricalScannerWithDiscreteDetectors
37 CListEventROOT(
const shared_ptr<const ProjDataInfo>& proj_data_info);
40 void get_detection_position(DetectionPositionPair<>&)
const override;
43 void set_detection_position(
const DetectionPositionPair<>&)
override;
46 void init_from_data(
const int& _ring1,
const int& _ring2,
const int& crystal1,
const int& crystal2,
const double& _delta_time);
48 inline bool is_prompt()
const override {
return true; }
50 double get_delta_time()
const {
return delta_time; }
63 #ifdef STIR_ROOT_ROTATION_AS_V4 64 int quarter_of_detectors;
76 void init_from_data(
double time1) { timeA = time1; }
83 inline Succeeded set_time_in_millisecs(
const unsigned long time_in_millisecs)
override 85 warning(
"set_time_in_millisecs: Not implemented for ROOT files. Aborting.");
101 bool inline is_time()
const override;
103 bool inline is_event()
const override;
105 CListEventROOT& event()
override {
return this->event_data; }
107 const CListEventROOT& event()
const override {
return this->event_data; }
111 const CListTimeROOT& time()
const override {
return this->time_data; }
115 return dynamic_cast<CListRecordROOT const*
>(&e2) != 0 && raw[0] == dynamic_cast<CListRecordROOT const&>(e2).raw[0]
119 CListRecordROOT(
const shared_ptr<const ProjDataInfo>& proj_data_info_sptr)
120 : event_data(proj_data_info_sptr)
128 const double& delta_time,
134 this->event_data.init_from_data(ring1, ring2, crystal1, crystal2, delta_time);
136 this->time_data.init_from_data(time1);
143 return Succeeded::yes;
147 CListEventROOT event_data;
149 boost::int32_t raw[2];
virtual Succeeded init_from_data(const int &ring1, const int &ring2, const int &crystal1, const int &crystal2, const double &time1, const double &delta_time, const int &event1, const int &event2)
Definition: CListRecordROOT.h:123
Declaration of class stir::Succeeded.
A class for storing and using a timing 'event' from a listmode file from the ECAT 8_32bit scanner...
Definition: CListRecordROOT.h:73
unsigned long get_time_in_millisecs() const override
Returns the detection time of the first photon in milliseconds.
Definition: CListRecordROOT.h:82
Class for records in a PET list mode file.
Definition: CListRecord.h:66
Implementation of class stir::InputStreamFromROOTFile.
A class for a general element of a listmode file for a Siemens scanner using the ROOT files...
Definition: CListRecordROOT.h:97
void warning(const char *const s,...)
Print warning with format string a la printf.
Definition: warning.cxx:41
Declaration of the stir::round functions.
Declaration of stir::warning()
Declarations of class stir::CListEventCylindricalScannerWithDiscreteDetectors.
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declarations of classes stir::CListRecord, and stir::CListEvent which are used for list mode data...
A class for storing and using a timing record from a listmode file.
Definition: ListTime.h:46
bool is_time() const
Returns always true.
Definition: CListRecordROOT.h:79
Declaration of class stir::DetectionPositionPair.