STIR  6.2.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
stir::SinglesRatesForTimeSlices Class Reference

A class for singles that are recorded at equal time intervals. More...

#include "stir/data/SinglesRatesForTimeSlices.h"

Inheritance diagram for stir::SinglesRatesForTimeSlices:
Inheritance graph
[legend]

Public Member Functions

 SinglesRatesForTimeSlices ()
 Default constructor.
 
float get_singles (const int singles_bin_index, const double start_time, const double end_time) const override
 Get the number of singles for a particular singles unit and a frame with the specified start and end times. More...
 
FrameSinglesRates STIR_DEPRECATED get_rates_for_frame (double start_time, double end_time) const
 Generate a FramesSinglesRate - containing the average rates.
 
virtual int get_end_time_slice_index (double t) const
 
virtual int get_start_time_slice_index (double t) const
 
void set_singles (int singles_bin_index, int time_slice, int new_singles)
 Set a singles by singles bin index and time slice.
 
int rebin (std::vector< double > &new_end_times)
 Rebin the sgl slices into a different set of consecutive slices.
 
std::vector< double > get_times () const
 Get the vector of time values for each time slice index.
 
int get_num_time_slices () const
 Return the number of time slices.
 
double get_singles_time_interval () const
 Return the time interval per slice of singles data.
 
TimeFrameDefinitions get_time_frame_definitions () const
 return time-intervals for every slice
 
- Public Member Functions inherited from stir::SinglesRates
virtual float get_singles_rate (const int singles_bin_index, const double start_time, const double end_time) const
 Get the (average) singles rate for a particular singles unit and a frame with the specified start and end times. More...
 
virtual float get_singles_rate (const DetectionPosition<> &det_pos, const double start_time, const double end_time) const
 Virtual function that returns the average singles rate given the detection positions and time-interval of detection. More...
 
virtual float get_singles (const DetectionPosition<> &det_pos, const double start_time, const double end_time) const
 Virtual function that returns the number of singles given the detection positions and time-interval of detection. More...
 
const Scannerget_scanner_ptr () const
 Get the scanner pointer.
 
- Public Member Functions inherited from stir::RegisteredObjectBase
virtual std::string get_registered_name () const =0
 Returns the name of the type of the object. More...
 
- Public Member Functions inherited from stir::ParsingObject
 ParsingObject (const ParsingObject &)
 
ParsingObjectoperator= (const ParsingObject &)
 
void ask_parameters ()
 
virtual std::string parameter_info ()
 
bool parse (std::istream &f)
 
bool parse (const char *const filename)
 

Protected Member Functions

void set_time_interval ()
 Calculate and set _singles_time_interval from _times.
 
double get_slice_start_time (int slice_index) const
 get slice start time.
 
- Protected Member Functions inherited from stir::ParsingObject
virtual void set_defaults ()
 Set defaults before parsing.
 
virtual void initialise_keymap ()
 Initialise all keywords.
 
virtual bool post_processing ()
 This will be called at the end of the parsing. More...
 
virtual void set_key_values ()
 This will be called before parsing or parameter_info is called. More...
 

Protected Attributes

Array< 2, int > _singles
 total singles per time slice and singles-bin More...
 
std::vector< double > _times
 end times of each time slice (in secs) More...
 
int _num_time_slices
 
double _singles_time_interval
 time interval in secs More...
 
- Protected Attributes inherited from stir::SinglesRates
shared_ptr< Scannerscanner_sptr
 Generate a FramesSinglesRate - containing the average rates.
 
- Protected Attributes inherited from stir::ParsingObject
KeyParser parser
 

Additional Inherited Members

- Static Public Member Functions inherited from stir::RegisteredObject< SinglesRates >
static SinglesRatesread_registered_object (std::istream *in, const std::string &registered_name)
 Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream. More...
 
static SinglesRatesask_type_and_parameters ()
 ask the user for the type, and then calls read_registered_object(0, type) More...
 
static void list_registered_names (std::ostream &stream)
 List all possible registered names to the stream. More...
 
- Protected Types inherited from stir::RegisteredObject< SinglesRates >
typedef SinglesRates *(* RootFactory) (std::istream *)
 The type of a root factory is a function, taking an istream* as argument, and returning a Root*.
 
typedef FactoryRegistry< std::string, RootFactory, interfile_lessRegistryType
 The type of the registry.
 
- Static Protected Member Functions inherited from stir::RegisteredObject< SinglesRates >
static RegistryTyperegistry ()
 Static function returning the registry. More...
 

Detailed Description

A class for singles that are recorded at equal time intervals.

Member Function Documentation

◆ get_singles()

float stir::SinglesRatesForTimeSlices::get_singles ( const int  singles_bin_index,
const double  start_time,
const double  end_time 
) const
overridevirtual

Get the number of singles for a particular singles unit and a frame with the specified start and end times.

The behaviour of this function is specified by the derived classes.

Warning
Currently might return -1 if the start_time, end_time are invalid (e.g. out of the measured range).

Implements stir::SinglesRates.

References stir::error().

Member Data Documentation

◆ _singles

Array<2, int> stir::SinglesRatesForTimeSlices::_singles
protected

total singles per time slice and singles-bin

Indexed by time slice and singles bin index.

◆ _times

std::vector<double> stir::SinglesRatesForTimeSlices::_times
protected

end times of each time slice (in secs)

expected to use equidistant sampling

◆ _singles_time_interval

double stir::SinglesRatesForTimeSlices::_singles_time_interval
protected

time interval in secs

Warning
A value of zero for _singles_time_interval indicates that the time slices are of different lengths. However, some of the code probably doesn't check for this.

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