13 #include "iDataFilePET.hh" 15 #include "sScannerManager.hh" 16 #include "oInterfileIO.hh" 20 #include "Windows4Root.h" 23 #include "TApplication.h" 40 #define GATE_SYS_UNKNOWN -1 42 #define GATE_SYS_CYLINDRICAL 0 44 #define GATE_SYS_ECAT 1 46 #define GATE_SYS_SPECT 2 50 #define GATE_NB_MAX_LAYERS 4 // Max number of layer in GATE = 4 70 vector<string>
Split(
string a_line);
105 template <
typename T>
106 int WriteVector(ofstream& file,
const string& a_key, vector <T> a_vals);
116 int WriteVector(ofstream& file,
const string& a_key, vector <string> a_vals);
126 int WriteVector(ofstream& file,
const string& a_key, vector <vector<string> > a_vals);
148 int GetGATEMacFiles(
const string& a_pathMac, vector<string> &ap_pathToMacFiles);
172 string& rsector_name,
174 string& submodule_name,
175 string& crystal_name,
176 vector<string>& layers_name ,
197 string& crystal_name,
220 string& crystal_name,
245 int32_t nCrystalsTransaxial,
246 int32_t nCrystalsAxial,
269 uint32_t a_nProjectionsByHead);
310 float_t a_headAngPitch,
311 float_t a_crystalSizeAxl,
312 float_t a_crystalSizeTrs,
364 uint32_t nRsectorsAxial,
365 bool a_invertDetOrder,
366 int a_rsectorIdOrder,
368 uint32_t nModulesTransaxial,
369 uint32_t nModulesAxial,
370 uint32_t nSubmodulesTransaxial,
371 uint32_t nSubmodulesAxial,
372 uint32_t nCrystalsTransaxial,
373 uint32_t nCrystalsAxial,
375 uint32_t* nCrystalPerLayer,
376 vector<uint32_t> nLayersRptTransaxial,
377 vector<uint32_t> nLayersRptAxial,
398 int comptonPhantom1,
int comptonPhantom2,
399 int rayleighPhantom1,
int rayleighPhantom2);
425 uint32_t &nCrystalsTot,
426 uint32_t &nCrystalsAxial,
427 uint32_t &nCrystalsTransaxial,
428 uint32_t &nBlocksLine,
429 uint32_t &nBlocksPerRing,
430 uint32_t &start_time_ms,
431 uint32_t &duration_ms,
432 FLTNB &pet_coinc_window,
473 float_t &distToDetector,
477 float_t &crystalSizeAxl,
478 float_t &crystalSizeTrs,
479 uint32_t &nProjectionsTot,
480 uint32_t &nProjectionsByHead,
481 float_t &head1stAngle,
482 float_t &headAngPitch,
483 float_t &headAngStepDeg,
484 int &headRotDirection,
485 uint32_t &start_time_ms,
486 uint32_t &duration_ms,
529 float_t &ap_distToDetector,
531 uint32_t &ap_nPixAxl,
532 uint32_t &ap_nPixTrs,
533 float_t &ap_crystalSizeAxl,
534 float_t &ap_crystalSizeTrs,
535 uint32_t &ap_nProjectionsTot,
536 uint32_t &ap_nProjectionsByHead,
537 float_t &ap_head1stAngle,
538 float_t &ap_headAngPitch,
539 float_t &headAngStepDeg,
540 int &ap_headRotDirection,
541 uint32_t &ap_start_time_ms,
542 uint32_t &ap_duration_ms,
592 uint32_t *nb_crystal_per_layer,
593 uint32_t &nCrystalsTot,
594 uint32_t &nCrystalsAxial,
595 uint32_t &nCrystalsTransaxial,
596 vector<uint32_t> &nLayersRptAxial,
597 vector<uint32_t> &nLayersRptTransaxial,
598 uint32_t &nSubmodulesAxial,
599 uint32_t &nSubmodulesTransaxial,
600 uint32_t &nModulesAxial,
601 uint32_t &nModulesTransaxial,
602 uint32_t &nRsectorsAxial,
603 uint32_t &nRsectorsAngPos,
604 bool &invert_det_order,
605 int &rsector_id_order,
606 uint32_t &start_time_ms,
607 uint32_t &duration_ms,
608 FLTNB &pet_coinc_window,
int WriteVector(ofstream &file, const string &a_key, vector< T > a_vals)
Write the key and its values in the file provided in parameter.
int GetGATEMacFiles(const string &a_pathMac, vector< string > &ap_pathToMacFiles)
Extract the paths to each macro file contained in the main macro file.
int GetGATESystemType(const string &a_pathMac)
Read a GATE macro file and identify the system type from the 'gate/systems/' command lines...
void ConvertValuesTomm(vector< string > &values)
Check if the vector of strings passed in parameter contains the 'cm' unit In this case...
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 va...
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...
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 ...
This file is used for all kind of different functions designed for options parsing and ASCII file rea...
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)
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 ...
vector< string > Split(string a_line)
Split the line provided in parameter into a vector of strings (separator is blankspace) ...
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 fil...
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...
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 ...
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 CreateGeomWithCylindrical(string a_pathMac, string a_pathGeom)
Read a GATE macro file containing the description of a cylindricalPET system, and convert it to a geo...
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.
Declaration of class sOutputManager.
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 ...
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.
int ComputeKindGATEEvent(int32_t eventID1, int32_t eventID2, int comptonPhantom1, int comptonPhantom2, int rayleighPhantom1, int rayleighPhantom2)
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)
This header file is mainly used to declare some macro definitions and all includes needed from the st...
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...