CASToR
1.1
Tomographic Reconstruction (PET/SPECT)
|
This file gathers various function dedicated to data conversion in order to convert various type of GATE files (macro file, root datafile) to the CASToR file formats. More...
#include "gVariables.hh"
#include "gOptions.hh"
#include "iDataFilePET.hh"
#include "sOutputManager.hh"
#include "sScannerManager.hh"
#include "oInterfileIO.hh"
Go to the source code of this file.
Macros | |
#define | GATE_SYS_UNKNOWN -1 |
#define | GATE_SYS_CYLINDRICAL 0 |
#define | GATE_SYS_ECAT 1 |
#define | GATE_SYS_SPECT 2 |
#define | GATE_NB_MAX_LAYERS 4 |
Functions | |
vector< string > | CheckGATECommand (const string &a_key, const string &a_line) |
Check if the line contains the provided GATE command. In this case, parse the line and returns the values in a vector of strings. More... | |
vector< string > | Split (string a_line) |
Split the line provided in parameter into a vector of strings (separator is blankspace) More... | |
void | ConvertValuesTomm (vector< string > &values) |
Check if the vector of strings passed in parameter contains the 'cm' unit In this case, convert all its values in mm. More... | |
template<class T > | |
string | toString (T a_val) |
Convert a value of any type into string. More... | |
template<typename T > | |
int | WriteVector (ofstream &file, const string &a_key, vector< T > a_vals) |
Write the key and its values in the file provided in parameter. More... | |
int | WriteVector (ofstream &file, const string &a_key, vector< string > a_vals) |
Write the key and its values in the file provided in parameter. More... | |
int | WriteVector (ofstream &file, const string &a_key, vector< vector< string > > a_vals) |
Write the key and its values contained in a 2 level vector of strings in the file provided in parameter. More... | |
int | GetGATESystemType (const string &a_pathMac) |
Read a GATE macro file and identify the system type from the 'gate/systems/' command lines. More... | |
int | GetGATEMacFiles (const string &a_pathMac, vector< string > &ap_pathToMacFiles) |
Extract the paths to each macro file contained in the main macro file. More... | |
int | GetGATEAliasesCylindrical (vector< string > path_mac_files, string &rsector_name, string &module_name, string &submodule_name, string &crystal_name, vector< string > &layers_name, int vb) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of a cylindricalPET. More... | |
int | GetGATEAliasesEcat (vector< string > path_mac_files, string &block_name, string &crystal_name, int vb) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of an ecat system. More... | |
int | GetGATEAliasesSPECT (vector< string > path_mac_files, string &base_name, string &crystal_name, string &pixel_name, int vb) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of an ecat system. More... | |
uint32_t | ConvertIDecat (int32_t nBlocksPerRing, int32_t nBlocksLine, int32_t nCrystalsTransaxial, int32_t nCrystalsAxial, int32_t crystalID, int32_t blockID) |
Compute a CASToR crystal index of a GATE ecat system from its indexes (block/crystal) and the system layout. More... | |
uint32_t | ConvertIDSPECTRoot1 (int32_t a_headID, float_t a_rotAngle, float_t a_angStep, uint32_t a_nProjectionsByHead) |
Compute a CASToR projection index of a GATE SPECThead system. More... | |
uint32_t | ConvertIDSPECTRoot2 (uint32_t a_nbSimulatedPixels, uint32_t a_nPixTrs, uint32_t a_nPixAxl, int32_t a_headID, int32_t a_crystalID, int32_t a_pixelID, float_t a_rotAngle, float_t a_headAngPitch, float_t a_crystalSizeAxl, float_t a_crystalSizeTrs, float_t a_gPosX, float_t a_gPosY, float_t a_gPosZ) |
Compute a CASToR crystal index of a GATE SPECThead system. More... | |
uint32_t | ConvertIDcylindrical (uint32_t nRsectorsPerRing, uint32_t nModulesTransaxial, uint32_t nModulesAxial, uint32_t nSubmodulesTransaxial, uint32_t nSubmodulesAxial, uint32_t nCrystalsTransaxial, uint32_t nCrystalsAxial, uint8_t nLayers, uint32_t *nCrystalPerLayer, vector< uint32_t > nLayersRptTransaxial, vector< uint32_t > nLayersRptAxial, int32_t layerID, int32_t crystalID, int32_t submoduleID, int32_t moduleID, int32_t rsectorID) |
Compute a CASToR crystal index of a GATE cylindricalPET system from its indexes (rsector/module/submodule/crystal) and the system layout. More... | |
int | ComputeKindGATEEvent (uint32_t eventID1, uint32_t eventID2, int comptonPhantom1, int comptonPhantom2, int rayleighPhantom1, int rayleighPhantom2) |
Determine kind of a given coincidence event, from its attributes. More... | |
int | ReadMacECAT (string a_pathMac, uint32_t &nCrystalsTot, uint32_t &nCrystalsAxial, uint32_t &nCrystalsTransaxial, uint32_t &nBlocksLine, uint32_t &nBlocksPerRing, uint32_t &start_time_ms, uint32_t &duration_ms, int vb) |
Recover informations about the scanner element of an ECAT system and acquisition duration, from a GATE macro file. More... | |
int | ReadMacSPECT (string a_pathMac, float_t &distToDetector, uint32_t &nHeads, uint32_t &nPixAxl, uint32_t &nPixTrs, float_t &crystalSizeAxl, float_t &crystalSizeTrs, uint32_t &nProjectionsTot, uint32_t &nProjectionsByHead, float_t &head1stAngle, float_t &headAngPitch, float_t &headAngStepDeg, int &headRotDirection, uint32_t &start_time_ms, uint32_t &duration_ms, int vb) |
Recover informations about the scanner element of an ECAT system, and acquisition duration, from a GATE macro file. More... | |
int | ReadIntfSPECT (string a_pathIntf, float_t &ap_distToDetector, uint32_t &ap_nHeads, uint32_t &ap_nPixAxl, uint32_t &ap_nPixTrs, float_t &ap_crystalSizeAxl, float_t &ap_crystalSizeTrs, uint32_t &ap_nProjectionsTot, uint32_t &ap_nProjectionsByHead, float_t &ap_head1stAngle, float_t &ap_headAngPitch, float_t &headAngStepDeg, int &ap_headRotDirection, uint32_t &ap_start_time_ms, uint32_t &ap_duration_ms, int vb) |
Recover informations about the scanner element of an ECAT system, and acquisition duration, from a GATE macro file. More... | |
int | ReadMacCylindrical (string a_pathMac, uint8_t &nLayers, uint32_t *nb_crystal_per_layer, uint32_t &nCrystalsTot, uint32_t &nCrystalsAxial, uint32_t &nCrystalsTransaxial, vector< uint32_t > &nLayersRptAxial, vector< uint32_t > &nLayersRptTransaxial, uint32_t &nSubmodulesAxial, uint32_t &nSubmodulesTransaxial, uint32_t &nModulesAxial, uint32_t &nModulesTransaxial, uint32_t &nRsectorsPerRing, uint32_t &start_time_ms, uint32_t &duration_ms, int vb) |
Recover informations about the scanner element of a cylindricalPET system and acquisition duration, from a GATE macro file. More... | |
int | CreateGeomWithECAT (string a_pathMac, string a_pathGeom) |
Read a GATE macro file containing the description of an ecat system, and convert it to a geom file. More... | |
int | CreateGeomWithCylindrical (string a_pathMac, string a_pathGeom) |
Read a GATE macro file containing the description of a cylindricalPET system, and convert it to a geom file. More... | |
int | CreateGeomWithSPECT (string a_pathMac, string a_pathGeom) |
Read a GATE macro file containing the description of a SPECThead system, and convert it to a geom file. More... | |
This file gathers various function dedicated to data conversion in order to convert various type of GATE files (macro file, root datafile) to the CASToR file formats.
Definition in file gDataConversionUtilities.hh.
#define GATE_NB_MAX_LAYERS 4 |
Definition at line 50 of file gDataConversionUtilities.hh.
CheckGATECommand | ( | const string & | a_key, |
const string & | a_line | ||
) |
Check if the line contains the provided GATE command. In this case, parse the line and returns the values in a vector of strings.
a_key | string containing a GATE command to recover |
a_line | : string containing the line to check |
Values are converted in mm if 'cm' is found in the line
Definition at line 41 of file gDataConversionUtilities.cc.
ComputeKindGATEEvent | ( | uint32_t | eventID1, |
uint32_t | eventID2, | ||
int | comptonPhantom1, | ||
int | comptonPhantom2, | ||
int | rayleighPhantom1, | ||
int | rayleighPhantom2 | ||
) |
Determine kind of a given coincidence event, from its attributes.
eventID1 | |
eventID2 | |
comptonPhantom1 | |
comptonPhantom2 | |
rayleighPhantom1 | |
rayleighPhantom2 |
Definition at line 943 of file gDataConversionUtilities.cc.
ConvertIDcylindrical | ( | uint32_t | nRsectorsPerRing, |
uint32_t | nModulesTransaxial, | ||
uint32_t | nModulesAxial, | ||
uint32_t | nSubmodulesTransaxial, | ||
uint32_t | nSubmodulesAxial, | ||
uint32_t | nCrystalsTransaxial, | ||
uint32_t | nCrystalsAxial, | ||
uint8_t | nLayers, | ||
uint32_t * | nCrystalPerLayer, | ||
vector< uint32_t > | nLayersRptTransaxial, | ||
vector< uint32_t > | nLayersRptAxial, | ||
int32_t | layerID, | ||
int32_t | crystalID, | ||
int32_t | submoduleID, | ||
int32_t | moduleID, | ||
int32_t | rsectorID | ||
) |
Compute a CASToR crystal index of a GATE cylindricalPET system from its indexes (rsector/module/submodule/crystal) and the system layout.
nRsectorsPerRing | |
nModulesTransaxial | |
nModulesAxial | |
nSubmodulesTransaxial | |
nSubmodulesAxial | |
nCrystalsTransaxial | |
nCrystalsAxial | |
nLayers | |
nb_crystal_per_layer | |
nLayersRptTransaxial | |
nLayersRptAxial | |
layerID | |
crystalID | |
submoduleID | |
moduleID | |
rsectorID |
Definition at line 832 of file gDataConversionUtilities.cc.
ConvertIDecat | ( | int32_t | nBlocksPerRing, |
int32_t | nBlocksLine, | ||
int32_t | nCrystalsTransaxial, | ||
int32_t | nCrystalsAxial, | ||
int32_t | crystalID, | ||
int32_t | blockID | ||
) |
Compute a CASToR crystal index of a GATE ecat system from its indexes (block/crystal) and the system layout.
nBlocksPerRing | |
nBlocksLine | |
nCrystalsTransaxial | |
nCrystalsAxial | |
crystalID | |
blockID |
Definition at line 672 of file gDataConversionUtilities.cc.
ConvertIDSPECTRoot1 | ( | int32_t | a_headID, |
float_t | a_rotAngle, | ||
float_t | a_angStep, | ||
uint32_t | a_nProjectionsByHead | ||
) |
Compute a CASToR projection index of a GATE SPECThead system.
a_headID | : head index as provided in the root file |
a_rotAngle | : rotation angle (deg) as provided in the root file |
a_angStep | : angular step (deg) computed from the macro file |
a_nProjectionsByHead | : total number of projections for each head |
Definition at line 706 of file gDataConversionUtilities.cc.
ConvertIDSPECTRoot2 | ( | uint32_t | a_nbSimulatedPixels, |
uint32_t | a_nPixTrs, | ||
uint32_t | a_nPixAxl, | ||
int32_t | a_headID, | ||
int32_t | a_crystalID, | ||
int32_t | a_pixelID, | ||
float_t | a_rotAngle, | ||
float_t | a_headAngPitch, | ||
float_t | a_crystalSizeAxl, | ||
float_t | a_crystalSizeTrs, | ||
float_t | a_gPosX, | ||
float_t | a_gPosY, | ||
float_t | a_gPosZ | ||
) |
Compute a CASToR crystal index of a GATE SPECThead system.
a_nbSimulatedPixels | |
a_nPixTrs | |
a_nPixAxl | |
a_headID | |
a_crystalID | |
a_pixelID | |
a_rotAngle | |
a_headAngPitch | |
a_crystalSizeAxl | |
a_crystalSizeTrs | |
a_gPosX | |
a_gPosY | |
a_gPosZ |
Definition at line 745 of file gDataConversionUtilities.cc.
ConvertValuesTomm | ( | vector< string > & | values | ) |
Check if the vector of strings passed in parameter contains the 'cm' unit In this case, convert all its values in mm.
ap_v | : vector of strings |
Definition at line 101 of file gDataConversionUtilities.cc.
CreateGeomWithCylindrical | ( | string | a_pathMac, |
string | a_pathGeom | ||
) |
Read a GATE macro file containing the description of a cylindricalPET system, and convert it to a geom file.
a_pathMac | : string containing the path to a GATE macro file |
a_pathGeom | : string containing the path to a CASToR output geom file |
Definition at line 2285 of file gDataConversionUtilities.cc.
CreateGeomWithECAT | ( | string | a_pathMac, |
string | a_pathGeom | ||
) |
Read a GATE macro file containing the description of an ecat system, and convert it to a geom file.
a_pathMac | : string containing the path to a GATE macro file |
a_pathGeom | : string containing the path to a CASToR output geom file |
Definition at line 3341 of file gDataConversionUtilities.cc.
CreateGeomWithSPECT | ( | string | a_pathMac, |
string | a_pathGeom | ||
) |
Read a GATE macro file containing the description of a SPECThead system, and convert it to a geom file.
a_pathMac | : string containing the path to a GATE macro file |
a_pathGeom | : string containing the path to a CASToR output geom file |
Definition at line 3835 of file gDataConversionUtilities.cc.
GetGATEAliasesCylindrical | ( | vector< string > | path_mac_files, |
string & | rsector_name, | ||
string & | module_name, | ||
string & | submodule_name, | ||
string & | crystal_name, | ||
vector< string > & | layers_name, | ||
int | vb | ||
) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of a cylindricalPET.
path_mac_files | |
rsector_name | |
module_name | |
submodule_name | |
crystal_name | |
layers_name |
Definition at line 362 of file gDataConversionUtilities.cc.
GetGATEAliasesEcat | ( | vector< string > | path_mac_files, |
string & | block_name, | ||
string & | crystal_name, | ||
int | vb | ||
) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of an ecat system.
path_mac_files | |
block_name | |
crystal_name | |
vb |
Definition at line 502 of file gDataConversionUtilities.cc.
GetGATEAliasesSPECT | ( | vector< string > | path_mac_files, |
string & | base_name, | ||
string & | crystal_name, | ||
string & | pixel_name, | ||
int | vb | ||
) |
Loop over a list of path to GATE macro files passed in parameter to recover aliases of the different parts of an ecat system.
path_mac_files | |
base_name | |
crystal_name | |
pixel_name | |
vb |
Definition at line 586 of file gDataConversionUtilities.cc.
GetGATEMacFiles | ( | const string & | a_pathMac, |
vector< string > & | ap_pathToMacFiles | ||
) |
Extract the paths to each macro file contained in the main macro file.
a_pathMac | : path to a GATE main macro file |
ap_pathToMacFiles | : array containing the paths of macro files |
Definition at line 232 of file gDataConversionUtilities.cc.
GetGATESystemType | ( | const string & | a_pathMac | ) |
Read a GATE macro file and identify the system type from the 'gate/systems/' command lines.
a_pathMac | : path to a GATE macro file |
Definition at line 273 of file gDataConversionUtilities.cc.
ReadIntfSPECT | ( | string | a_pathIntf, |
float_t & | ap_distToDetector, | ||
uint32_t & | ap_nHeads, | ||
uint32_t & | ap_nPixAxl, | ||
uint32_t & | ap_nPixTrs, | ||
float_t & | ap_crystalSizeAxl, | ||
float_t & | ap_crystalSizeTrs, | ||
uint32_t & | ap_nProjectionsTot, | ||
uint32_t & | ap_nProjectionsByHead, | ||
float_t & | ap_head1stAngle, | ||
float_t & | ap_headAngPitch, | ||
float_t & | headAngStepDeg, | ||
int & | ap_headRotDirection, | ||
uint32_t & | ap_start_time_ms, | ||
uint32_t & | ap_duration_ms, | ||
int | vb | ||
) |
Recover informations about the scanner element of an ECAT system, and acquisition duration, from a GATE macro file.
a_pathIntf | : path to the interfile header |
distToDetector | : distance between center of rotation and detector surface |
nHeads | : nb of cameras |
nPixAxl | : nb of transaxial pixels |
nPixTrs | : nb of axial pixels |
crystalSizeAxl | : crystal axial dimension |
crystalSizeTrs | : crystal transaxial dimension |
head1stAngle | : head first angle |
headAngPitch | : angular pitch between heads |
headRotSpeed | : angle between projection |
headRotDirection | : rotation direction of the head (CW or CCW) |
start_time_ms | : acquisition start time converted in ms |
duration_ms | : acquisition duration converted in ms |
Intf_fiels | : Interfile key structure to initialize with projection image parameters |
vb | : verbosity |
Definition at line 2055 of file gDataConversionUtilities.cc.
ReadMacCylindrical | ( | string | a_pathMac, |
uint8_t & | nLayers, | ||
uint32_t * | nb_crystal_per_layer, | ||
uint32_t & | nCrystalsTot, | ||
uint32_t & | nCrystalsAxial, | ||
uint32_t & | nCrystalsTransaxial, | ||
vector< uint32_t > & | nLayersRptAxial, | ||
vector< uint32_t > & | nLayersRptTransaxial, | ||
uint32_t & | nSubmodulesAxial, | ||
uint32_t & | nSubmodulesTransaxial, | ||
uint32_t & | nModulesAxial, | ||
uint32_t & | nModulesTransaxial, | ||
uint32_t & | nRsectorsPerRing, | ||
uint32_t & | start_time_ms, | ||
uint32_t & | duration_ms, | ||
int | vb | ||
) |
Recover informations about the scanner element of a cylindricalPET system and acquisition duration, from a GATE macro file.
a_pathMac | : path to a main macro file |
nLayers | : nb of crystal layers |
nCrystalsAxial | : nb of axial crystals (in a submodule) |
nCrystalsTransaxial | : nb of transaxial crystals (in a submodule) |
nCrystalLayersAxial | : Array containing the number of axial crystals in each layer |
nCrystalLayersTransaxial | : Array containing the number of transaxial crystals in each layer |
nSubmodulesAxial | : nb of axial submodules (in a module) |
nSubmodulesTransaxial | : nb of transaxial submodules (in a module) |
nModulesAxial | : nb of axial modules (in a rsector) |
nModulesTransaxial | : nb of transaxial modules (in a rsector) |
nRsectorsPerRing | : nb of rsectors per ring |
start_time_ms | : acquisition start time converted in ms |
duration_ms | : acquisition duration converted in ms |
vb | : verbosity |
Definition at line 997 of file gDataConversionUtilities.cc.
ReadMacECAT | ( | string | a_pathMac, |
uint32_t & | nCrystalsTot, | ||
uint32_t & | nCrystalsAxial, | ||
uint32_t & | nCrystalsTransaxial, | ||
uint32_t & | nBlocksLine, | ||
uint32_t & | nBlocksPerRing, | ||
uint32_t & | start_time_ms, | ||
uint32_t & | duration_ms, | ||
int | vb | ||
) |
Recover informations about the scanner element of an ECAT system and acquisition duration, from a GATE macro file.
a_pathMac | : path to a main macro file |
nCrystalsAxial | : nb of axial crystals |
nCrystalsTransaxial | : nb of transaxial crystals |
nBlocksLine | : nb of axial blocks |
nBlocksPerRing | : nb of blocks per ring |
start_time_ms | : acquisition start time converted in ms |
duration_ms | : acquisition duration converted in ms |
vb | : verbosity |
Definition at line 1419 of file gDataConversionUtilities.cc.
ReadMacSPECT | ( | string | a_pathMac, |
float_t & | distToDetector, | ||
uint32_t & | nHeads, | ||
uint32_t & | nPixAxl, | ||
uint32_t & | nPixTrs, | ||
float_t & | crystalSizeAxl, | ||
float_t & | crystalSizeTrs, | ||
uint32_t & | nProjectionsTot, | ||
uint32_t & | nProjectionsByHead, | ||
float_t & | head1stAngle, | ||
float_t & | headAngPitch, | ||
float_t & | headAngStepDeg, | ||
int & | headRotDirection, | ||
uint32_t & | start_time_ms, | ||
uint32_t & | duration_ms, | ||
int | vb | ||
) |
Recover informations about the scanner element of an ECAT system, and acquisition duration, from a GATE macro file.
a_pathMac | : path to a macro file |
distToDetector | : distance between center of rotation and detector surface |
nHeads | : nb of cameras |
nPixAxl | : nb of transaxial pixels |
nPixTrs | : nb of axial pixels |
crystalSizeAxl | : crystal axial dimension |
crystalSizeTrs | : crystal transaxial dimension |
nProjectionsTot | : total number of projections (cumulated over each head) |
nProjectionsByHead | : total number of projections for each head |
head1stAngle | : head first angle |
headAngPitch | : angular pitch between heads |
headAngStepDeg | : angular step between each projection |
headRotDirection | : rotation direction of the head (CW or CCW) |
start_time_ms | : acquisition start time converted in ms |
duration_ms | : acquisition duration converted in ms |
vb | : verbosity |
Definition at line 1656 of file gDataConversionUtilities.cc.
Split | ( | string | a_line | ) |
Split the line provided in parameter into a vector of strings (separator is blankspace)
a_line | : string to split |
Definition at line 76 of file gDataConversionUtilities.cc.
toString | ( | T | a_val | ) |
Convert a value of any type into string.
a_val | : value to convert |
Definition at line 89 of file gDataConversionUtilities.hh.
WriteVector | ( | ofstream & | file, |
const string & | a_key, | ||
vector< T > | a_vals | ||
) |
Write the key and its values in the file provided in parameter.
file | : the output file |
a_key | : key to write |
a_vals | : vector containing the key values |
Definition at line 130 of file gDataConversionUtilities.cc.
WriteVector | ( | ofstream & | file, |
const string & | a_key, | ||
vector< string > | a_vals | ||
) |
Write the key and its values in the file provided in parameter.
file | : the output file |
a_key | : key to write |
a_vals | : vector containing the key values |
Definition at line 169 of file gDataConversionUtilities.cc.
WriteVector | ( | ofstream & | file, |
const string & | a_key, | ||
vector< vector< string > > | a_vals | ||
) |
Write the key and its values contained in a 2 level vector of strings in the file provided in parameter.
file | : the output file |
a_key | : key to write |
a_vals | : vector containing the key values |
Definition at line 204 of file gDataConversionUtilities.cc.