![]() |
CASToR
3.2
Tomographic Reconstruction (PET/SPECT/CT)
|
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) |
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 nRsectorsAngPos, uint32_t nRsectorsAxial, bool a_invertDetOrder, int a_rsectorIdOrder, bool a_lyrRptFlag, 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) |
int | ComputeKindGATEEvent (int32_t eventID1, int32_t eventID2, int comptonPhantom1, int comptonPhantom2, int rayleighPhantom1, int rayleighPhantom2) |
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, FLTNB &pet_coinc_window, int vb) |
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 &nRsectorsAxial, uint32_t &nRsectorsAngPos, bool &invert_det_order, int &rsector_id_order, uint32_t &start_time_ms, uint32_t &duration_ms, FLTNB &pet_coinc_window, bool &lyr_rpt_flag, int vb) |
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 include/management/gDataConversionUtilities.hh.
#define GATE_NB_MAX_LAYERS 4 |
Definition at line 50 of file include/management/gDataConversionUtilities.hh.
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 30 of file code/src/management/gDataConversionUtilities.cc.
int ComputeKindGATEEvent | ( | int32_t | eventID1, |
int32_t | eventID2, | ||
int | comptonPhantom1, | ||
int | comptonPhantom2, | ||
int | rayleighPhantom1, | ||
int | rayleighPhantom2 | ||
) |
Definition at line 1001 of file code/src/management/gDataConversionUtilities.cc.
uint32_t ConvertIDcylindrical | ( | uint32_t | nRsectorsAngPos, |
uint32_t | nRsectorsAxial, | ||
bool | a_invertDetOrder, | ||
int | a_rsectorIdOrder, | ||
bool | a_lyrRptFlag, | ||
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 | ||
) |
Definition at line 806 of file src/management/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 672 of file code/src/management/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 706 of file code/src/management/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 745 of file code/src/management/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 90 of file code/src/management/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 2764 of file code/src/management/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 4370 of file code/src/management/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 4906 of file code/src/management/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 362 of file code/src/management/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 502 of file code/src/management/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 586 of file code/src/management/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 221 of file code/src/management/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 273 of file code/src/management/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 2534 of file code/src/management/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, | ||
bool & | invert_det_order, | ||
int & | rsector_id_order, | ||
uint32_t & | start_time_ms, | ||
uint32_t & | duration_ms, | ||
FLTNB & | pet_coinc_window, | ||
bool & | lyr_rpt_flag, | ||
int | vb | ||
) |
Definition at line 1063 of file src/management/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, | ||
FLTNB & | pet_coinc_window, | ||
int | vb | ||
) |
Definition at line 1869 of file code/src/management/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 2135 of file code/src/management/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 65 of file code/src/management/gDataConversionUtilities.cc.
string toString | ( | T | a_val | ) |
Definition at line 89 of file include/management/gDataConversionUtilities.hh.
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 119 of file code/src/management/gDataConversionUtilities.cc.
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 158 of file code/src/management/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 193 of file code/src/management/gDataConversionUtilities.cc.