STIR
6.2.0
|
Class for binning list mode data into projection data using the bootstrap procedure. More...
#include "stir/listmode/LmToProjDataBootstrap.h"
Inherits LmToProjDataT.
Public Member Functions | |
LmToProjDataBootstrap (const char *const par_filename) | |
Constructor that parses from a file. | |
LmToProjDataBootstrap (const char *const par_filename, const unsigned int seed) | |
Constructor that parses from a file but with explicit seed. More... | |
Succeeded | set_up () override |
Protected Member Functions | |
void | start_new_time_frame (const unsigned int new_frame_num) override |
will be called when a new time frame starts More... | |
void | get_bin_from_event (Bin &bin, const ListEvent &) const override |
Protected Attributes | |
unsigned int | seed |
used to seed the pseudo-random number generator More... | |
Class for binning list mode data into projection data using the bootstrap procedure.
The bootstrap method allows estimating the variance of an estimator based on a single data-set (magic!). This class can be used to generate multiple equivalent projdata, which can then be reconstructed. The sample variance computed on these images will be an estimate of the variance on the reconstructions.
For list mode data, bootstrapping works by selecting random events from the list mode file with replication (i.e. some events will occur more than once, other events will not occur at all).
There are various papers on the bootstrap method. For PET data, it was for example applied by I. Buvat. (TODO add references)
The pseudo-random number generator used is boost::mt19937 which should be good enough for most purposes. However, it can be easily replaced by any generator that follows the boost conventions.
; an unsigned int (but not 0) to seed the pseudo-random number generator seed := 42 ; default value
This class is templated in terms of a LmToProjDataT to allow it to be used with different derived classes of LmToProjData. After all, the bootstrapping mechanism does not depend on how LmToProjData actually works.
stir::LmToProjDataBootstrap< LmToProjDataT >::LmToProjDataBootstrap | ( | const char *const | par_filename, |
const unsigned int | seed | ||
) |
Constructor that parses from a file but with explicit seed.
The seed argument will override any value found in the par file
References stir::error(), and stir::warning().
|
overrideprotected |
will be called when a new time frame starts
Initialises a vector with the number of times each event has to be replicated
References stir::Bin::axial_pos_num(), stir::Bin::get_bin_value(), stir::info(), stir::SegmentIndices::segment_num(), stir::Bin::set_bin_value(), stir::Bin::tangential_pos_num(), stir::ViewgramIndices::view_num(), and stir::warning().
|
protected |
used to seed the pseudo-random number generator
should be non-zero