CASToR
2.0
Tomographic Reconstruction (PET/SPECT/CT)
|
Implementation of class gDataConversionUtilities functions. More...
Go to the source code of this file.
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 > &ap_v) |
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 > | |
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... | |
template int | WriteVector (ofstream &file, const string &a_key, vector< double > a_vals) |
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 | GetGATEMacFiles (const string &a_pathMac, vector< string > &ap_pathToMacFiles) |
Extract the paths to each macro file contained in the main macro file. 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 | 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 nRsectorsAngPos, uint32_t nRsectorsAxial, int a_rsectorIdOrder, 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 | 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 &nRsectorsAxial, uint32_t &nRsectorsAngPos, int &rsector_id_order, 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 | 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 &a_distToDetector, uint32_t &a_nHeads, uint32_t &a_nPixAxl, uint32_t &a_nPixTrs, float_t &a_crystalSizeAxl, float_t &a_crystalSizeTrs, uint32_t &a_nProjectionsTot, uint32_t &a_nProjectionsByHead, float_t &a_head1stAngle, float_t &a_headAngPitch, float_t &a_headAngStepDeg, int &a_headRotDirection, uint32_t &a_start_time_ms, uint32_t &a_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 &a_distToDetector, uint32_t &a_nHeads, uint32_t &a_nPixAxl, uint32_t &a_nPixTrs, float_t &a_crystalSizeAxl, float_t &a_crystalSizeTrs, uint32_t &a_nProjectionsTot, uint32_t &a_nProjectionsByHead, float_t &a_head1stAngle, float_t &a_headAngPitchDeg, float_t &a_headAngStepDeg, int &a_headRotDirection, uint32_t &a_start_time_ms, uint32_t &a_duration_ms, int vb) |
Recover informations about the scanner element of an ECAT system, and acquisition duration, from a GATE macro 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 | 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 | 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... | |
Implementation of class gDataConversionUtilities functions.
Definition in file gDataConversionUtilities.cc.
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.
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 53 of file gDataConversionUtilities.cc.
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.
eventID1 | |
eventID2 | |
comptonPhantom1 | |
comptonPhantom2 | |
rayleighPhantom1 | |
rayleighPhantom2 |
Definition at line 995 of file gDataConversionUtilities.cc.
uint32_t ConvertIDcylindrical | ( | uint32_t | nRsectorsAngPos, |
uint32_t | nRsectorsAxial, | ||
int | a_rsectorIdOrder, | ||
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.
nRsectorsAngPos | |
nRsectorsAxial | |
a_rsectorIdOrder | |
nModulesTransaxial | |
nModulesAxial | |
nSubmodulesTransaxial | |
nSubmodulesAxial | |
nCrystalsTransaxial | |
nCrystalsAxial | |
nLayers | |
nb_crystal_per_layer | |
nLayersRptTransaxial | |
nLayersRptAxial | |
layerID | |
crystalID | |
submoduleID | |
moduleID | |
rsectorID |
Definition at line 845 of file gDataConversionUtilities.cc.
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.
nBlocksPerRing | |
nBlocksLine | |
nCrystalsTransaxial | |
nCrystalsAxial | |
crystalID | |
blockID |
Definition at line 684 of file gDataConversionUtilities.cc.
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.
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 718 of file gDataConversionUtilities.cc.
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.
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 757 of file gDataConversionUtilities.cc.
void ConvertValuesTomm | ( | vector< string > & | ap_v | ) |
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 113 of file gDataConversionUtilities.cc.
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.
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 2378 of file gDataConversionUtilities.cc.
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.
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 3592 of file gDataConversionUtilities.cc.
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.
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 4078 of file gDataConversionUtilities.cc.
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.
path_mac_files | |
rsector_name | |
module_name | |
submodule_name | |
crystal_name | |
layers_name |
Definition at line 374 of file gDataConversionUtilities.cc.
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.
path_mac_files | |
block_name | |
crystal_name | |
vb |
Definition at line 514 of file gDataConversionUtilities.cc.
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.
path_mac_files | |
base_name | |
crystal_name | |
pixel_name | |
vb |
Definition at line 598 of file gDataConversionUtilities.cc.
int 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 244 of file gDataConversionUtilities.cc.
int 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 285 of file gDataConversionUtilities.cc.
int ReadIntfSPECT | ( | string | a_pathIntf, |
float_t & | a_distToDetector, | ||
uint32_t & | a_nHeads, | ||
uint32_t & | a_nPixAxl, | ||
uint32_t & | a_nPixTrs, | ||
float_t & | a_crystalSizeAxl, | ||
float_t & | a_crystalSizeTrs, | ||
uint32_t & | a_nProjectionsTot, | ||
uint32_t & | a_nProjectionsByHead, | ||
float_t & | a_head1stAngle, | ||
float_t & | a_headAngPitchDeg, | ||
float_t & | a_headAngStepDeg, | ||
int & | a_headRotDirection, | ||
uint32_t & | a_start_time_ms, | ||
uint32_t & | a_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 2148 of file gDataConversionUtilities.cc.
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 & | nRsectorsAxial, | ||
uint32_t & | nRsectorsAngPos, | ||
int & | rsector_id_order, | ||
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) |
nRsectorsAxial | : nb of axial rsectors |
nRsectorsAngPos | : nb of rsectors per ring |
rsector_id_order | : ordering of rsector id |
start_time_ms | : acquisition start time converted in ms |
duration_ms | : acquisition duration converted in ms |
vb | : verbosity |
Definition at line 1051 of file gDataConversionUtilities.cc.
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.
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 1512 of file gDataConversionUtilities.cc.
int ReadMacSPECT | ( | string | a_pathMac, |
float_t & | a_distToDetector, | ||
uint32_t & | a_nHeads, | ||
uint32_t & | a_nPixAxl, | ||
uint32_t & | a_nPixTrs, | ||
float_t & | a_crystalSizeAxl, | ||
float_t & | a_crystalSizeTrs, | ||
uint32_t & | a_nProjectionsTot, | ||
uint32_t & | a_nProjectionsByHead, | ||
float_t & | a_head1stAngle, | ||
float_t & | a_headAngPitch, | ||
float_t & | a_headAngStepDeg, | ||
int & | a_headRotDirection, | ||
uint32_t & | a_start_time_ms, | ||
uint32_t & | a_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 1749 of file gDataConversionUtilities.cc.
vector<string> 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 88 of file gDataConversionUtilities.cc.
int 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 142 of file gDataConversionUtilities.cc.
template int WriteVector | ( | ofstream & | file, |
const string & | a_key, | ||
vector< double > | a_vals | ||
) |
int 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 181 of file gDataConversionUtilities.cc.
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.
file | : the output file |
a_key | : key to write |
a_vals | : vector containing the key values |
Definition at line 216 of file gDataConversionUtilities.cc.