catsim-test 0.0.5__cp313-cp313-manylinux_2_31_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1235) hide show
  1. catsim_test-0.0.5.dist-info/METADATA +5 -0
  2. catsim_test-0.0.5.dist-info/RECORD +1235 -0
  3. catsim_test-0.0.5.dist-info/WHEEL +5 -0
  4. catsim_test-0.0.5.dist-info/licenses/LICENSE +29 -0
  5. catsim_test-0.0.5.dist-info/sboms/auditwheel.cdx.json +1 -0
  6. catsim_test-0.0.5.dist-info/top_level.txt +2 -0
  7. catsim_test.libs/libgomp-98b21ff3.so.1.0.0 +0 -0
  8. dummy.cpython-313-x86_64-linux-gnu.so +0 -0
  9. gecatsim/__init__.py +20 -0
  10. gecatsim/bowtie/large.txt +891 -0
  11. gecatsim/bowtie/medium.txt +891 -0
  12. gecatsim/bowtie/small.txt +891 -0
  13. gecatsim/cfg/Phantom_Default.cfg +7 -0
  14. gecatsim/cfg/Physics_Default.cfg +38 -0
  15. gecatsim/cfg/Protocol_Default.cfg +33 -0
  16. gecatsim/cfg/Recon_Default.cfg +22 -0
  17. gecatsim/cfg/Scanner_Default.cfg +31 -0
  18. gecatsim/clib_build/BuildLinux64 +6 -0
  19. gecatsim/clib_build/BuildWin64.bat +17 -0
  20. gecatsim/clib_build/MakeMacOS +48 -0
  21. gecatsim/clib_build/MakeVariables_1 +19 -0
  22. gecatsim/clib_build/MakeVariables_2 +5 -0
  23. gecatsim/clib_build/MakeVariables_3 +33 -0
  24. gecatsim/clib_build/MakeVariables_3.1 +32 -0
  25. gecatsim/clib_build/MakeWindows64 +45 -0
  26. gecatsim/clib_build/Makefile +41 -0
  27. gecatsim/clib_build/readme.md +13 -0
  28. gecatsim/clib_build/src/BaseObject.cpp +144 -0
  29. gecatsim/clib_build/src/BaseObject.h +74 -0
  30. gecatsim/clib_build/src/ClipPlane.cpp +83 -0
  31. gecatsim/clib_build/src/ClipPlane.h +28 -0
  32. gecatsim/clib_build/src/CrossSection.cpp +179 -0
  33. gecatsim/clib_build/src/CrossSection.hpp +27 -0
  34. gecatsim/clib_build/src/CrossSectionHandler.cpp +160 -0
  35. gecatsim/clib_build/src/CrossSectionHandler.hpp +72 -0
  36. gecatsim/clib_build/src/Cube.cpp +144 -0
  37. gecatsim/clib_build/src/Cube.h +26 -0
  38. gecatsim/clib_build/src/Cylinder.cpp +156 -0
  39. gecatsim/clib_build/src/Cylinder.h +25 -0
  40. gecatsim/clib_build/src/DD2Back.c +332 -0
  41. gecatsim/clib_build/src/DD2ParProj.c +377 -0
  42. gecatsim/clib_build/src/DD2Proj.c +333 -0
  43. gecatsim/clib_build/src/DD2WBack.c +350 -0
  44. gecatsim/clib_build/src/DD3.hpp +423 -0
  45. gecatsim/clib_build/src/DD3Proj.cpp +519 -0
  46. gecatsim/clib_build/src/DD3Proj_roi_notrans_mm.cpp +585 -0
  47. gecatsim/clib_build/src/DD3WBack.c +491 -0
  48. gecatsim/clib_build/src/DD3_roi_notrans_mm.hpp +272 -0
  49. gecatsim/clib_build/src/Detector.cpp +389 -0
  50. gecatsim/clib_build/src/Detector.hpp +134 -0
  51. gecatsim/clib_build/src/Interpolate.cpp +58 -0
  52. gecatsim/clib_build/src/Intersection.cpp +198 -0
  53. gecatsim/clib_build/src/Intersection.h +36 -0
  54. gecatsim/clib_build/src/MatVec.cpp +262 -0
  55. gecatsim/clib_build/src/MatVec.h +68 -0
  56. gecatsim/clib_build/src/Objects.cpp +23 -0
  57. gecatsim/clib_build/src/Objects.hpp +90 -0
  58. gecatsim/clib_build/src/Phantom.cpp +169 -0
  59. gecatsim/clib_build/src/Phantom.hpp +43 -0
  60. gecatsim/clib_build/src/Photon.cpp +168 -0
  61. gecatsim/clib_build/src/Photon.hpp +56 -0
  62. gecatsim/clib_build/src/RD3Back.cpp +357 -0
  63. gecatsim/clib_build/src/RD3Intersections.cpp +154 -0
  64. gecatsim/clib_build/src/RD3bench.cpp +505 -0
  65. gecatsim/clib_build/src/Sphere.cpp +43 -0
  66. gecatsim/clib_build/src/Sphere.h +25 -0
  67. gecatsim/clib_build/src/Transformation.cpp +104 -0
  68. gecatsim/clib_build/src/Transformation.h +37 -0
  69. gecatsim/clib_build/src/TreePhantom.cpp +138 -0
  70. gecatsim/clib_build/src/TreePhantom.h +27 -0
  71. gecatsim/clib_build/src/Volume.cpp +101 -0
  72. gecatsim/clib_build/src/Volume.hpp +28 -0
  73. gecatsim/clib_build/src/analytic_projector.c +2433 -0
  74. gecatsim/clib_build/src/analytic_projector.h +235 -0
  75. gecatsim/clib_build/src/compt.cpp +400 -0
  76. gecatsim/clib_build/src/compt2.cpp +558 -0
  77. gecatsim/clib_build/src/compt3.cpp +607 -0
  78. gecatsim/clib_build/src/ct_nurbs.h +214 -0
  79. gecatsim/clib_build/src/extractsino.c +42 -0
  80. gecatsim/clib_build/src/fm_gethostid.c +23 -0
  81. gecatsim/clib_build/src/fm_getrandpid.c +31 -0
  82. gecatsim/clib_build/src/gemsfilt.c +1084 -0
  83. gecatsim/clib_build/src/getMemorySize.cpp +105 -0
  84. gecatsim/clib_build/src/getMemorySize.h +5 -0
  85. gecatsim/clib_build/src/hull2.c +77 -0
  86. gecatsim/clib_build/src/intersections.c +131 -0
  87. gecatsim/clib_build/src/label.h +10 -0
  88. gecatsim/clib_build/src/main.cpp +609 -0
  89. gecatsim/clib_build/src/make_volume.c +573 -0
  90. gecatsim/clib_build/src/nCAT_main.c +6343 -0
  91. gecatsim/clib_build/src/negative_log.cpp +233 -0
  92. gecatsim/clib_build/src/negative_log.h +23 -0
  93. gecatsim/clib_build/src/pd2dbpcurved.c +98 -0
  94. gecatsim/clib_build/src/pd2dbpflat.c +101 -0
  95. gecatsim/clib_build/src/pd3dbpsemi.c +177 -0
  96. gecatsim/clib_build/src/phantom.l +72 -0
  97. gecatsim/clib_build/src/phantom.lex.c +1770 -0
  98. gecatsim/clib_build/src/phantom.tab.cpp +2126 -0
  99. gecatsim/clib_build/src/phantom.tab.hpp +126 -0
  100. gecatsim/clib_build/src/phantom.y +624 -0
  101. gecatsim/clib_build/src/rndpoi.c +793 -0
  102. gecatsim/clib_build/src/spline.c +81 -0
  103. gecatsim/clib_build/src/spline.h +6 -0
  104. gecatsim/clib_build/src/timer.c +64 -0
  105. gecatsim/clib_build/src/viewshift.c +25 -0
  106. gecatsim/clib_build/src/voxelized_projector.cpp +683 -0
  107. gecatsim/clib_build/src/xybowtie.c +76 -0
  108. gecatsim/dose/data/dosereconkernel_mthd4.mat +0 -0
  109. gecatsim/dose/data/scatter_E_loss_fraction.mat +0 -0
  110. gecatsim/dose/data/weighted_scatter_energy_by_spec.mat +0 -0
  111. gecatsim/dose/examples/dose_doserecon.cfg +16 -0
  112. gecatsim/dose/examples/dose_phantom.cfg +6 -0
  113. gecatsim/dose/examples/dose_physics.cfg +18 -0
  114. gecatsim/dose/examples/dose_protocol.cfg +15 -0
  115. gecatsim/dose/examples/dose_recon.cfg +9 -0
  116. gecatsim/dose/examples/dose_scanner.cfg +29 -0
  117. gecatsim/dose/examples/run.py +37 -0
  118. gecatsim/dose/lib/Dose_Recon_Library_Linux64.so +0 -0
  119. gecatsim/dose/lib/Dose_Recon_Library_Windows64.dll +0 -0
  120. gecatsim/dose/pyfiles/C_DD3Dose.py +84 -0
  121. gecatsim/dose/pyfiles/Combine_Spectrum_Bowtie_FlatFilter.py +15 -0
  122. gecatsim/dose/pyfiles/DoseConv.py +87 -0
  123. gecatsim/dose/pyfiles/GetMuByProcess.py +57 -0
  124. gecatsim/dose/pyfiles/__init__.py +0 -0
  125. gecatsim/dose/pyfiles/brconvol_matlab.py +67 -0
  126. gecatsim/dose/pyfiles/calcDetectorFlux.py +54 -0
  127. gecatsim/dose/pyfiles/catdoserecon.py +225 -0
  128. gecatsim/dose/pyfiles/doseconvol.py +52 -0
  129. gecatsim/dose/pyfiles/get_voxel_stopping_power.py +35 -0
  130. gecatsim/dose/pyfiles/img2vol.py +57 -0
  131. gecatsim/dose/pyfiles/xyfovimg.py +30 -0
  132. gecatsim/dose/readme.md +4 -0
  133. gecatsim/dose/src/DD3.hpp +371 -0
  134. gecatsim/dose/src/DD3Dose.cpp +787 -0
  135. gecatsim/dose/src/DD3Dose.hpp +22 -0
  136. gecatsim/dose/src/DD3Dose.i +23 -0
  137. gecatsim/dose/src/DD3Energy_clean.cpp +1464 -0
  138. gecatsim/dose/src/DD3Proj.cpp +504 -0
  139. gecatsim/dose/src/DD3Proj.hpp +20 -0
  140. gecatsim/dose/src/DD3Proj_mm.cpp +561 -0
  141. gecatsim/dose/src/DD3Proj_mm.hpp +21 -0
  142. gecatsim/dose/src/Win32_Build.bat +17 -0
  143. gecatsim/dose/src/Win64_Build.bat +20 -0
  144. gecatsim/examples/Catvoxel_Sample.py +53 -0
  145. gecatsim/examples/DD3Proj_mm_Sample.py +60 -0
  146. gecatsim/examples/GetMu_Sample.py +24 -0
  147. gecatsim/examples/Sim_Recon_Sample.py +45 -0
  148. gecatsim/examples/Sim_Recon_Sample_PCCT.py +69 -0
  149. gecatsim/examples/Sim_Sample.py +32 -0
  150. gecatsim/examples/Sim_Sample_Analyic.py +44 -0
  151. gecatsim/examples/Sim_Sample_Helical.py +32 -0
  152. gecatsim/examples/Sim_Sample_Hybrid.py +42 -0
  153. gecatsim/examples/Sim_Sample_PCCT.py +72 -0
  154. gecatsim/examples/Sim_Sample_Polygonal.py +47 -0
  155. gecatsim/examples/Sim_Sample_Scatter.py +38 -0
  156. gecatsim/examples/Sim_Sample_XCAT.py +50 -0
  157. gecatsim/examples/cfg/Phantom_Sample.cfg +6 -0
  158. gecatsim/examples/cfg/Phantom_Sample_Analytic.cfg +6 -0
  159. gecatsim/examples/cfg/Phantom_Sample_Hybrid.cfg +7 -0
  160. gecatsim/examples/cfg/Phantom_Sample_Polygonal.cfg +6 -0
  161. gecatsim/examples/cfg/Phantom_Sample_XCAT.cfg +6 -0
  162. gecatsim/examples/cfg/Physics_Sample.cfg +41 -0
  163. gecatsim/examples/cfg/Protocol_Sample_Helical.cfg +33 -0
  164. gecatsim/examples/cfg/Protocol_Sample_axial.cfg +33 -0
  165. gecatsim/examples/cfg/Recon_Sample_2d.cfg +6 -0
  166. gecatsim/examples/cfg/Recon_Sample_Helical.cfg +8 -0
  167. gecatsim/examples/cfg/Scanner_PCCT.cfg +30 -0
  168. gecatsim/examples/cfg/Scanner_Sample_generic.cfg +29 -0
  169. gecatsim/examples/vct_examples/Phantom_Sample_Analytic.cfg +6 -0
  170. gecatsim/examples/vct_examples/Physics_Sample.cfg +41 -0
  171. gecatsim/examples/vct_examples/Protocol_Sample_axial.cfg +33 -0
  172. gecatsim/examples/vct_examples/Recon_Sample_2d.cfg +6 -0
  173. gecatsim/examples/vct_examples/Scanner_Sample_generic.cfg +31 -0
  174. gecatsim/examples/vct_examples/read.md +1 -0
  175. gecatsim/focal_spot/readme.md +31 -0
  176. gecatsim/focal_spot/vct_large_fs.npz +0 -0
  177. gecatsim/focal_spot/vct_small_fs.npz +0 -0
  178. gecatsim/lib/libcatsim.so +0 -0
  179. gecatsim/lib/libcatsim64.dll +0 -0
  180. gecatsim/lib/libcatsim_macos.so +0 -0
  181. gecatsim/lib/pthreadGC2_x64.dll +0 -0
  182. gecatsim/lib/pthreads-2-9-1-release.zip +0 -0
  183. gecatsim/material/Ac +11 -0
  184. gecatsim/material/Ag +11 -0
  185. gecatsim/material/Al +11 -0
  186. gecatsim/material/Ar +11 -0
  187. gecatsim/material/As +11 -0
  188. gecatsim/material/At +11 -0
  189. gecatsim/material/Au +11 -0
  190. gecatsim/material/B +11 -0
  191. gecatsim/material/Ba +11 -0
  192. gecatsim/material/Be +11 -0
  193. gecatsim/material/Bi +11 -0
  194. gecatsim/material/Br +11 -0
  195. gecatsim/material/C +11 -0
  196. gecatsim/material/CIRS_adipose_adult2 +20 -0
  197. gecatsim/material/CIRS_adipose_adult3 +20 -0
  198. gecatsim/material/CIRS_bone_10yo +21 -0
  199. gecatsim/material/CIRS_bone_1yo +21 -0
  200. gecatsim/material/CIRS_bone_5yo +21 -0
  201. gecatsim/material/CIRS_bone_adult_and_15yo +21 -0
  202. gecatsim/material/CIRS_bone_newborn +21 -0
  203. gecatsim/material/CIRS_liver_adult +20 -0
  204. gecatsim/material/CIRS_lung_inhale +20 -0
  205. gecatsim/material/CIRS_plastic_water_LR +20 -0
  206. gecatsim/material/CIRS_spinal_cord +20 -0
  207. gecatsim/material/CZT +5 -0
  208. gecatsim/material/Ca +11 -0
  209. gecatsim/material/Cd +11 -0
  210. gecatsim/material/Ce +11 -0
  211. gecatsim/material/Cl +11 -0
  212. gecatsim/material/Co +11 -0
  213. gecatsim/material/Copyright.txt +7 -0
  214. gecatsim/material/Cr +11 -0
  215. gecatsim/material/Cs +11 -0
  216. gecatsim/material/CsI +16 -0
  217. gecatsim/material/Cu +11 -0
  218. gecatsim/material/Dy +11 -0
  219. gecatsim/material/Er +11 -0
  220. gecatsim/material/Eu +11 -0
  221. gecatsim/material/F +11 -0
  222. gecatsim/material/Fe +11 -0
  223. gecatsim/material/Fr +11 -0
  224. gecatsim/material/GOS +19 -0
  225. gecatsim/material/Ga +11 -0
  226. gecatsim/material/Gd +11 -0
  227. gecatsim/material/Ge +11 -0
  228. gecatsim/material/H +11 -0
  229. gecatsim/material/He +11 -0
  230. gecatsim/material/Hf +11 -0
  231. gecatsim/material/Hg +11 -0
  232. gecatsim/material/Ho +11 -0
  233. gecatsim/material/I +11 -0
  234. gecatsim/material/ICRU_adipose_adult2 +21 -0
  235. gecatsim/material/ICRU_blood_adult +24 -0
  236. gecatsim/material/ICRU_brain_adult +26 -0
  237. gecatsim/material/ICRU_breast_adult2 +22 -0
  238. gecatsim/material/ICRU_eye_lens_adult +22 -0
  239. gecatsim/material/ICRU_kidney_adult +24 -0
  240. gecatsim/material/ICRU_liver_adult +23 -0
  241. gecatsim/material/ICRU_lung_adult_healthy +23 -0
  242. gecatsim/material/ICRU_muscle_adult +23 -0
  243. gecatsim/material/ICRU_pancreas_adult +23 -0
  244. gecatsim/material/ICRU_skeleton_cortical_bone_adult +23 -0
  245. gecatsim/material/ICRU_skin_adult +23 -0
  246. gecatsim/material/ICRU_spleen_adult +23 -0
  247. gecatsim/material/ICRU_testis_adult +23 -0
  248. gecatsim/material/In +11 -0
  249. gecatsim/material/Ir +11 -0
  250. gecatsim/material/K +11 -0
  251. gecatsim/material/Kr +11 -0
  252. gecatsim/material/La +11 -0
  253. gecatsim/material/Li +11 -0
  254. gecatsim/material/Lu +11 -0
  255. gecatsim/material/Lumex +18 -0
  256. gecatsim/material/Mg +11 -0
  257. gecatsim/material/Mn +11 -0
  258. gecatsim/material/Mo +11 -0
  259. gecatsim/material/N +11 -0
  260. gecatsim/material/Na +11 -0
  261. gecatsim/material/NaCl +16 -0
  262. gecatsim/material/Nb +11 -0
  263. gecatsim/material/Nd +11 -0
  264. gecatsim/material/Ne +11 -0
  265. gecatsim/material/Ni +11 -0
  266. gecatsim/material/O +11 -0
  267. gecatsim/material/Os +11 -0
  268. gecatsim/material/P +11 -0
  269. gecatsim/material/PMMA +20 -0
  270. gecatsim/material/PVC_flexible +20 -0
  271. gecatsim/material/PVC_rigid +20 -0
  272. gecatsim/material/Pa +11 -0
  273. gecatsim/material/Pb +11 -0
  274. gecatsim/material/Pd +11 -0
  275. gecatsim/material/Pm +11 -0
  276. gecatsim/material/Po +11 -0
  277. gecatsim/material/Pr +11 -0
  278. gecatsim/material/Pt +11 -0
  279. gecatsim/material/Ra +11 -0
  280. gecatsim/material/Rb +11 -0
  281. gecatsim/material/Re +11 -0
  282. gecatsim/material/Rh +11 -0
  283. gecatsim/material/Rn +11 -0
  284. gecatsim/material/Ru +11 -0
  285. gecatsim/material/S +11 -0
  286. gecatsim/material/Sb +11 -0
  287. gecatsim/material/Sc +11 -0
  288. gecatsim/material/Se +11 -0
  289. gecatsim/material/Si +11 -0
  290. gecatsim/material/Sm +11 -0
  291. gecatsim/material/Sn +11 -0
  292. gecatsim/material/Sr +11 -0
  293. gecatsim/material/Ta +11 -0
  294. gecatsim/material/Tb +11 -0
  295. gecatsim/material/Tc +11 -0
  296. gecatsim/material/Te +11 -0
  297. gecatsim/material/Th +11 -0
  298. gecatsim/material/Ti +11 -0
  299. gecatsim/material/Tl +11 -0
  300. gecatsim/material/Tm +11 -0
  301. gecatsim/material/U +11 -0
  302. gecatsim/material/V +11 -0
  303. gecatsim/material/W +11 -0
  304. gecatsim/material/Xe +11 -0
  305. gecatsim/material/Y +11 -0
  306. gecatsim/material/Yb +11 -0
  307. gecatsim/material/Zn +11 -0
  308. gecatsim/material/Zr +11 -0
  309. gecatsim/material/air +24 -0
  310. gecatsim/material/bone +25 -0
  311. gecatsim/material/brass +18 -0
  312. gecatsim/material/diamond +13 -0
  313. gecatsim/material/edlp/comp/ce-cs-1.dat +124 -0
  314. gecatsim/material/edlp/comp/ce-cs-10.dat +124 -0
  315. gecatsim/material/edlp/comp/ce-cs-100.dat +124 -0
  316. gecatsim/material/edlp/comp/ce-cs-11.dat +124 -0
  317. gecatsim/material/edlp/comp/ce-cs-12.dat +124 -0
  318. gecatsim/material/edlp/comp/ce-cs-13.dat +124 -0
  319. gecatsim/material/edlp/comp/ce-cs-14.dat +124 -0
  320. gecatsim/material/edlp/comp/ce-cs-15.dat +124 -0
  321. gecatsim/material/edlp/comp/ce-cs-16.dat +124 -0
  322. gecatsim/material/edlp/comp/ce-cs-17.dat +124 -0
  323. gecatsim/material/edlp/comp/ce-cs-18.dat +124 -0
  324. gecatsim/material/edlp/comp/ce-cs-19.dat +124 -0
  325. gecatsim/material/edlp/comp/ce-cs-2.dat +124 -0
  326. gecatsim/material/edlp/comp/ce-cs-20.dat +124 -0
  327. gecatsim/material/edlp/comp/ce-cs-21.dat +124 -0
  328. gecatsim/material/edlp/comp/ce-cs-22.dat +124 -0
  329. gecatsim/material/edlp/comp/ce-cs-23.dat +124 -0
  330. gecatsim/material/edlp/comp/ce-cs-24.dat +124 -0
  331. gecatsim/material/edlp/comp/ce-cs-25.dat +124 -0
  332. gecatsim/material/edlp/comp/ce-cs-26.dat +124 -0
  333. gecatsim/material/edlp/comp/ce-cs-27.dat +124 -0
  334. gecatsim/material/edlp/comp/ce-cs-28.dat +124 -0
  335. gecatsim/material/edlp/comp/ce-cs-29.dat +124 -0
  336. gecatsim/material/edlp/comp/ce-cs-3.dat +124 -0
  337. gecatsim/material/edlp/comp/ce-cs-30.dat +124 -0
  338. gecatsim/material/edlp/comp/ce-cs-31.dat +124 -0
  339. gecatsim/material/edlp/comp/ce-cs-32.dat +124 -0
  340. gecatsim/material/edlp/comp/ce-cs-33.dat +124 -0
  341. gecatsim/material/edlp/comp/ce-cs-34.dat +124 -0
  342. gecatsim/material/edlp/comp/ce-cs-35.dat +124 -0
  343. gecatsim/material/edlp/comp/ce-cs-36.dat +124 -0
  344. gecatsim/material/edlp/comp/ce-cs-37.dat +124 -0
  345. gecatsim/material/edlp/comp/ce-cs-38.dat +124 -0
  346. gecatsim/material/edlp/comp/ce-cs-39.dat +124 -0
  347. gecatsim/material/edlp/comp/ce-cs-4.dat +124 -0
  348. gecatsim/material/edlp/comp/ce-cs-40.dat +124 -0
  349. gecatsim/material/edlp/comp/ce-cs-41.dat +124 -0
  350. gecatsim/material/edlp/comp/ce-cs-42.dat +124 -0
  351. gecatsim/material/edlp/comp/ce-cs-43.dat +124 -0
  352. gecatsim/material/edlp/comp/ce-cs-44.dat +124 -0
  353. gecatsim/material/edlp/comp/ce-cs-45.dat +124 -0
  354. gecatsim/material/edlp/comp/ce-cs-46.dat +124 -0
  355. gecatsim/material/edlp/comp/ce-cs-47.dat +124 -0
  356. gecatsim/material/edlp/comp/ce-cs-48.dat +124 -0
  357. gecatsim/material/edlp/comp/ce-cs-49.dat +124 -0
  358. gecatsim/material/edlp/comp/ce-cs-5.dat +124 -0
  359. gecatsim/material/edlp/comp/ce-cs-50.dat +124 -0
  360. gecatsim/material/edlp/comp/ce-cs-51.dat +124 -0
  361. gecatsim/material/edlp/comp/ce-cs-52.dat +124 -0
  362. gecatsim/material/edlp/comp/ce-cs-53.dat +124 -0
  363. gecatsim/material/edlp/comp/ce-cs-54.dat +124 -0
  364. gecatsim/material/edlp/comp/ce-cs-55.dat +124 -0
  365. gecatsim/material/edlp/comp/ce-cs-56.dat +124 -0
  366. gecatsim/material/edlp/comp/ce-cs-57.dat +124 -0
  367. gecatsim/material/edlp/comp/ce-cs-58.dat +124 -0
  368. gecatsim/material/edlp/comp/ce-cs-59.dat +124 -0
  369. gecatsim/material/edlp/comp/ce-cs-6.dat +124 -0
  370. gecatsim/material/edlp/comp/ce-cs-60.dat +124 -0
  371. gecatsim/material/edlp/comp/ce-cs-61.dat +124 -0
  372. gecatsim/material/edlp/comp/ce-cs-62.dat +124 -0
  373. gecatsim/material/edlp/comp/ce-cs-63.dat +124 -0
  374. gecatsim/material/edlp/comp/ce-cs-64.dat +124 -0
  375. gecatsim/material/edlp/comp/ce-cs-65.dat +124 -0
  376. gecatsim/material/edlp/comp/ce-cs-66.dat +124 -0
  377. gecatsim/material/edlp/comp/ce-cs-67.dat +124 -0
  378. gecatsim/material/edlp/comp/ce-cs-68.dat +124 -0
  379. gecatsim/material/edlp/comp/ce-cs-69.dat +124 -0
  380. gecatsim/material/edlp/comp/ce-cs-7.dat +124 -0
  381. gecatsim/material/edlp/comp/ce-cs-70.dat +124 -0
  382. gecatsim/material/edlp/comp/ce-cs-71.dat +124 -0
  383. gecatsim/material/edlp/comp/ce-cs-72.dat +124 -0
  384. gecatsim/material/edlp/comp/ce-cs-73.dat +124 -0
  385. gecatsim/material/edlp/comp/ce-cs-74.dat +124 -0
  386. gecatsim/material/edlp/comp/ce-cs-75.dat +124 -0
  387. gecatsim/material/edlp/comp/ce-cs-76.dat +124 -0
  388. gecatsim/material/edlp/comp/ce-cs-77.dat +124 -0
  389. gecatsim/material/edlp/comp/ce-cs-78.dat +124 -0
  390. gecatsim/material/edlp/comp/ce-cs-79.dat +124 -0
  391. gecatsim/material/edlp/comp/ce-cs-8.dat +124 -0
  392. gecatsim/material/edlp/comp/ce-cs-80.dat +124 -0
  393. gecatsim/material/edlp/comp/ce-cs-81.dat +124 -0
  394. gecatsim/material/edlp/comp/ce-cs-82.dat +124 -0
  395. gecatsim/material/edlp/comp/ce-cs-83.dat +124 -0
  396. gecatsim/material/edlp/comp/ce-cs-84.dat +124 -0
  397. gecatsim/material/edlp/comp/ce-cs-85.dat +124 -0
  398. gecatsim/material/edlp/comp/ce-cs-86.dat +124 -0
  399. gecatsim/material/edlp/comp/ce-cs-87.dat +124 -0
  400. gecatsim/material/edlp/comp/ce-cs-88.dat +124 -0
  401. gecatsim/material/edlp/comp/ce-cs-89.dat +124 -0
  402. gecatsim/material/edlp/comp/ce-cs-9.dat +124 -0
  403. gecatsim/material/edlp/comp/ce-cs-90.dat +124 -0
  404. gecatsim/material/edlp/comp/ce-cs-91.dat +124 -0
  405. gecatsim/material/edlp/comp/ce-cs-92.dat +124 -0
  406. gecatsim/material/edlp/comp/ce-cs-93.dat +124 -0
  407. gecatsim/material/edlp/comp/ce-cs-94.dat +124 -0
  408. gecatsim/material/edlp/comp/ce-cs-95.dat +124 -0
  409. gecatsim/material/edlp/comp/ce-cs-96.dat +124 -0
  410. gecatsim/material/edlp/comp/ce-cs-97.dat +124 -0
  411. gecatsim/material/edlp/comp/ce-cs-98.dat +124 -0
  412. gecatsim/material/edlp/comp/ce-cs-99.dat +124 -0
  413. gecatsim/material/edlp/comp/ce-cs-all.dat +0 -0
  414. gecatsim/material/edlp/comp/ce-sf-1.dat +107 -0
  415. gecatsim/material/edlp/comp/ce-sf-10.dat +179 -0
  416. gecatsim/material/edlp/comp/ce-sf-100.dat +150 -0
  417. gecatsim/material/edlp/comp/ce-sf-11.dat +187 -0
  418. gecatsim/material/edlp/comp/ce-sf-12.dat +180 -0
  419. gecatsim/material/edlp/comp/ce-sf-13.dat +166 -0
  420. gecatsim/material/edlp/comp/ce-sf-14.dat +170 -0
  421. gecatsim/material/edlp/comp/ce-sf-15.dat +166 -0
  422. gecatsim/material/edlp/comp/ce-sf-16.dat +165 -0
  423. gecatsim/material/edlp/comp/ce-sf-17.dat +169 -0
  424. gecatsim/material/edlp/comp/ce-sf-18.dat +161 -0
  425. gecatsim/material/edlp/comp/ce-sf-19.dat +167 -0
  426. gecatsim/material/edlp/comp/ce-sf-2.dat +144 -0
  427. gecatsim/material/edlp/comp/ce-sf-20.dat +168 -0
  428. gecatsim/material/edlp/comp/ce-sf-21.dat +162 -0
  429. gecatsim/material/edlp/comp/ce-sf-22.dat +163 -0
  430. gecatsim/material/edlp/comp/ce-sf-23.dat +162 -0
  431. gecatsim/material/edlp/comp/ce-sf-24.dat +169 -0
  432. gecatsim/material/edlp/comp/ce-sf-25.dat +164 -0
  433. gecatsim/material/edlp/comp/ce-sf-26.dat +167 -0
  434. gecatsim/material/edlp/comp/ce-sf-27.dat +165 -0
  435. gecatsim/material/edlp/comp/ce-sf-28.dat +173 -0
  436. gecatsim/material/edlp/comp/ce-sf-29.dat +167 -0
  437. gecatsim/material/edlp/comp/ce-sf-3.dat +149 -0
  438. gecatsim/material/edlp/comp/ce-sf-30.dat +168 -0
  439. gecatsim/material/edlp/comp/ce-sf-31.dat +166 -0
  440. gecatsim/material/edlp/comp/ce-sf-32.dat +168 -0
  441. gecatsim/material/edlp/comp/ce-sf-33.dat +167 -0
  442. gecatsim/material/edlp/comp/ce-sf-34.dat +169 -0
  443. gecatsim/material/edlp/comp/ce-sf-35.dat +167 -0
  444. gecatsim/material/edlp/comp/ce-sf-36.dat +158 -0
  445. gecatsim/material/edlp/comp/ce-sf-37.dat +160 -0
  446. gecatsim/material/edlp/comp/ce-sf-38.dat +161 -0
  447. gecatsim/material/edlp/comp/ce-sf-39.dat +161 -0
  448. gecatsim/material/edlp/comp/ce-sf-4.dat +151 -0
  449. gecatsim/material/edlp/comp/ce-sf-40.dat +170 -0
  450. gecatsim/material/edlp/comp/ce-sf-41.dat +172 -0
  451. gecatsim/material/edlp/comp/ce-sf-42.dat +167 -0
  452. gecatsim/material/edlp/comp/ce-sf-43.dat +164 -0
  453. gecatsim/material/edlp/comp/ce-sf-44.dat +160 -0
  454. gecatsim/material/edlp/comp/ce-sf-45.dat +160 -0
  455. gecatsim/material/edlp/comp/ce-sf-46.dat +162 -0
  456. gecatsim/material/edlp/comp/ce-sf-47.dat +162 -0
  457. gecatsim/material/edlp/comp/ce-sf-48.dat +164 -0
  458. gecatsim/material/edlp/comp/ce-sf-49.dat +165 -0
  459. gecatsim/material/edlp/comp/ce-sf-5.dat +148 -0
  460. gecatsim/material/edlp/comp/ce-sf-50.dat +158 -0
  461. gecatsim/material/edlp/comp/ce-sf-51.dat +156 -0
  462. gecatsim/material/edlp/comp/ce-sf-52.dat +158 -0
  463. gecatsim/material/edlp/comp/ce-sf-53.dat +163 -0
  464. gecatsim/material/edlp/comp/ce-sf-54.dat +163 -0
  465. gecatsim/material/edlp/comp/ce-sf-55.dat +158 -0
  466. gecatsim/material/edlp/comp/ce-sf-56.dat +161 -0
  467. gecatsim/material/edlp/comp/ce-sf-57.dat +168 -0
  468. gecatsim/material/edlp/comp/ce-sf-58.dat +167 -0
  469. gecatsim/material/edlp/comp/ce-sf-59.dat +162 -0
  470. gecatsim/material/edlp/comp/ce-sf-6.dat +155 -0
  471. gecatsim/material/edlp/comp/ce-sf-60.dat +157 -0
  472. gecatsim/material/edlp/comp/ce-sf-61.dat +169 -0
  473. gecatsim/material/edlp/comp/ce-sf-62.dat +169 -0
  474. gecatsim/material/edlp/comp/ce-sf-63.dat +160 -0
  475. gecatsim/material/edlp/comp/ce-sf-64.dat +166 -0
  476. gecatsim/material/edlp/comp/ce-sf-65.dat +163 -0
  477. gecatsim/material/edlp/comp/ce-sf-66.dat +158 -0
  478. gecatsim/material/edlp/comp/ce-sf-67.dat +168 -0
  479. gecatsim/material/edlp/comp/ce-sf-68.dat +159 -0
  480. gecatsim/material/edlp/comp/ce-sf-69.dat +164 -0
  481. gecatsim/material/edlp/comp/ce-sf-7.dat +174 -0
  482. gecatsim/material/edlp/comp/ce-sf-70.dat +169 -0
  483. gecatsim/material/edlp/comp/ce-sf-71.dat +162 -0
  484. gecatsim/material/edlp/comp/ce-sf-72.dat +163 -0
  485. gecatsim/material/edlp/comp/ce-sf-73.dat +165 -0
  486. gecatsim/material/edlp/comp/ce-sf-74.dat +164 -0
  487. gecatsim/material/edlp/comp/ce-sf-75.dat +161 -0
  488. gecatsim/material/edlp/comp/ce-sf-76.dat +155 -0
  489. gecatsim/material/edlp/comp/ce-sf-77.dat +152 -0
  490. gecatsim/material/edlp/comp/ce-sf-78.dat +150 -0
  491. gecatsim/material/edlp/comp/ce-sf-79.dat +148 -0
  492. gecatsim/material/edlp/comp/ce-sf-8.dat +176 -0
  493. gecatsim/material/edlp/comp/ce-sf-80.dat +153 -0
  494. gecatsim/material/edlp/comp/ce-sf-81.dat +158 -0
  495. gecatsim/material/edlp/comp/ce-sf-82.dat +154 -0
  496. gecatsim/material/edlp/comp/ce-sf-83.dat +159 -0
  497. gecatsim/material/edlp/comp/ce-sf-84.dat +156 -0
  498. gecatsim/material/edlp/comp/ce-sf-85.dat +162 -0
  499. gecatsim/material/edlp/comp/ce-sf-86.dat +154 -0
  500. gecatsim/material/edlp/comp/ce-sf-87.dat +154 -0
  501. gecatsim/material/edlp/comp/ce-sf-88.dat +153 -0
  502. gecatsim/material/edlp/comp/ce-sf-89.dat +151 -0
  503. gecatsim/material/edlp/comp/ce-sf-9.dat +184 -0
  504. gecatsim/material/edlp/comp/ce-sf-90.dat +153 -0
  505. gecatsim/material/edlp/comp/ce-sf-91.dat +151 -0
  506. gecatsim/material/edlp/comp/ce-sf-92.dat +157 -0
  507. gecatsim/material/edlp/comp/ce-sf-93.dat +152 -0
  508. gecatsim/material/edlp/comp/ce-sf-94.dat +154 -0
  509. gecatsim/material/edlp/comp/ce-sf-95.dat +151 -0
  510. gecatsim/material/edlp/comp/ce-sf-96.dat +151 -0
  511. gecatsim/material/edlp/comp/ce-sf-97.dat +150 -0
  512. gecatsim/material/edlp/comp/ce-sf-98.dat +152 -0
  513. gecatsim/material/edlp/comp/ce-sf-99.dat +152 -0
  514. gecatsim/material/edlp/comp/ce-sf-all.dat +0 -0
  515. gecatsim/material/edlp/pair/pp-cs-1.dat +96 -0
  516. gecatsim/material/edlp/pair/pp-cs-10.dat +110 -0
  517. gecatsim/material/edlp/pair/pp-cs-100.dat +126 -0
  518. gecatsim/material/edlp/pair/pp-cs-11.dat +112 -0
  519. gecatsim/material/edlp/pair/pp-cs-12.dat +111 -0
  520. gecatsim/material/edlp/pair/pp-cs-13.dat +112 -0
  521. gecatsim/material/edlp/pair/pp-cs-14.dat +113 -0
  522. gecatsim/material/edlp/pair/pp-cs-15.dat +113 -0
  523. gecatsim/material/edlp/pair/pp-cs-16.dat +114 -0
  524. gecatsim/material/edlp/pair/pp-cs-17.dat +112 -0
  525. gecatsim/material/edlp/pair/pp-cs-18.dat +113 -0
  526. gecatsim/material/edlp/pair/pp-cs-19.dat +113 -0
  527. gecatsim/material/edlp/pair/pp-cs-2.dat +100 -0
  528. gecatsim/material/edlp/pair/pp-cs-20.dat +114 -0
  529. gecatsim/material/edlp/pair/pp-cs-21.dat +115 -0
  530. gecatsim/material/edlp/pair/pp-cs-22.dat +115 -0
  531. gecatsim/material/edlp/pair/pp-cs-23.dat +116 -0
  532. gecatsim/material/edlp/pair/pp-cs-24.dat +115 -0
  533. gecatsim/material/edlp/pair/pp-cs-25.dat +115 -0
  534. gecatsim/material/edlp/pair/pp-cs-26.dat +116 -0
  535. gecatsim/material/edlp/pair/pp-cs-27.dat +117 -0
  536. gecatsim/material/edlp/pair/pp-cs-28.dat +117 -0
  537. gecatsim/material/edlp/pair/pp-cs-29.dat +117 -0
  538. gecatsim/material/edlp/pair/pp-cs-3.dat +104 -0
  539. gecatsim/material/edlp/pair/pp-cs-30.dat +117 -0
  540. gecatsim/material/edlp/pair/pp-cs-31.dat +118 -0
  541. gecatsim/material/edlp/pair/pp-cs-32.dat +118 -0
  542. gecatsim/material/edlp/pair/pp-cs-33.dat +118 -0
  543. gecatsim/material/edlp/pair/pp-cs-34.dat +119 -0
  544. gecatsim/material/edlp/pair/pp-cs-35.dat +119 -0
  545. gecatsim/material/edlp/pair/pp-cs-36.dat +119 -0
  546. gecatsim/material/edlp/pair/pp-cs-37.dat +118 -0
  547. gecatsim/material/edlp/pair/pp-cs-38.dat +119 -0
  548. gecatsim/material/edlp/pair/pp-cs-39.dat +119 -0
  549. gecatsim/material/edlp/pair/pp-cs-4.dat +105 -0
  550. gecatsim/material/edlp/pair/pp-cs-40.dat +119 -0
  551. gecatsim/material/edlp/pair/pp-cs-41.dat +119 -0
  552. gecatsim/material/edlp/pair/pp-cs-42.dat +119 -0
  553. gecatsim/material/edlp/pair/pp-cs-43.dat +119 -0
  554. gecatsim/material/edlp/pair/pp-cs-44.dat +119 -0
  555. gecatsim/material/edlp/pair/pp-cs-45.dat +119 -0
  556. gecatsim/material/edlp/pair/pp-cs-46.dat +119 -0
  557. gecatsim/material/edlp/pair/pp-cs-47.dat +120 -0
  558. gecatsim/material/edlp/pair/pp-cs-48.dat +120 -0
  559. gecatsim/material/edlp/pair/pp-cs-49.dat +120 -0
  560. gecatsim/material/edlp/pair/pp-cs-5.dat +106 -0
  561. gecatsim/material/edlp/pair/pp-cs-50.dat +120 -0
  562. gecatsim/material/edlp/pair/pp-cs-51.dat +120 -0
  563. gecatsim/material/edlp/pair/pp-cs-52.dat +120 -0
  564. gecatsim/material/edlp/pair/pp-cs-53.dat +121 -0
  565. gecatsim/material/edlp/pair/pp-cs-54.dat +121 -0
  566. gecatsim/material/edlp/pair/pp-cs-55.dat +121 -0
  567. gecatsim/material/edlp/pair/pp-cs-56.dat +121 -0
  568. gecatsim/material/edlp/pair/pp-cs-57.dat +122 -0
  569. gecatsim/material/edlp/pair/pp-cs-58.dat +122 -0
  570. gecatsim/material/edlp/pair/pp-cs-59.dat +122 -0
  571. gecatsim/material/edlp/pair/pp-cs-6.dat +107 -0
  572. gecatsim/material/edlp/pair/pp-cs-60.dat +122 -0
  573. gecatsim/material/edlp/pair/pp-cs-61.dat +122 -0
  574. gecatsim/material/edlp/pair/pp-cs-62.dat +123 -0
  575. gecatsim/material/edlp/pair/pp-cs-63.dat +123 -0
  576. gecatsim/material/edlp/pair/pp-cs-64.dat +123 -0
  577. gecatsim/material/edlp/pair/pp-cs-65.dat +124 -0
  578. gecatsim/material/edlp/pair/pp-cs-66.dat +124 -0
  579. gecatsim/material/edlp/pair/pp-cs-67.dat +124 -0
  580. gecatsim/material/edlp/pair/pp-cs-68.dat +124 -0
  581. gecatsim/material/edlp/pair/pp-cs-69.dat +124 -0
  582. gecatsim/material/edlp/pair/pp-cs-7.dat +108 -0
  583. gecatsim/material/edlp/pair/pp-cs-70.dat +124 -0
  584. gecatsim/material/edlp/pair/pp-cs-71.dat +124 -0
  585. gecatsim/material/edlp/pair/pp-cs-72.dat +124 -0
  586. gecatsim/material/edlp/pair/pp-cs-73.dat +125 -0
  587. gecatsim/material/edlp/pair/pp-cs-74.dat +125 -0
  588. gecatsim/material/edlp/pair/pp-cs-75.dat +126 -0
  589. gecatsim/material/edlp/pair/pp-cs-76.dat +126 -0
  590. gecatsim/material/edlp/pair/pp-cs-77.dat +126 -0
  591. gecatsim/material/edlp/pair/pp-cs-78.dat +125 -0
  592. gecatsim/material/edlp/pair/pp-cs-79.dat +125 -0
  593. gecatsim/material/edlp/pair/pp-cs-8.dat +109 -0
  594. gecatsim/material/edlp/pair/pp-cs-80.dat +125 -0
  595. gecatsim/material/edlp/pair/pp-cs-81.dat +126 -0
  596. gecatsim/material/edlp/pair/pp-cs-82.dat +126 -0
  597. gecatsim/material/edlp/pair/pp-cs-83.dat +126 -0
  598. gecatsim/material/edlp/pair/pp-cs-84.dat +126 -0
  599. gecatsim/material/edlp/pair/pp-cs-85.dat +126 -0
  600. gecatsim/material/edlp/pair/pp-cs-86.dat +126 -0
  601. gecatsim/material/edlp/pair/pp-cs-87.dat +126 -0
  602. gecatsim/material/edlp/pair/pp-cs-88.dat +126 -0
  603. gecatsim/material/edlp/pair/pp-cs-89.dat +127 -0
  604. gecatsim/material/edlp/pair/pp-cs-9.dat +109 -0
  605. gecatsim/material/edlp/pair/pp-cs-90.dat +127 -0
  606. gecatsim/material/edlp/pair/pp-cs-91.dat +127 -0
  607. gecatsim/material/edlp/pair/pp-cs-92.dat +127 -0
  608. gecatsim/material/edlp/pair/pp-cs-93.dat +127 -0
  609. gecatsim/material/edlp/pair/pp-cs-94.dat +126 -0
  610. gecatsim/material/edlp/pair/pp-cs-95.dat +126 -0
  611. gecatsim/material/edlp/pair/pp-cs-96.dat +126 -0
  612. gecatsim/material/edlp/pair/pp-cs-97.dat +126 -0
  613. gecatsim/material/edlp/pair/pp-cs-98.dat +126 -0
  614. gecatsim/material/edlp/pair/pp-cs-99.dat +126 -0
  615. gecatsim/material/edlp/pair/pp-cs-all.dat +0 -0
  616. gecatsim/material/edlp/phot/pe-cs-1.dat +87 -0
  617. gecatsim/material/edlp/phot/pe-cs-10.dat +388 -0
  618. gecatsim/material/edlp/phot/pe-cs-100.dat +1513 -0
  619. gecatsim/material/edlp/phot/pe-cs-11.dat +603 -0
  620. gecatsim/material/edlp/phot/pe-cs-12.dat +535 -0
  621. gecatsim/material/edlp/phot/pe-cs-13.dat +819 -0
  622. gecatsim/material/edlp/phot/pe-cs-14.dat +759 -0
  623. gecatsim/material/edlp/phot/pe-cs-15.dat +663 -0
  624. gecatsim/material/edlp/phot/pe-cs-16.dat +659 -0
  625. gecatsim/material/edlp/phot/pe-cs-17.dat +701 -0
  626. gecatsim/material/edlp/phot/pe-cs-18.dat +651 -0
  627. gecatsim/material/edlp/phot/pe-cs-19.dat +795 -0
  628. gecatsim/material/edlp/phot/pe-cs-2.dat +97 -0
  629. gecatsim/material/edlp/phot/pe-cs-20.dat +765 -0
  630. gecatsim/material/edlp/phot/pe-cs-21.dat +912 -0
  631. gecatsim/material/edlp/phot/pe-cs-22.dat +948 -0
  632. gecatsim/material/edlp/phot/pe-cs-23.dat +944 -0
  633. gecatsim/material/edlp/phot/pe-cs-24.dat +904 -0
  634. gecatsim/material/edlp/phot/pe-cs-25.dat +905 -0
  635. gecatsim/material/edlp/phot/pe-cs-26.dat +923 -0
  636. gecatsim/material/edlp/phot/pe-cs-27.dat +863 -0
  637. gecatsim/material/edlp/phot/pe-cs-28.dat +931 -0
  638. gecatsim/material/edlp/phot/pe-cs-29.dat +883 -0
  639. gecatsim/material/edlp/phot/pe-cs-3.dat +193 -0
  640. gecatsim/material/edlp/phot/pe-cs-30.dat +883 -0
  641. gecatsim/material/edlp/phot/pe-cs-31.dat +1018 -0
  642. gecatsim/material/edlp/phot/pe-cs-32.dat +1039 -0
  643. gecatsim/material/edlp/phot/pe-cs-33.dat +980 -0
  644. gecatsim/material/edlp/phot/pe-cs-34.dat +973 -0
  645. gecatsim/material/edlp/phot/pe-cs-35.dat +996 -0
  646. gecatsim/material/edlp/phot/pe-cs-36.dat +981 -0
  647. gecatsim/material/edlp/phot/pe-cs-37.dat +1047 -0
  648. gecatsim/material/edlp/phot/pe-cs-38.dat +975 -0
  649. gecatsim/material/edlp/phot/pe-cs-39.dat +1181 -0
  650. gecatsim/material/edlp/phot/pe-cs-4.dat +188 -0
  651. gecatsim/material/edlp/phot/pe-cs-40.dat +1169 -0
  652. gecatsim/material/edlp/phot/pe-cs-41.dat +1202 -0
  653. gecatsim/material/edlp/phot/pe-cs-42.dat +1181 -0
  654. gecatsim/material/edlp/phot/pe-cs-43.dat +1192 -0
  655. gecatsim/material/edlp/phot/pe-cs-44.dat +1217 -0
  656. gecatsim/material/edlp/phot/pe-cs-45.dat +1218 -0
  657. gecatsim/material/edlp/phot/pe-cs-46.dat +1070 -0
  658. gecatsim/material/edlp/phot/pe-cs-47.dat +1209 -0
  659. gecatsim/material/edlp/phot/pe-cs-48.dat +1202 -0
  660. gecatsim/material/edlp/phot/pe-cs-49.dat +1334 -0
  661. gecatsim/material/edlp/phot/pe-cs-5.dat +365 -0
  662. gecatsim/material/edlp/phot/pe-cs-50.dat +1234 -0
  663. gecatsim/material/edlp/phot/pe-cs-51.dat +1262 -0
  664. gecatsim/material/edlp/phot/pe-cs-52.dat +1166 -0
  665. gecatsim/material/edlp/phot/pe-cs-53.dat +1224 -0
  666. gecatsim/material/edlp/phot/pe-cs-54.dat +1139 -0
  667. gecatsim/material/edlp/phot/pe-cs-55.dat +1117 -0
  668. gecatsim/material/edlp/phot/pe-cs-56.dat +1068 -0
  669. gecatsim/material/edlp/phot/pe-cs-57.dat +1213 -0
  670. gecatsim/material/edlp/phot/pe-cs-58.dat +1230 -0
  671. gecatsim/material/edlp/phot/pe-cs-59.dat +1173 -0
  672. gecatsim/material/edlp/phot/pe-cs-6.dat +369 -0
  673. gecatsim/material/edlp/phot/pe-cs-60.dat +1237 -0
  674. gecatsim/material/edlp/phot/pe-cs-61.dat +1196 -0
  675. gecatsim/material/edlp/phot/pe-cs-62.dat +1210 -0
  676. gecatsim/material/edlp/phot/pe-cs-63.dat +1167 -0
  677. gecatsim/material/edlp/phot/pe-cs-64.dat +1309 -0
  678. gecatsim/material/edlp/phot/pe-cs-65.dat +1140 -0
  679. gecatsim/material/edlp/phot/pe-cs-66.dat +1172 -0
  680. gecatsim/material/edlp/phot/pe-cs-67.dat +1175 -0
  681. gecatsim/material/edlp/phot/pe-cs-68.dat +1168 -0
  682. gecatsim/material/edlp/phot/pe-cs-69.dat +1222 -0
  683. gecatsim/material/edlp/phot/pe-cs-7.dat +367 -0
  684. gecatsim/material/edlp/phot/pe-cs-70.dat +1217 -0
  685. gecatsim/material/edlp/phot/pe-cs-71.dat +1341 -0
  686. gecatsim/material/edlp/phot/pe-cs-72.dat +1317 -0
  687. gecatsim/material/edlp/phot/pe-cs-73.dat +1270 -0
  688. gecatsim/material/edlp/phot/pe-cs-74.dat +1295 -0
  689. gecatsim/material/edlp/phot/pe-cs-75.dat +1257 -0
  690. gecatsim/material/edlp/phot/pe-cs-76.dat +1295 -0
  691. gecatsim/material/edlp/phot/pe-cs-77.dat +1196 -0
  692. gecatsim/material/edlp/phot/pe-cs-78.dat +1198 -0
  693. gecatsim/material/edlp/phot/pe-cs-79.dat +1276 -0
  694. gecatsim/material/edlp/phot/pe-cs-8.dat +396 -0
  695. gecatsim/material/edlp/phot/pe-cs-80.dat +1205 -0
  696. gecatsim/material/edlp/phot/pe-cs-81.dat +1380 -0
  697. gecatsim/material/edlp/phot/pe-cs-82.dat +1355 -0
  698. gecatsim/material/edlp/phot/pe-cs-83.dat +1386 -0
  699. gecatsim/material/edlp/phot/pe-cs-84.dat +1366 -0
  700. gecatsim/material/edlp/phot/pe-cs-85.dat +1379 -0
  701. gecatsim/material/edlp/phot/pe-cs-86.dat +1342 -0
  702. gecatsim/material/edlp/phot/pe-cs-87.dat +1390 -0
  703. gecatsim/material/edlp/phot/pe-cs-88.dat +1248 -0
  704. gecatsim/material/edlp/phot/pe-cs-89.dat +1288 -0
  705. gecatsim/material/edlp/phot/pe-cs-9.dat +384 -0
  706. gecatsim/material/edlp/phot/pe-cs-90.dat +1400 -0
  707. gecatsim/material/edlp/phot/pe-cs-91.dat +1517 -0
  708. gecatsim/material/edlp/phot/pe-cs-92.dat +1571 -0
  709. gecatsim/material/edlp/phot/pe-cs-93.dat +1602 -0
  710. gecatsim/material/edlp/phot/pe-cs-94.dat +1432 -0
  711. gecatsim/material/edlp/phot/pe-cs-95.dat +1456 -0
  712. gecatsim/material/edlp/phot/pe-cs-96.dat +1494 -0
  713. gecatsim/material/edlp/phot/pe-cs-97.dat +1522 -0
  714. gecatsim/material/edlp/phot/pe-cs-98.dat +1498 -0
  715. gecatsim/material/edlp/phot/pe-cs-99.dat +1573 -0
  716. gecatsim/material/edlp/phot/pe-cs-all.dat +0 -0
  717. gecatsim/material/edlp/phot/pe-ss-cs-1.dat +88 -0
  718. gecatsim/material/edlp/phot/pe-ss-cs-10.dat +474 -0
  719. gecatsim/material/edlp/phot/pe-ss-cs-100.dat +2821 -0
  720. gecatsim/material/edlp/phot/pe-ss-cs-11.dat +717 -0
  721. gecatsim/material/edlp/phot/pe-ss-cs-12.dat +693 -0
  722. gecatsim/material/edlp/phot/pe-ss-cs-13.dat +978 -0
  723. gecatsim/material/edlp/phot/pe-ss-cs-14.dat +941 -0
  724. gecatsim/material/edlp/phot/pe-ss-cs-15.dat +884 -0
  725. gecatsim/material/edlp/phot/pe-ss-cs-16.dat +861 -0
  726. gecatsim/material/edlp/phot/pe-ss-cs-17.dat +870 -0
  727. gecatsim/material/edlp/phot/pe-ss-cs-18.dat +853 -0
  728. gecatsim/material/edlp/phot/pe-ss-cs-19.dat +993 -0
  729. gecatsim/material/edlp/phot/pe-ss-cs-2.dat +98 -0
  730. gecatsim/material/edlp/phot/pe-ss-cs-20.dat +959 -0
  731. gecatsim/material/edlp/phot/pe-ss-cs-21.dat +1233 -0
  732. gecatsim/material/edlp/phot/pe-ss-cs-22.dat +1227 -0
  733. gecatsim/material/edlp/phot/pe-ss-cs-23.dat +1225 -0
  734. gecatsim/material/edlp/phot/pe-ss-cs-24.dat +1250 -0
  735. gecatsim/material/edlp/phot/pe-ss-cs-25.dat +1209 -0
  736. gecatsim/material/edlp/phot/pe-ss-cs-26.dat +1209 -0
  737. gecatsim/material/edlp/phot/pe-ss-cs-27.dat +1200 -0
  738. gecatsim/material/edlp/phot/pe-ss-cs-28.dat +1198 -0
  739. gecatsim/material/edlp/phot/pe-ss-cs-29.dat +1204 -0
  740. gecatsim/material/edlp/phot/pe-ss-cs-3.dat +207 -0
  741. gecatsim/material/edlp/phot/pe-ss-cs-30.dat +1199 -0
  742. gecatsim/material/edlp/phot/pe-ss-cs-31.dat +1471 -0
  743. gecatsim/material/edlp/phot/pe-ss-cs-32.dat +1456 -0
  744. gecatsim/material/edlp/phot/pe-ss-cs-33.dat +1419 -0
  745. gecatsim/material/edlp/phot/pe-ss-cs-34.dat +1425 -0
  746. gecatsim/material/edlp/phot/pe-ss-cs-35.dat +1392 -0
  747. gecatsim/material/edlp/phot/pe-ss-cs-36.dat +1395 -0
  748. gecatsim/material/edlp/phot/pe-ss-cs-37.dat +1460 -0
  749. gecatsim/material/edlp/phot/pe-ss-cs-38.dat +1407 -0
  750. gecatsim/material/edlp/phot/pe-ss-cs-39.dat +1819 -0
  751. gecatsim/material/edlp/phot/pe-ss-cs-4.dat +211 -0
  752. gecatsim/material/edlp/phot/pe-ss-cs-40.dat +1807 -0
  753. gecatsim/material/edlp/phot/pe-ss-cs-41.dat +1811 -0
  754. gecatsim/material/edlp/phot/pe-ss-cs-42.dat +1818 -0
  755. gecatsim/material/edlp/phot/pe-ss-cs-43.dat +1792 -0
  756. gecatsim/material/edlp/phot/pe-ss-cs-44.dat +1781 -0
  757. gecatsim/material/edlp/phot/pe-ss-cs-45.dat +1788 -0
  758. gecatsim/material/edlp/phot/pe-ss-cs-46.dat +1611 -0
  759. gecatsim/material/edlp/phot/pe-ss-cs-47.dat +1771 -0
  760. gecatsim/material/edlp/phot/pe-ss-cs-48.dat +1782 -0
  761. gecatsim/material/edlp/phot/pe-ss-cs-49.dat +2033 -0
  762. gecatsim/material/edlp/phot/pe-ss-cs-5.dat +431 -0
  763. gecatsim/material/edlp/phot/pe-ss-cs-50.dat +1943 -0
  764. gecatsim/material/edlp/phot/pe-ss-cs-51.dat +1918 -0
  765. gecatsim/material/edlp/phot/pe-ss-cs-52.dat +1879 -0
  766. gecatsim/material/edlp/phot/pe-ss-cs-53.dat +1861 -0
  767. gecatsim/material/edlp/phot/pe-ss-cs-54.dat +1782 -0
  768. gecatsim/material/edlp/phot/pe-ss-cs-55.dat +1855 -0
  769. gecatsim/material/edlp/phot/pe-ss-cs-56.dat +1813 -0
  770. gecatsim/material/edlp/phot/pe-ss-cs-57.dat +2144 -0
  771. gecatsim/material/edlp/phot/pe-ss-cs-58.dat +2090 -0
  772. gecatsim/material/edlp/phot/pe-ss-cs-59.dat +2071 -0
  773. gecatsim/material/edlp/phot/pe-ss-cs-6.dat +436 -0
  774. gecatsim/material/edlp/phot/pe-ss-cs-60.dat +2066 -0
  775. gecatsim/material/edlp/phot/pe-ss-cs-61.dat +2064 -0
  776. gecatsim/material/edlp/phot/pe-ss-cs-62.dat +2063 -0
  777. gecatsim/material/edlp/phot/pe-ss-cs-63.dat +2043 -0
  778. gecatsim/material/edlp/phot/pe-ss-cs-64.dat +2405 -0
  779. gecatsim/material/edlp/phot/pe-ss-cs-65.dat +2035 -0
  780. gecatsim/material/edlp/phot/pe-ss-cs-66.dat +2023 -0
  781. gecatsim/material/edlp/phot/pe-ss-cs-67.dat +2026 -0
  782. gecatsim/material/edlp/phot/pe-ss-cs-68.dat +2029 -0
  783. gecatsim/material/edlp/phot/pe-ss-cs-69.dat +2018 -0
  784. gecatsim/material/edlp/phot/pe-ss-cs-7.dat +440 -0
  785. gecatsim/material/edlp/phot/pe-ss-cs-70.dat +2048 -0
  786. gecatsim/material/edlp/phot/pe-ss-cs-71.dat +2348 -0
  787. gecatsim/material/edlp/phot/pe-ss-cs-72.dat +2333 -0
  788. gecatsim/material/edlp/phot/pe-ss-cs-73.dat +2320 -0
  789. gecatsim/material/edlp/phot/pe-ss-cs-74.dat +2313 -0
  790. gecatsim/material/edlp/phot/pe-ss-cs-75.dat +2290 -0
  791. gecatsim/material/edlp/phot/pe-ss-cs-76.dat +2280 -0
  792. gecatsim/material/edlp/phot/pe-ss-cs-77.dat +2145 -0
  793. gecatsim/material/edlp/phot/pe-ss-cs-78.dat +2268 -0
  794. gecatsim/material/edlp/phot/pe-ss-cs-79.dat +2262 -0
  795. gecatsim/material/edlp/phot/pe-ss-cs-8.dat +445 -0
  796. gecatsim/material/edlp/phot/pe-ss-cs-80.dat +2271 -0
  797. gecatsim/material/edlp/phot/pe-ss-cs-81.dat +2497 -0
  798. gecatsim/material/edlp/phot/pe-ss-cs-82.dat +2494 -0
  799. gecatsim/material/edlp/phot/pe-ss-cs-83.dat +2467 -0
  800. gecatsim/material/edlp/phot/pe-ss-cs-84.dat +2453 -0
  801. gecatsim/material/edlp/phot/pe-ss-cs-85.dat +2423 -0
  802. gecatsim/material/edlp/phot/pe-ss-cs-86.dat +2379 -0
  803. gecatsim/material/edlp/phot/pe-ss-cs-87.dat +2451 -0
  804. gecatsim/material/edlp/phot/pe-ss-cs-88.dat +2367 -0
  805. gecatsim/material/edlp/phot/pe-ss-cs-89.dat +2696 -0
  806. gecatsim/material/edlp/phot/pe-ss-cs-9.dat +457 -0
  807. gecatsim/material/edlp/phot/pe-ss-cs-90.dat +2694 -0
  808. gecatsim/material/edlp/phot/pe-ss-cs-91.dat +3131 -0
  809. gecatsim/material/edlp/phot/pe-ss-cs-92.dat +3130 -0
  810. gecatsim/material/edlp/phot/pe-ss-cs-93.dat +3142 -0
  811. gecatsim/material/edlp/phot/pe-ss-cs-94.dat +2794 -0
  812. gecatsim/material/edlp/phot/pe-ss-cs-95.dat +2810 -0
  813. gecatsim/material/edlp/phot/pe-ss-cs-96.dat +3103 -0
  814. gecatsim/material/edlp/phot/pe-ss-cs-97.dat +3126 -0
  815. gecatsim/material/edlp/phot/pe-ss-cs-98.dat +2835 -0
  816. gecatsim/material/edlp/phot/pe-ss-cs-99.dat +2851 -0
  817. gecatsim/material/edlp/rayl/re-cs-1.dat +375 -0
  818. gecatsim/material/edlp/rayl/re-cs-10.dat +453 -0
  819. gecatsim/material/edlp/rayl/re-cs-100.dat +1555 -0
  820. gecatsim/material/edlp/rayl/re-cs-11.dat +607 -0
  821. gecatsim/material/edlp/rayl/re-cs-12.dat +561 -0
  822. gecatsim/material/edlp/rayl/re-cs-13.dat +903 -0
  823. gecatsim/material/edlp/rayl/re-cs-14.dat +830 -0
  824. gecatsim/material/edlp/rayl/re-cs-15.dat +745 -0
  825. gecatsim/material/edlp/rayl/re-cs-16.dat +698 -0
  826. gecatsim/material/edlp/rayl/re-cs-17.dat +666 -0
  827. gecatsim/material/edlp/rayl/re-cs-18.dat +597 -0
  828. gecatsim/material/edlp/rayl/re-cs-19.dat +760 -0
  829. gecatsim/material/edlp/rayl/re-cs-2.dat +343 -0
  830. gecatsim/material/edlp/rayl/re-cs-20.dat +796 -0
  831. gecatsim/material/edlp/rayl/re-cs-21.dat +869 -0
  832. gecatsim/material/edlp/rayl/re-cs-22.dat +869 -0
  833. gecatsim/material/edlp/rayl/re-cs-23.dat +839 -0
  834. gecatsim/material/edlp/rayl/re-cs-24.dat +826 -0
  835. gecatsim/material/edlp/rayl/re-cs-25.dat +914 -0
  836. gecatsim/material/edlp/rayl/re-cs-26.dat +913 -0
  837. gecatsim/material/edlp/rayl/re-cs-27.dat +901 -0
  838. gecatsim/material/edlp/rayl/re-cs-28.dat +888 -0
  839. gecatsim/material/edlp/rayl/re-cs-29.dat +844 -0
  840. gecatsim/material/edlp/rayl/re-cs-3.dat +517 -0
  841. gecatsim/material/edlp/rayl/re-cs-30.dat +801 -0
  842. gecatsim/material/edlp/rayl/re-cs-31.dat +1202 -0
  843. gecatsim/material/edlp/rayl/re-cs-32.dat +1113 -0
  844. gecatsim/material/edlp/rayl/re-cs-33.dat +1010 -0
  845. gecatsim/material/edlp/rayl/re-cs-34.dat +928 -0
  846. gecatsim/material/edlp/rayl/re-cs-35.dat +894 -0
  847. gecatsim/material/edlp/rayl/re-cs-36.dat +719 -0
  848. gecatsim/material/edlp/rayl/re-cs-37.dat +892 -0
  849. gecatsim/material/edlp/rayl/re-cs-38.dat +891 -0
  850. gecatsim/material/edlp/rayl/re-cs-39.dat +906 -0
  851. gecatsim/material/edlp/rayl/re-cs-4.dat +493 -0
  852. gecatsim/material/edlp/rayl/re-cs-40.dat +930 -0
  853. gecatsim/material/edlp/rayl/re-cs-41.dat +918 -0
  854. gecatsim/material/edlp/rayl/re-cs-42.dat +1068 -0
  855. gecatsim/material/edlp/rayl/re-cs-43.dat +1085 -0
  856. gecatsim/material/edlp/rayl/re-cs-44.dat +1085 -0
  857. gecatsim/material/edlp/rayl/re-cs-45.dat +1124 -0
  858. gecatsim/material/edlp/rayl/re-cs-46.dat +853 -0
  859. gecatsim/material/edlp/rayl/re-cs-47.dat +1087 -0
  860. gecatsim/material/edlp/rayl/re-cs-48.dat +1001 -0
  861. gecatsim/material/edlp/rayl/re-cs-49.dat +1508 -0
  862. gecatsim/material/edlp/rayl/re-cs-5.dat +619 -0
  863. gecatsim/material/edlp/rayl/re-cs-50.dat +1370 -0
  864. gecatsim/material/edlp/rayl/re-cs-51.dat +1234 -0
  865. gecatsim/material/edlp/rayl/re-cs-52.dat +1138 -0
  866. gecatsim/material/edlp/rayl/re-cs-53.dat +1062 -0
  867. gecatsim/material/edlp/rayl/re-cs-54.dat +925 -0
  868. gecatsim/material/edlp/rayl/re-cs-55.dat +1130 -0
  869. gecatsim/material/edlp/rayl/re-cs-56.dat +1176 -0
  870. gecatsim/material/edlp/rayl/re-cs-57.dat +1172 -0
  871. gecatsim/material/edlp/rayl/re-cs-58.dat +1243 -0
  872. gecatsim/material/edlp/rayl/re-cs-59.dat +1232 -0
  873. gecatsim/material/edlp/rayl/re-cs-6.dat +647 -0
  874. gecatsim/material/edlp/rayl/re-cs-60.dat +1195 -0
  875. gecatsim/material/edlp/rayl/re-cs-61.dat +1229 -0
  876. gecatsim/material/edlp/rayl/re-cs-62.dat +1297 -0
  877. gecatsim/material/edlp/rayl/re-cs-63.dat +1324 -0
  878. gecatsim/material/edlp/rayl/re-cs-64.dat +1384 -0
  879. gecatsim/material/edlp/rayl/re-cs-65.dat +1356 -0
  880. gecatsim/material/edlp/rayl/re-cs-66.dat +1401 -0
  881. gecatsim/material/edlp/rayl/re-cs-67.dat +1374 -0
  882. gecatsim/material/edlp/rayl/re-cs-68.dat +1264 -0
  883. gecatsim/material/edlp/rayl/re-cs-69.dat +1327 -0
  884. gecatsim/material/edlp/rayl/re-cs-7.dat +669 -0
  885. gecatsim/material/edlp/rayl/re-cs-70.dat +1243 -0
  886. gecatsim/material/edlp/rayl/re-cs-71.dat +1384 -0
  887. gecatsim/material/edlp/rayl/re-cs-72.dat +1338 -0
  888. gecatsim/material/edlp/rayl/re-cs-73.dat +1181 -0
  889. gecatsim/material/edlp/rayl/re-cs-74.dat +1009 -0
  890. gecatsim/material/edlp/rayl/re-cs-75.dat +1138 -0
  891. gecatsim/material/edlp/rayl/re-cs-76.dat +1106 -0
  892. gecatsim/material/edlp/rayl/re-cs-77.dat +1040 -0
  893. gecatsim/material/edlp/rayl/re-cs-78.dat +1176 -0
  894. gecatsim/material/edlp/rayl/re-cs-79.dat +1123 -0
  895. gecatsim/material/edlp/rayl/re-cs-8.dat +662 -0
  896. gecatsim/material/edlp/rayl/re-cs-80.dat +1126 -0
  897. gecatsim/material/edlp/rayl/re-cs-81.dat +1668 -0
  898. gecatsim/material/edlp/rayl/re-cs-82.dat +1641 -0
  899. gecatsim/material/edlp/rayl/re-cs-83.dat +1448 -0
  900. gecatsim/material/edlp/rayl/re-cs-84.dat +1338 -0
  901. gecatsim/material/edlp/rayl/re-cs-85.dat +1236 -0
  902. gecatsim/material/edlp/rayl/re-cs-86.dat +1099 -0
  903. gecatsim/material/edlp/rayl/re-cs-87.dat +1368 -0
  904. gecatsim/material/edlp/rayl/re-cs-88.dat +1448 -0
  905. gecatsim/material/edlp/rayl/re-cs-89.dat +1592 -0
  906. gecatsim/material/edlp/rayl/re-cs-9.dat +584 -0
  907. gecatsim/material/edlp/rayl/re-cs-90.dat +1504 -0
  908. gecatsim/material/edlp/rayl/re-cs-91.dat +1547 -0
  909. gecatsim/material/edlp/rayl/re-cs-92.dat +1633 -0
  910. gecatsim/material/edlp/rayl/re-cs-93.dat +1625 -0
  911. gecatsim/material/edlp/rayl/re-cs-94.dat +1427 -0
  912. gecatsim/material/edlp/rayl/re-cs-95.dat +1465 -0
  913. gecatsim/material/edlp/rayl/re-cs-96.dat +1794 -0
  914. gecatsim/material/edlp/rayl/re-cs-97.dat +1638 -0
  915. gecatsim/material/edlp/rayl/re-cs-98.dat +1554 -0
  916. gecatsim/material/edlp/rayl/re-cs-99.dat +1528 -0
  917. gecatsim/material/edlp/rayl/re-cs-all.dat +0 -0
  918. gecatsim/material/edlp/rayl/re-ff-1.dat +103 -0
  919. gecatsim/material/edlp/rayl/re-ff-10.dat +175 -0
  920. gecatsim/material/edlp/rayl/re-ff-100.dat +146 -0
  921. gecatsim/material/edlp/rayl/re-ff-11.dat +183 -0
  922. gecatsim/material/edlp/rayl/re-ff-12.dat +176 -0
  923. gecatsim/material/edlp/rayl/re-ff-13.dat +162 -0
  924. gecatsim/material/edlp/rayl/re-ff-14.dat +166 -0
  925. gecatsim/material/edlp/rayl/re-ff-15.dat +162 -0
  926. gecatsim/material/edlp/rayl/re-ff-16.dat +161 -0
  927. gecatsim/material/edlp/rayl/re-ff-17.dat +165 -0
  928. gecatsim/material/edlp/rayl/re-ff-18.dat +157 -0
  929. gecatsim/material/edlp/rayl/re-ff-19.dat +163 -0
  930. gecatsim/material/edlp/rayl/re-ff-2.dat +140 -0
  931. gecatsim/material/edlp/rayl/re-ff-20.dat +164 -0
  932. gecatsim/material/edlp/rayl/re-ff-21.dat +158 -0
  933. gecatsim/material/edlp/rayl/re-ff-22.dat +159 -0
  934. gecatsim/material/edlp/rayl/re-ff-23.dat +158 -0
  935. gecatsim/material/edlp/rayl/re-ff-24.dat +165 -0
  936. gecatsim/material/edlp/rayl/re-ff-25.dat +160 -0
  937. gecatsim/material/edlp/rayl/re-ff-26.dat +163 -0
  938. gecatsim/material/edlp/rayl/re-ff-27.dat +161 -0
  939. gecatsim/material/edlp/rayl/re-ff-28.dat +169 -0
  940. gecatsim/material/edlp/rayl/re-ff-29.dat +163 -0
  941. gecatsim/material/edlp/rayl/re-ff-3.dat +145 -0
  942. gecatsim/material/edlp/rayl/re-ff-30.dat +164 -0
  943. gecatsim/material/edlp/rayl/re-ff-31.dat +162 -0
  944. gecatsim/material/edlp/rayl/re-ff-32.dat +164 -0
  945. gecatsim/material/edlp/rayl/re-ff-33.dat +163 -0
  946. gecatsim/material/edlp/rayl/re-ff-34.dat +165 -0
  947. gecatsim/material/edlp/rayl/re-ff-35.dat +163 -0
  948. gecatsim/material/edlp/rayl/re-ff-36.dat +154 -0
  949. gecatsim/material/edlp/rayl/re-ff-37.dat +156 -0
  950. gecatsim/material/edlp/rayl/re-ff-38.dat +157 -0
  951. gecatsim/material/edlp/rayl/re-ff-39.dat +157 -0
  952. gecatsim/material/edlp/rayl/re-ff-4.dat +147 -0
  953. gecatsim/material/edlp/rayl/re-ff-40.dat +166 -0
  954. gecatsim/material/edlp/rayl/re-ff-41.dat +168 -0
  955. gecatsim/material/edlp/rayl/re-ff-42.dat +163 -0
  956. gecatsim/material/edlp/rayl/re-ff-43.dat +160 -0
  957. gecatsim/material/edlp/rayl/re-ff-44.dat +156 -0
  958. gecatsim/material/edlp/rayl/re-ff-45.dat +156 -0
  959. gecatsim/material/edlp/rayl/re-ff-46.dat +158 -0
  960. gecatsim/material/edlp/rayl/re-ff-47.dat +158 -0
  961. gecatsim/material/edlp/rayl/re-ff-48.dat +160 -0
  962. gecatsim/material/edlp/rayl/re-ff-49.dat +161 -0
  963. gecatsim/material/edlp/rayl/re-ff-5.dat +144 -0
  964. gecatsim/material/edlp/rayl/re-ff-50.dat +154 -0
  965. gecatsim/material/edlp/rayl/re-ff-51.dat +152 -0
  966. gecatsim/material/edlp/rayl/re-ff-52.dat +154 -0
  967. gecatsim/material/edlp/rayl/re-ff-53.dat +159 -0
  968. gecatsim/material/edlp/rayl/re-ff-54.dat +159 -0
  969. gecatsim/material/edlp/rayl/re-ff-55.dat +154 -0
  970. gecatsim/material/edlp/rayl/re-ff-56.dat +157 -0
  971. gecatsim/material/edlp/rayl/re-ff-57.dat +164 -0
  972. gecatsim/material/edlp/rayl/re-ff-58.dat +163 -0
  973. gecatsim/material/edlp/rayl/re-ff-59.dat +158 -0
  974. gecatsim/material/edlp/rayl/re-ff-6.dat +151 -0
  975. gecatsim/material/edlp/rayl/re-ff-60.dat +153 -0
  976. gecatsim/material/edlp/rayl/re-ff-61.dat +165 -0
  977. gecatsim/material/edlp/rayl/re-ff-62.dat +165 -0
  978. gecatsim/material/edlp/rayl/re-ff-63.dat +156 -0
  979. gecatsim/material/edlp/rayl/re-ff-64.dat +162 -0
  980. gecatsim/material/edlp/rayl/re-ff-65.dat +159 -0
  981. gecatsim/material/edlp/rayl/re-ff-66.dat +154 -0
  982. gecatsim/material/edlp/rayl/re-ff-67.dat +164 -0
  983. gecatsim/material/edlp/rayl/re-ff-68.dat +155 -0
  984. gecatsim/material/edlp/rayl/re-ff-69.dat +160 -0
  985. gecatsim/material/edlp/rayl/re-ff-7.dat +170 -0
  986. gecatsim/material/edlp/rayl/re-ff-70.dat +165 -0
  987. gecatsim/material/edlp/rayl/re-ff-71.dat +158 -0
  988. gecatsim/material/edlp/rayl/re-ff-72.dat +159 -0
  989. gecatsim/material/edlp/rayl/re-ff-73.dat +161 -0
  990. gecatsim/material/edlp/rayl/re-ff-74.dat +160 -0
  991. gecatsim/material/edlp/rayl/re-ff-75.dat +157 -0
  992. gecatsim/material/edlp/rayl/re-ff-76.dat +151 -0
  993. gecatsim/material/edlp/rayl/re-ff-77.dat +148 -0
  994. gecatsim/material/edlp/rayl/re-ff-78.dat +146 -0
  995. gecatsim/material/edlp/rayl/re-ff-79.dat +144 -0
  996. gecatsim/material/edlp/rayl/re-ff-8.dat +172 -0
  997. gecatsim/material/edlp/rayl/re-ff-80.dat +149 -0
  998. gecatsim/material/edlp/rayl/re-ff-81.dat +154 -0
  999. gecatsim/material/edlp/rayl/re-ff-82.dat +150 -0
  1000. gecatsim/material/edlp/rayl/re-ff-83.dat +155 -0
  1001. gecatsim/material/edlp/rayl/re-ff-84.dat +152 -0
  1002. gecatsim/material/edlp/rayl/re-ff-85.dat +158 -0
  1003. gecatsim/material/edlp/rayl/re-ff-86.dat +150 -0
  1004. gecatsim/material/edlp/rayl/re-ff-87.dat +150 -0
  1005. gecatsim/material/edlp/rayl/re-ff-88.dat +149 -0
  1006. gecatsim/material/edlp/rayl/re-ff-89.dat +147 -0
  1007. gecatsim/material/edlp/rayl/re-ff-9.dat +180 -0
  1008. gecatsim/material/edlp/rayl/re-ff-90.dat +149 -0
  1009. gecatsim/material/edlp/rayl/re-ff-91.dat +147 -0
  1010. gecatsim/material/edlp/rayl/re-ff-92.dat +153 -0
  1011. gecatsim/material/edlp/rayl/re-ff-93.dat +148 -0
  1012. gecatsim/material/edlp/rayl/re-ff-94.dat +150 -0
  1013. gecatsim/material/edlp/rayl/re-ff-95.dat +147 -0
  1014. gecatsim/material/edlp/rayl/re-ff-96.dat +147 -0
  1015. gecatsim/material/edlp/rayl/re-ff-97.dat +146 -0
  1016. gecatsim/material/edlp/rayl/re-ff-98.dat +148 -0
  1017. gecatsim/material/edlp/rayl/re-ff-99.dat +148 -0
  1018. gecatsim/material/edlp/rayl/re-ff-all.dat +0 -0
  1019. gecatsim/material/graphite +13 -0
  1020. gecatsim/material/ncat_adipose +19 -0
  1021. gecatsim/material/ncat_air +18 -0
  1022. gecatsim/material/ncat_aluminum +14 -0
  1023. gecatsim/material/ncat_bladder +23 -0
  1024. gecatsim/material/ncat_blood +24 -0
  1025. gecatsim/material/ncat_blood_with_0_7pct_iodine +25 -0
  1026. gecatsim/material/ncat_blood_with_0_8pct_iodine +25 -0
  1027. gecatsim/material/ncat_blood_with_0_9pct_iodine +25 -0
  1028. gecatsim/material/ncat_blood_with_1_0pct_iodine +25 -0
  1029. gecatsim/material/ncat_blood_with_1_1pct_iodine +25 -0
  1030. gecatsim/material/ncat_blood_with_2_0pct_iodine +25 -0
  1031. gecatsim/material/ncat_blood_with_3_0pct_iodine +25 -0
  1032. gecatsim/material/ncat_brain +23 -0
  1033. gecatsim/material/ncat_breast_mammary +22 -0
  1034. gecatsim/material/ncat_cartilage +22 -0
  1035. gecatsim/material/ncat_dry_rib +23 -0
  1036. gecatsim/material/ncat_dry_spine +24 -0
  1037. gecatsim/material/ncat_eye_lens +22 -0
  1038. gecatsim/material/ncat_graphite +14 -0
  1039. gecatsim/material/ncat_heart +23 -0
  1040. gecatsim/material/ncat_intestine +23 -0
  1041. gecatsim/material/ncat_iodine +14 -0
  1042. gecatsim/material/ncat_iodine_blood +25 -0
  1043. gecatsim/material/ncat_iron +14 -0
  1044. gecatsim/material/ncat_kidney +24 -0
  1045. gecatsim/material/ncat_lead +14 -0
  1046. gecatsim/material/ncat_liver +23 -0
  1047. gecatsim/material/ncat_lung +23 -0
  1048. gecatsim/material/ncat_lymph +21 -0
  1049. gecatsim/material/ncat_muscle +23 -0
  1050. gecatsim/material/ncat_ovary +23 -0
  1051. gecatsim/material/ncat_pancreas +23 -0
  1052. gecatsim/material/ncat_pmma +17 -0
  1053. gecatsim/material/ncat_red_marrow +23 -0
  1054. gecatsim/material/ncat_skin +23 -0
  1055. gecatsim/material/ncat_skull +23 -0
  1056. gecatsim/material/ncat_spleen +23 -0
  1057. gecatsim/material/ncat_testis +23 -0
  1058. gecatsim/material/ncat_thyroid +24 -0
  1059. gecatsim/material/ncat_titanium +14 -0
  1060. gecatsim/material/ncat_water +16 -0
  1061. gecatsim/material/ncat_yellow_marrow +21 -0
  1062. gecatsim/material/plexi +21 -0
  1063. gecatsim/material/polyethylene +14 -0
  1064. gecatsim/material/polyethylene_HDPE +16 -0
  1065. gecatsim/material/polyethylene_LDPE +16 -0
  1066. gecatsim/material/polyethylene_MDPE +16 -0
  1067. gecatsim/material/polyethylene_legacy +20 -0
  1068. gecatsim/material/polystyrene +18 -0
  1069. gecatsim/material/polystyrene_legacy +21 -0
  1070. gecatsim/material/pvc_legacy +22 -0
  1071. gecatsim/material/water +16 -0
  1072. gecatsim/material/water_20C +16 -0
  1073. gecatsim/material/water_20C_NaCl_0p9_pct +18 -0
  1074. gecatsim/material/water_20C_iodine_100mg +17 -0
  1075. gecatsim/material/water_20C_iodine_10mg +17 -0
  1076. gecatsim/material/water_20C_iodine_15mg +17 -0
  1077. gecatsim/material/water_20C_iodine_1mg +17 -0
  1078. gecatsim/material/water_20C_iodine_20mg +17 -0
  1079. gecatsim/material/water_20C_iodine_2mg +17 -0
  1080. gecatsim/material/water_20C_iodine_30mg +17 -0
  1081. gecatsim/material/water_20C_iodine_40mg +17 -0
  1082. gecatsim/material/water_20C_iodine_50mg +17 -0
  1083. gecatsim/material/water_20C_iodine_5mg +17 -0
  1084. gecatsim/material/water_37C +16 -0
  1085. gecatsim/phantom/CTDI_16cm_WaterAirPEBoneChambers.ppm +62 -0
  1086. gecatsim/phantom/CatSimLogo_1024/CatSimLogo_1024_128mmZ.json +51 -0
  1087. gecatsim/phantom/CatSimLogo_1024/CatSim_logo_1024.json +51 -0
  1088. gecatsim/phantom/CatSimLogo_1024/CatSim_logo_1024_bone_1024x1024x1.raw +0 -0
  1089. gecatsim/phantom/CatSimLogo_1024/CatSim_logo_1024_water_1024x1024x1.raw +0 -0
  1090. gecatsim/phantom/W20.ppm +22 -0
  1091. gecatsim/phantom/W30.ppm +22 -0
  1092. gecatsim/phantom/W35.ppm +22 -0
  1093. gecatsim/phantom/analyticArtifactPhantom.ppm +41 -0
  1094. gecatsim/phantom/female_adult_average_lung_lesions_reduced.nrb +49874 -0
  1095. gecatsim/phantom/poly_bin/poly10 +0 -0
  1096. gecatsim/phantom/poly_bin/poly100 +0 -0
  1097. gecatsim/phantom/poly_bin/poly12 +0 -0
  1098. gecatsim/phantom/poly_bin/poly14 +0 -0
  1099. gecatsim/phantom/poly_bin/poly17 +0 -0
  1100. gecatsim/phantom/poly_bin/poly20 +0 -0
  1101. gecatsim/phantom/poly_bin/poly21 +0 -0
  1102. gecatsim/phantom/poly_bin/poly22 +0 -0
  1103. gecatsim/phantom/poly_bin/poly23 +0 -0
  1104. gecatsim/phantom/poly_bin/poly24 +0 -0
  1105. gecatsim/phantom/poly_bin/poly25 +0 -0
  1106. gecatsim/phantom/poly_bin/poly26 +0 -0
  1107. gecatsim/phantom/poly_bin/poly28 +0 -0
  1108. gecatsim/phantom/poly_bin/poly32 +0 -0
  1109. gecatsim/phantom/poly_bin/poly33 +0 -0
  1110. gecatsim/phantom/poly_bin/poly34 +0 -0
  1111. gecatsim/phantom/poly_bin/poly36 +0 -0
  1112. gecatsim/phantom/poly_bin/poly38 +0 -0
  1113. gecatsim/phantom/poly_bin/poly4 +0 -0
  1114. gecatsim/phantom/poly_bin/poly40 +0 -0
  1115. gecatsim/phantom/poly_bin/poly41 +0 -0
  1116. gecatsim/phantom/poly_bin/poly44 +0 -0
  1117. gecatsim/phantom/poly_bin/poly49 +0 -0
  1118. gecatsim/phantom/poly_bin/poly5 +0 -0
  1119. gecatsim/phantom/poly_bin/poly50 +0 -0
  1120. gecatsim/phantom/poly_bin/poly52 +0 -0
  1121. gecatsim/phantom/poly_bin/poly55 +0 -0
  1122. gecatsim/phantom/poly_bin/poly58 +0 -0
  1123. gecatsim/phantom/poly_bin/poly6 +0 -0
  1124. gecatsim/phantom/poly_bin/poly60 +0 -0
  1125. gecatsim/phantom/poly_bin/poly62 +0 -0
  1126. gecatsim/phantom/poly_bin/poly66 +0 -0
  1127. gecatsim/phantom/poly_bin/poly68 +0 -0
  1128. gecatsim/phantom/poly_bin/poly7 +0 -0
  1129. gecatsim/phantom/poly_bin/poly71 +0 -0
  1130. gecatsim/phantom/poly_bin/poly75 +0 -0
  1131. gecatsim/phantom/poly_bin/poly77 +0 -0
  1132. gecatsim/phantom/poly_bin/poly79 +0 -0
  1133. gecatsim/phantom/poly_bin/poly86 +0 -0
  1134. gecatsim/phantom/poly_bin/poly9 +0 -0
  1135. gecatsim/phantom/poly_bin/poly92 +0 -0
  1136. gecatsim/phantom/poly_bin/poly96 +0 -0
  1137. gecatsim/phantom/tungsten_wire.ppm +12 -0
  1138. gecatsim/phantom/vmale50_chest_less_surfaces.nrb +41545 -0
  1139. gecatsim/pyfiles/C_DD3Proj.py +57 -0
  1140. gecatsim/pyfiles/C_DD3Proj_mm.py +64 -0
  1141. gecatsim/pyfiles/C_Materials_CrossSectionDB_Initialize.py +18 -0
  1142. gecatsim/pyfiles/C_Materials_CrossSectionMAC_ByProc_Get.py +25 -0
  1143. gecatsim/pyfiles/C_Phantom_Analytic_FORBILD_to_tmp.py +13 -0
  1144. gecatsim/pyfiles/C_Projector_Analytic.py +62 -0
  1145. gecatsim/pyfiles/C_Projector_NCAT.py +66 -0
  1146. gecatsim/pyfiles/C_Projector_Polygon.py +60 -0
  1147. gecatsim/pyfiles/C_Projector_SetData.py +166 -0
  1148. gecatsim/pyfiles/C_Projector_Voxelized.py +75 -0
  1149. gecatsim/pyfiles/C_Source_Analytic_Set.py +17 -0
  1150. gecatsim/pyfiles/C_Source_NCAT_Set.py +17 -0
  1151. gecatsim/pyfiles/C_Source_Voxelized_Set.py +17 -0
  1152. gecatsim/pyfiles/C_Volume_Get.py +24 -0
  1153. gecatsim/pyfiles/C_Volume_NCAT_Get.py +24 -0
  1154. gecatsim/pyfiles/C_Volume_Poly_Get.py +24 -0
  1155. gecatsim/pyfiles/CalcCrossTalk.py +42 -0
  1156. gecatsim/pyfiles/CalcOptCrossTalk.py +39 -0
  1157. gecatsim/pyfiles/CatSim.py +88 -0
  1158. gecatsim/pyfiles/CheckModules.py +59 -0
  1159. gecatsim/pyfiles/Check_Replace_Old_Names.py +85 -0
  1160. gecatsim/pyfiles/CommonTools.py +445 -0
  1161. gecatsim/pyfiles/Detection_DAS.py +25 -0
  1162. gecatsim/pyfiles/Detection_EI.py +84 -0
  1163. gecatsim/pyfiles/Detection_Flux.py +47 -0
  1164. gecatsim/pyfiles/Detection_Lag.py +28 -0
  1165. gecatsim/pyfiles/Detection_PC.py +120 -0
  1166. gecatsim/pyfiles/Detection_prefilter.py +35 -0
  1167. gecatsim/pyfiles/Detector_RayAngles_2D.py +86 -0
  1168. gecatsim/pyfiles/Detector_ThirdgenCurved.py +119 -0
  1169. gecatsim/pyfiles/FlatPanel/Detection_DAS_FlatPanel.py +101 -0
  1170. gecatsim/pyfiles/FlatPanel/Detection_OpticalCrosstalk_FlatPanel.py +39 -0
  1171. gecatsim/pyfiles/FlatPanel/Detector_FlatPanel.py +120 -0
  1172. gecatsim/pyfiles/Gantry_Helical.py +56 -0
  1173. gecatsim/pyfiles/GetMu.py +68 -0
  1174. gecatsim/pyfiles/LowSignalCorr.py +32 -0
  1175. gecatsim/pyfiles/OneScan.py +144 -0
  1176. gecatsim/pyfiles/PhantomProjectorWrapper.py +65 -0
  1177. gecatsim/pyfiles/Phantom_Analytic.py +936 -0
  1178. gecatsim/pyfiles/Phantom_CAD_to_Polygonal.py +82 -0
  1179. gecatsim/pyfiles/Phantom_NCAT.py +96 -0
  1180. gecatsim/pyfiles/Phantom_Polygonal.py +122 -0
  1181. gecatsim/pyfiles/Phantom_Polygonal_ReadPolygon.py +58 -0
  1182. gecatsim/pyfiles/Phantom_Voxelized.py +120 -0
  1183. gecatsim/pyfiles/PrepView.py +56 -0
  1184. gecatsim/pyfiles/Prep_BHC_Accurate.py +69 -0
  1185. gecatsim/pyfiles/ReadMaterialFile.py +29 -0
  1186. gecatsim/pyfiles/Scatter_ConvolutionModel.py +44 -0
  1187. gecatsim/pyfiles/Scatter_Correction.py +52 -0
  1188. gecatsim/pyfiles/SetFocalspot.py +239 -0
  1189. gecatsim/pyfiles/Spectrum.py +130 -0
  1190. gecatsim/pyfiles/Spectrum_heel.py +146 -0
  1191. gecatsim/pyfiles/WriteRawView.py +32 -0
  1192. gecatsim/pyfiles/WriteRawViewChunk.py +40 -0
  1193. gecatsim/pyfiles/Xray_Filter.py +93 -0
  1194. gecatsim/pyfiles/__init__.py +0 -0
  1195. gecatsim/pyfiles/catvoxel.py +161 -0
  1196. gecatsim/pyfiles/randpf.py +27 -0
  1197. gecatsim/reconstruction/lib/fdk_equiAngle.dll +0 -0
  1198. gecatsim/reconstruction/lib/fdk_equiAngle.so +0 -0
  1199. gecatsim/reconstruction/lib/fdk_equiAngle_macos.so +0 -0
  1200. gecatsim/reconstruction/lib/helicalrecon.dll +0 -0
  1201. gecatsim/reconstruction/lib/helicalrecon.so +0 -0
  1202. gecatsim/reconstruction/lib/readme.md +20 -0
  1203. gecatsim/reconstruction/pyfiles/createHSP.py +81 -0
  1204. gecatsim/reconstruction/pyfiles/fdk_equiAngle.py +245 -0
  1205. gecatsim/reconstruction/pyfiles/helical_equiAngle.py +284 -0
  1206. gecatsim/reconstruction/pyfiles/mapConfigVariablesToFDK.py +38 -0
  1207. gecatsim/reconstruction/pyfiles/mapConfigVariablesToHelical.py +50 -0
  1208. gecatsim/reconstruction/pyfiles/recon.py +172 -0
  1209. gecatsim/reconstruction/src/Parallel_FDK_Helical_3DWeighting.c +211 -0
  1210. gecatsim/reconstruction/src/interface_fdk_angle.c +162 -0
  1211. gecatsim/response_matrix/PC_spectral_response_CZT0.25x0.25x1.6.mat +0 -0
  1212. gecatsim/scatter/scatter_kernel.dat +0 -0
  1213. gecatsim/spectrum/XCISTspectrum.m +262 -0
  1214. gecatsim/spectrum/convert.py +21 -0
  1215. gecatsim/spectrum/readme.md +17 -0
  1216. gecatsim/spectrum/tungsten_tar10.0_100_filt.dat +201 -0
  1217. gecatsim/spectrum/tungsten_tar10.0_110_filt.dat +221 -0
  1218. gecatsim/spectrum/tungsten_tar10.0_120_filt.dat +241 -0
  1219. gecatsim/spectrum/tungsten_tar10.0_130_filt.dat +261 -0
  1220. gecatsim/spectrum/tungsten_tar10.0_140_filt.dat +281 -0
  1221. gecatsim/spectrum/tungsten_tar10.0_70_filt.dat +141 -0
  1222. gecatsim/spectrum/tungsten_tar10.0_80_filt.dat +161 -0
  1223. gecatsim/spectrum/tungsten_tar10.0_90_filt.dat +181 -0
  1224. gecatsim/spectrum/tungsten_tar7.0_100_filt.dat +201 -0
  1225. gecatsim/spectrum/tungsten_tar7.0_110_filt.dat +221 -0
  1226. gecatsim/spectrum/tungsten_tar7.0_120_filt.dat +241 -0
  1227. gecatsim/spectrum/tungsten_tar7.0_130_filt.dat +261 -0
  1228. gecatsim/spectrum/tungsten_tar7.0_140_filt.dat +281 -0
  1229. gecatsim/spectrum/tungsten_tar7.0_70_filt.dat +141 -0
  1230. gecatsim/spectrum/tungsten_tar7.0_80_filt.dat +161 -0
  1231. gecatsim/spectrum/tungsten_tar7.0_90_filt.dat +181 -0
  1232. gecatsim/spectrum/xcist_kVp100_tar7_bin1.dat +103 -0
  1233. gecatsim/spectrum/xcist_kVp120_tar7_bin1.dat +123 -0
  1234. gecatsim/spectrum/xcist_kVp140_tar7_bin1.dat +143 -0
  1235. gecatsim/spectrum/xcist_kVp80_tar7_bin1.dat +83 -0
@@ -0,0 +1,93 @@
1
+ # Copyright 2024, GE Precision HealthCare. All rights reserved. See https://github.com/xcist/main/tree/master/license
2
+
3
+ import numpy as np
4
+ from scipy import interpolate
5
+ from gecatsim.pyfiles.GetMu import GetMu
6
+ from gecatsim.pyfiles.CommonTools import *
7
+
8
+ def Xray_Filter(cfg):
9
+ '''
10
+ Calculate the transmittance of flat and bowtie filters
11
+ return cfg.src.filterTrans, dim [totalNumCells, Ebin]
12
+ Mingye Wu, GE Research
13
+
14
+ '''
15
+ cfg.src.filterTrans = np.ones([cfg.det.totalNumCells, cfg.spec.nEbin], dtype=np.single)
16
+ cfg = flat_filter(cfg)
17
+ cfg = bowtie_filter(cfg)
18
+
19
+ return cfg
20
+
21
+ def flat_filter(cfg):
22
+ '''
23
+ Apply the transmittance of flat filter at source side, dim: [Ebin, totalNumCells]
24
+ '''
25
+ cosineFactors = 1/np.cos(cfg.det.gammas)/np.cos(cfg.det.alphas)
26
+
27
+ Evec = cfg.sim.Evec
28
+ trans = np.ones([cfg.det.totalNumCells, cfg.spec.nEbin], dtype = np.single)
29
+
30
+ if hasattr(cfg.protocol, "flatFilter"):
31
+ for ii in range(0, round(len(cfg.protocol.flatFilter)/2)):
32
+ material = cfg.protocol.flatFilter[2*ii]
33
+ depth = cfg.protocol.flatFilter[2*ii+1]
34
+ mu = GetMu(material, Evec)
35
+ trans *= np.exp(-depth*0.1*cosineFactors @ mu.reshape(1, mu.size))
36
+ cfg.src.filterTrans *= trans
37
+
38
+ return cfg
39
+
40
+ def bowtie_filter(cfg):
41
+ '''
42
+ Apply the transmittance of bowtie filter, dim: [Ebin, totalNumCells]
43
+ '''
44
+ if not cfg.protocol.bowtie:
45
+ return cfg
46
+
47
+ # find bowtie file
48
+ bowtieFile = my_path.find("bowtie", cfg.protocol.bowtie, ".txt")
49
+
50
+ # read bowtie file
51
+ data = np.loadtxt(bowtieFile, dtype=np.single, comments=['#', '%'])
52
+
53
+ gammas0 = data[:, 0]
54
+ t0 = data[:, 1:] # thickness in cm
55
+ bowtieMaterials = ['Al', 'graphite', 'Cu', 'Ti']
56
+
57
+ Evec = cfg.spec.Evec
58
+ gammas1 = cfg.det.gammas
59
+
60
+ muT = 0
61
+ for i in range(len(bowtieMaterials)):
62
+ mu = GetMu(bowtieMaterials[i], Evec)
63
+ f = interpolate.interp1d(gammas0, t0[:, i], kind='linear', fill_value='extrapolate')
64
+ t1 = f(gammas1)/np.cos(cfg.det.alphas)
65
+ muT += t1 @ mu.reshape(1, mu.size)
66
+
67
+ trans = np.exp(-muT)
68
+ cfg.src.filterTrans *= trans
69
+
70
+ return cfg
71
+
72
+ # if __name__ == "__main__":
73
+ # import matplotlib.pyplot as plt
74
+ # cfg = source_cfg("./cfg/default.cfg")
75
+ #
76
+ # cfg = feval(cfg.scanner.detectorCallback, cfg)
77
+ # cfg = feval(cfg.scanner.focalspotCallback, cfg)
78
+ # cfg = feval(cfg.physics.rayAngleCallback, cfg)
79
+ # cfg = feval(cfg.protocol.spectrumCallback, cfg)
80
+ #
81
+ # cfg.protocol.bowtie = 'medium'
82
+ # cfg.protocol.flatFilter = ['al', 0.1, 'water', 2]
83
+ #
84
+ # cfg = Xray_Filter(cfg)
85
+ # trans = cfg.src.filterTrans.reshape(cfg.scanner.detectorColCount, cfg.scanner.detectorRowCount, cfg.spec.nEbin)
86
+ # check_value(trans)
87
+ # plt.plot(trans[:, 7, 8])
88
+ # plt.show()
89
+
90
+
91
+
92
+
93
+
File without changes
@@ -0,0 +1,161 @@
1
+ # Copyright 2025, GE Precision HealthCare. All rights reserved. See https://github.com/xcist/main/tree/master/license
2
+ """
3
+ -----------------------------------------------------------------------
4
+ convert analytic, ncat, or polygonal phantoms to voxelized phantom
5
+
6
+ Authors
7
+ Mingye Wu (GE Global Research)
8
+ Jiayong Zhang
9
+
10
+ -----------------------------------------------------------------------
11
+ """
12
+
13
+ import os
14
+ import numpy as np
15
+ import gecatsim as xc
16
+ import json
17
+ from collections import defaultdict
18
+ from gecatsim.pyfiles.GetMu import GetMu
19
+ from gecatsim.pyfiles.CommonTools import *
20
+
21
+ def dumpjson(filename, jsondict):
22
+ out_file = open(filename, "w")
23
+ json.dump(jsondict, out_file, indent = 4)
24
+ out_file.close()
25
+
26
+ def catvoxel(cfg):
27
+
28
+ if not hasattr(cfg, "material_volumes"):
29
+ cfg.material_volumes = 0
30
+ if cfg.material_volumes:
31
+ print('Multiple volumes of material volume fractions will be produced.')
32
+ if cfg.write_vp:
33
+ print('Voxelized phantom files will be written.')
34
+ else:
35
+ print('Voxelized phantom files will not be written.')
36
+ else:
37
+ if hasattr(cfg, "make_img_kv"):
38
+ cfg.spec.Evec = np.array(cfg.make_img_kv)
39
+ else:
40
+ cfg.spec.Evec = np.array([120])
41
+
42
+ print(f"A single volume of attenuation coefficients will be produced.\nAttenuation coefficients will be determined at {cfg.make_img_kv} keV.")
43
+
44
+ # PHANTOM
45
+ cfg = feval(cfg.phantom.callback, cfg)
46
+ Materials = cfg.phantom.Materials
47
+ NumberOfMaterials = cfg.phantom.numberOfMaterials
48
+
49
+ cfg.Nx = cfg.recon.imageSize
50
+ cfg.Ny = cfg.recon.imageSize
51
+ cfg.Nz = cfg.recon.sliceCount
52
+ cfg.dx = cfg.recon.fov / cfg.recon.imageSize
53
+ cfg.dy = cfg.recon.fov / cfg.recon.imageSize
54
+ cfg.dz = cfg.recon.sliceThickness
55
+ cfg.xoff = -cfg.recon.centerOffset[0] / cfg.dx + (cfg.Nx + 1) / 2
56
+ cfg.yoff = -cfg.recon.centerOffset[1] / cfg.dy + (cfg.Ny + 1) / 2
57
+ cfg.zoff = -cfg.recon.centerOffset[2] / cfg.dz + (cfg.Nz + 1) / 2
58
+ print('Phantom setup updated:')
59
+ PrintPhantomSetup(cfg)
60
+
61
+ print(f'Oversampling = {cfg.vol_os}')
62
+
63
+ # VOLUMES
64
+ if cfg.material_volumes:
65
+ print(f'Producing volume fraction volumes for {NumberOfMaterials} materials.')
66
+ else:
67
+ print('Producing a single volume of attenuation coefficients.')
68
+ NumberOfMaterials = 1
69
+
70
+ Volume = np.zeros((NumberOfMaterials, cfg.Nz, cfg.Ny, cfg.Nx), dtype=np.single)
71
+ Volume = MakeAllVolumes(Volume, cfg, NumberOfMaterials, cfg.material_volumes)
72
+ Volume = np.transpose(Volume, axes=[3, 2, 1, 0])
73
+
74
+ # Flip the volume top-to-bottom so it will be in the "file" format of decreasing Y value with increasing Y index.
75
+ Volume_YFlipped = np.flip(Volume, axis=1)
76
+
77
+ Directory, PhantomExtension = os.path.splitext(cfg.phantom.filename)
78
+ FileName = os.path.basename(Directory)
79
+
80
+ # to avoid the case when phantom is in python library, the output will be saved there
81
+ base_phantom_name = os.path.basename(cfg.phantom.filename)
82
+ if cfg.material_volumes and cfg.write_vp:
83
+ vp_json = defaultdict(list)
84
+ nonzero_materials = 0
85
+ # Write a .vp file and material density volume file(s)
86
+ VoxelizedPhantomPathname = base_phantom_name.replace(PhantomExtension, '.json')
87
+ print(f'Writing {VoxelizedPhantomPathname} and material volume fraction file(s)...')
88
+ # this line needs to be here so that in json file, the position of n_materials is right
89
+ vp_json['n_materials'] = 0
90
+ for MaterialIndex in range(NumberOfMaterials):
91
+
92
+ # ignore this material if all zero
93
+ if np.sum(Volume[:,:,:,MaterialIndex]) < 1.E-4: continue
94
+
95
+ nonzero_materials += 1
96
+
97
+ VolumeExtension = f'VolumeFraction_{Materials[MaterialIndex]}'
98
+ VolumePathname = VoxelizedPhantomPathname.replace('.json', f'.{VolumeExtension}')
99
+ Path, Filename = os.path.splitext(VolumePathname)
100
+ VolumeFilename = Filename + PhantomExtension
101
+ print(f' writing material volume fraction file for {VolumeExtension}')
102
+
103
+ tmpArr = np.transpose(Volume_YFlipped[:, :, :, MaterialIndex], axes=[2, 1, 0])
104
+ xc.rawwrite(VolumePathname, np.copy(tmpArr, order='C'))
105
+
106
+ print(f' writing data for {VolumeExtension} to {VoxelizedPhantomPathname}')
107
+ vp_json['mat_name'].append(f'{Materials[MaterialIndex]}')
108
+ vp_json['volumefractionmap_filename'].append(VolumePathname)
109
+ vp_json['volumefractionmap_datatype'].append('float')
110
+ vp_json['cols'].append(cfg.Nx)
111
+ vp_json['rows'].append(cfg.Ny)
112
+ vp_json['slices'].append(cfg.Nz)
113
+ vp_json['x_size'].append(cfg.dx)
114
+ vp_json['y_size'].append(cfg.dy)
115
+ vp_json['z_size'].append(cfg.dz)
116
+ vp_json['x_offset'].append(cfg.xoff)
117
+ vp_json['y_offset'].append(cfg.yoff)
118
+ vp_json['z_offset'].append(cfg.zoff)
119
+
120
+ vp_json['n_materials'] = nonzero_materials
121
+ dumpjson(VoxelizedPhantomPathname, vp_json)
122
+ print('... done writing files.')
123
+ else:
124
+ # Write attenuation coefficient volume to a .vol file
125
+ VoxelizedPhantomPathname = base_phantom_name.replace(PhantomExtension, '.mu')
126
+ print(f'Writing attenuation coefficients volume to {VoxelizedPhantomPathname}')
127
+ with open(VoxelizedPhantomPathname, 'wb') as f:
128
+ Volume_YFlipped.tofile(f)
129
+
130
+
131
+ def MakeAllVolumes(Volume, cfg, NumberOfMaterials, MakeMaterialVolumes):
132
+ switch_function = {
133
+ 'C_Projector_Analytic': 'C_Volume_Get',
134
+ 'C_Projector_NCAT': 'C_Volume_NCAT_Get',
135
+ 'C_Projector_Polygon': 'C_Volume_Poly_Get'
136
+ }
137
+
138
+ FunctionName = switch_function.get(cfg.phantom.projectorCallback, None)
139
+ if FunctionName is None:
140
+ raise ValueError(f"Error: CatVoxel not compatible with the projector_callback {cfg.phantom.projectorCallback}")
141
+
142
+ Volume = feval(FunctionName, cfg,
143
+ Volume, cfg.Nx, cfg.xoff, cfg.dx,
144
+ cfg.Ny, cfg.yoff, cfg.dy,
145
+ cfg.Nz, cfg.zoff, cfg.dz,
146
+ cfg.vol_os, NumberOfMaterials, MakeMaterialVolumes
147
+ )
148
+
149
+ return Volume
150
+
151
+ def PrintPhantomSetup(cfg):
152
+ print(f'Number of X voxels: cfg.Nx = {cfg.Nx}')
153
+ print(f'Number of Y voxels: cfg.Ny = {cfg.Ny}')
154
+ print(f'Number of Z voxels: cfg.Nz = {cfg.Nz}')
155
+ print(f'X voxel size: cfg.dx = {cfg.dx}')
156
+ print(f'Y voxel size: cfg.dy = {cfg.dy}')
157
+ print(f'Z voxel size: cfg.dz = {cfg.dz}')
158
+ print(f'X voxel offset: cfg.xoff = {cfg.xoff}')
159
+ print(f'Y voxel offset: cfg.yoff = {cfg.yoff}')
160
+ print(f'Z voxel offset: cfg.zoff = {cfg.zoff}')
161
+
@@ -0,0 +1,27 @@
1
+ # Copyright 2024, GE Precision HealthCare. All rights reserved. See https://github.com/xcist/main/tree/master/license
2
+
3
+ from numpy.ctypeslib import ndpointer
4
+ from gecatsim.pyfiles.CommonTools import *
5
+
6
+ #----------------- load C lib
7
+ clib = load_C_lib()
8
+ fun = clib.rndpoi
9
+ fun.argtypes = [ndpointer(ctypes.c_float), ctypes.c_int]
10
+ fun.restype = None
11
+
12
+ def randpf(arr):
13
+ # numpy array only
14
+ arr1 = arr[arr>0]
15
+ fun(arr1, arr1.size)
16
+ arr[arr>0] = arr1
17
+
18
+ return arr
19
+
20
+ # if __name__ == '__main__':
21
+ # data0 = np.float32(np.random.random([5, 4])*100)
22
+ # data0[1:4, 1:3] = 0
23
+ #
24
+ # check_value(data0)
25
+ # data1 = randpf(data0)
26
+ # check_value(data0)
27
+ # check_value(data1)
@@ -0,0 +1,20 @@
1
+
2
+ # How to compile recon lib
3
+
4
+ # For Linux
5
+ Go to the `reconstruction\src` folder and run following command:
6
+
7
+ `gcc -fPIC -fopenmp -shared -o fdk_equiAngle.so interface_fdk_angle.c`
8
+
9
+ This will generate a `fdk_equiAngle.so` file and copy it to your `reconstruction\lib` folder.
10
+
11
+ # For Mac OS
12
+ Same as for Linux but make sure to use the "gcc" compiler and not the "clang" compiler.
13
+
14
+ You may need to install gcc manually (e.g., brew install gcc).
15
+ If needed, specify the full path to the gcc compiler when compiling, e.g.:
16
+
17
+ `/usr/local/bin/gcc-14 -fPIC -fopenmp -shared -o fdk_equiAngle_macos.so interface_fdk_angle.c`
18
+
19
+ # For Windows
20
+ in cmd, run `xxx\mingw64\bin\gcc.exe -Wall -O -g -fPIC -shared -o fdk_equiAngle.dll .\interface_fdk_angle.c `
@@ -0,0 +1,81 @@
1
+ # Copyright 2020, General Electric Company. All rights reserved. See https://github.com/xcist/code/blob/master/LICENSE
2
+
3
+ import numpy as np
4
+ import math
5
+ from scipy.interpolate import interp1d
6
+
7
+ def createHSP(Length, kernelType):
8
+ HS = np.zeros(Length)
9
+ Center = int((Length) / 2)
10
+ PI = 3.14159265358979
11
+ nn = Length
12
+ nn2 = nn * 2
13
+
14
+ if kernelType == "R-L":
15
+ HS[0] = 0
16
+ HS[Center] = 0.25
17
+ for i in range(1, Center):
18
+ HS[i] = -np.power((math.sin(PI * (i - Center) / 2)), 2) / (PI * PI * (i - Center) * (i - Center))
19
+
20
+ for k in range((Center + 1), Length):
21
+ HS[k] = -np.power((math.sin(PI * (k - Center) / 2)), 2) / (PI * PI * (k - Center) * (k - Center))
22
+ k = int(nn / 2)
23
+ TempF = np.zeros(nn2)
24
+ TempF[0:k] = HS[k:nn]
25
+ TempF[k + nn:nn2] = HS[0:k]
26
+ HS = TempF * complex(0, 1)
27
+ FFT_F = np.fft.fft(HS)
28
+
29
+ elif kernelType == "S-L":
30
+ for i in range(Length):
31
+ HS[i] = -2 / (PI * PI * (4 * (i - Center) * (i - Center) - 1))
32
+ k = int(nn / 2)
33
+ TempF = np.zeros(nn2)
34
+ TempF[0:k] = HS[k:nn]
35
+ TempF[k + nn:nn2] = HS[0:k]
36
+ HS = TempF * complex(0, 1)
37
+ FFT_F = np.fft.fft(HS)
38
+
39
+ elif kernelType == "soft":
40
+ x = np.array([0, 0.25, 0.5, 0.75, 1])
41
+ y = np.array([1, 0.815, 0.4564, 0.1636, 0])
42
+ # y = np.array([1, 1.0485, 1.17, 1.2202, 0.9201])
43
+ # y= np.array([1, 0.9338, 0.7441, 0.4425, 0.0531])
44
+ f = interp1d(x, y, kind='quadratic')
45
+ FFT_F = np.zeros(nn2)
46
+ for i in range(nn):
47
+ FFT_F[i] = f((i)/nn)*0.997 * (i+0.003) / nn2
48
+ FFT_F[nn2 - i - 1] = f((i)/nn)* 0.997*(i + 1 + 0.003) / nn2
49
+ FFT_F= FFT_F * complex(0,1)
50
+
51
+ elif kernelType == "standard":
52
+ x = np.array([0, 0.25, 0.5, 0.75, 1])
53
+ # y = np.array([1, 0.815, 0.4564, 0.1636, 0])
54
+ # y = np.array([1, 1.0485, 1.17, 1.2202, 0.9201])
55
+ y = np.array([1, 0.9338, 0.7441, 0.4425, 0.0531])
56
+ f = interp1d(x, y, kind='quadratic')
57
+ FFT_F = np.zeros(nn2)
58
+ for i in range(nn):
59
+ FFT_F[i] = f((i) / nn) * 0.997 * (i + 0.003) / nn2
60
+ FFT_F[nn2 - i - 1] = f((i) / nn) * 0.997 * (i + 1 + 0.003) / nn2
61
+ FFT_F = FFT_F * complex(0, 1)
62
+
63
+ elif kernelType == "bone":
64
+ x = np.array([0, 0.25, 0.5, 0.75, 1])
65
+ # y = np.array([1, 0.815, 0.4564, 0.1636, 0])
66
+ y = np.array([1, 1.0485, 1.17, 1.2202, 0.9201])
67
+ # y = np.array([1, 0.9338, 0.7441, 0.4425, 0.0531])
68
+ f = interp1d(x, y, kind='quadratic')
69
+ FFT_F = np.zeros(nn2)
70
+ for i in range(nn):
71
+ FFT_F[i] = f((i) / nn) * 0.997 * (i + 0.003) / nn2
72
+ FFT_F[nn2 - i - 1] = f((i) / nn) * 0.997 * (i + 1 + 0.003) / nn2
73
+ FFT_F = FFT_F * complex(0, 1)
74
+
75
+ elif kernelType == "none":
76
+ FFT_F = np.ones(nn2) * complex(0, 1)
77
+
78
+ else:
79
+ raise Exception("******** Error! An unsupported kernel was specified: {:s}. ********".format(kernelType))
80
+
81
+ return FFT_F
@@ -0,0 +1,245 @@
1
+ # Copyright 2020, General Electric Company. All rights reserved. See https://github.com/xcist/code/blob/master/LICENSE
2
+
3
+ import ctypes as ct
4
+ import math
5
+ from gecatsim.reconstruction.pyfiles.createHSP import createHSP
6
+ from gecatsim.reconstruction.pyfiles.mapConfigVariablesToFDK import mapConfigVariablesToFDK
7
+ from gecatsim.pyfiles.CommonTools import *
8
+
9
+ # Init ctypes types
10
+ FLOAT = ct.c_float
11
+ PtrFLOAT = ct.POINTER(FLOAT)
12
+ PtrPtrFLOAT = ct.POINTER(PtrFLOAT)
13
+ PtrPtrPtrFLOAT = ct.POINTER(PtrPtrFLOAT)
14
+
15
+
16
+ class TestStruct(ct.Structure):
17
+ _fields_ = [
18
+ ("ScanR", ct.c_float), # Radius of the scanning trajectory of x-ray source
19
+ ("DecFanAng", ct.c_float), # Fan angle coverage of the detector element along the horizontal diretion
20
+ ("startangle", ct.c_float), # recon startangle
21
+ ("rotdir", ct.c_int), # //rotation direction
22
+ ("DecHeight", ct.c_float), # Physical height of the detector along the vertical direction
23
+ ("YL", ct.c_int), # Detector cell number on each row along the horizontal direction
24
+ ("ZL", ct.c_int), # Detector cell number on each column along the vertical direction
25
+ ("dectorYoffset", ct.c_float), # Detector along the horizontal direction (pixel, e.g. quarter pixel)
26
+ ("dectorZoffset", ct.c_float), # Detector offset along the vertical direcion (pixel, e.g. quarter pixel)
27
+ ("XOffSet", ct.c_float), # recon offset along the x axis
28
+ ("YOffSet", ct.c_float), # recon offset along the y axis
29
+ ("ZOffSet", ct.c_float), # recon offset along the z axis
30
+ ("phantomXOffSet", ct.c_float), # phantom offset along the x axis
31
+ ("phantomYOffSet", ct.c_float), # phantom offset along the y axis
32
+ ("phantomZOffSet", ct.c_float), # phantom offset along the z axis
33
+ ("AngleNumber", ct.c_int), # Number of view samples on the scanning trajectory
34
+ ("DistD", ct.c_float), # Distance between the x-ray source and the detector
35
+ ("Radius", ct.c_float), # Radius of the phantom
36
+ ("RecSize", ct.c_int), # Reconstructed size
37
+ ("sliceThickness", ct.c_float), # Reconstructed thickness
38
+ # ("centerX", ct.c_float), # Reconstructed center on x axis
39
+ # ("centerY", ct.c_float), # Reconstructed center on y axis
40
+ # ("centerZ", ct.c_float), # Reconstructed center on z axis
41
+ ("FOILength", ct.c_int), # Reconstructed length on x axis
42
+ ("FOIWidth", ct.c_int), # Reconstructed length on y axis
43
+ ("FOIHeight", ct.c_int), # Reconstructed length on z axis
44
+ ("GF", PtrPtrPtrFLOAT), # Projection data/ Sinogram data
45
+ ("RecIm", PtrPtrPtrFLOAT) # Reconstructed 3D image data
46
+ ]
47
+
48
+
49
+ def float3Darray2pointer(arr):
50
+ # Converts a 3D numpy to ctypes 3D array.
51
+ arr_dimx = FLOAT * arr.shape[2]
52
+ arr_dimy = PtrFLOAT * arr.shape[1]
53
+ arr_dimz = PtrPtrFLOAT * arr.shape[0]
54
+
55
+ arr_ptr = arr_dimz()
56
+
57
+ for i, row in enumerate(arr):
58
+ arr_ptr[i] = arr_dimy()
59
+ for j, col in enumerate(row):
60
+ arr_ptr[i][j] = arr_dimx()
61
+ for k, val in enumerate(col):
62
+ arr_ptr[i][j][k] = val
63
+ return arr_ptr
64
+
65
+
66
+ def float3Dpointer2array(ptr, n, m, o):
67
+ # Converts ctypes 3D array into a 3D numpy array.
68
+ arr = np.zeros(shape=(n, m, o), dtype=np.single)
69
+
70
+ for i in range(n):
71
+ for j in range(m):
72
+ for k in range(o):
73
+ arr[i, j, k] = ptr[i][j][k]
74
+
75
+ return arr
76
+
77
+
78
+ def load_C_recon_lib():
79
+
80
+ # add recon lib path to environment value "PATH" for depending DLLs
81
+ # # # # recon_lib = my_path.find_dir("top", os.path.join("reconstruction", "lib"))
82
+ # # # # my_path.add_dir_to_path(recon_lib)
83
+
84
+ # my_path.find_dir doesn't have the key "reconstruction", use the temp solution below:
85
+ recon_lib = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../lib")
86
+
87
+
88
+ # load C/C++ lib
89
+ ll = ct.cdll.LoadLibrary
90
+ if os.name == "nt":
91
+ lib_file = "fdk_equiAngle.dll"
92
+ elif os.uname().sysname == 'Darwin':
93
+ lib_file = "fdk_equiAngle_macos.so"
94
+ else:
95
+ lib_file = "fdk_equiAngle.so"
96
+ clib = ll(os.path.join(recon_lib, lib_file))
97
+
98
+ return clib
99
+
100
+
101
+ def fdk_equiAngle(cfg, prep):
102
+
103
+ # scanner & recon geometry
104
+ sid, sdd, nMod, rowSize, modWidth, dectorYoffset, dectorZoffset, \
105
+ fov, imageSize, sliceCount, sliceThickness, centerOffset, startView, rotdir, kernelType \
106
+ = mapConfigVariablesToFDK(cfg)
107
+
108
+ # initialize parameters
109
+ ScanR = sid
110
+ DistD = sdd
111
+ Radius = fov/2
112
+ ProjData = prep.transpose(2,1,0)
113
+ # ProjData = ProjData[::-1,:,:]
114
+ ProjScale = cfg.protocol.viewsPerRotation
115
+ DecFanAng = nMod*2*math.atan(modWidth/2/sdd)
116
+ Dgy = np.array(ProjData, dtype=np.float32)
117
+ YL = int(cfg.scanner.detectorColCount)
118
+ ZL = int(cfg.scanner.detectorRowCount)
119
+
120
+ YCtr = (YL - 1) * 0.5
121
+ ZCtr = (ZL - 1) * 0.5
122
+ DecHeight = rowSize*ZL
123
+
124
+ DeltaUW = DecFanAng/ YL
125
+ DeltaZ = DecHeight / ZL
126
+
127
+
128
+ ############## pre-weighting for ramp-filter
129
+
130
+ print("* Pre-weighting the filter...")
131
+ for Yindex in range(YL):
132
+ for zindex in range(ZL):
133
+ Dgy[Yindex, zindex, :] = (DistD / np.sqrt(DistD ** 2 + ((zindex - ZCtr) * DeltaZ) ** 2)) * ProjData[Yindex,
134
+ zindex,:] * math.cos((Yindex - YCtr) * DeltaUW)
135
+
136
+ Dg=Dgy
137
+
138
+ ############## filtering
139
+
140
+ print("* Applying the filter...")
141
+ nn = int(math.pow(2, (math.ceil(math.log2(abs(YL))) + 1)))
142
+ nn2 = nn*2
143
+ FFT_F = createHSP(nn, kernelType)
144
+
145
+ GF = Dg
146
+
147
+ for ProjIndex in range(0, ProjScale):
148
+ for j in range(ZL):
149
+ TempData = np.ones(YL)
150
+ for k in range(YL):
151
+ TempData[k] = Dg[k, j, ProjIndex]
152
+ FFT_S = np.fft.fft(TempData, nn2)
153
+ TempData = np.fft.ifft(FFT_S * FFT_F).imag
154
+ for k in range(YL):
155
+ GF[k, j, ProjIndex] = -TempData[k]
156
+
157
+ GF = GF/DeltaUW
158
+
159
+ # special case when ZL is 1
160
+ if ZL == 1:
161
+ GF = np.append(GF, GF, axis=1)
162
+ ZL = 2
163
+
164
+
165
+ ############## FBP
166
+
167
+ print("* Running the reconstruction...")
168
+ # Load the compiled library
169
+ recon = load_C_recon_lib()
170
+
171
+ # Define arguments of the C function
172
+ recon.fbp.argtypes = [ct.POINTER(TestStruct)]
173
+
174
+ # Define the return type of the C function
175
+ recon.fbp.restype = None
176
+
177
+ # init the struct
178
+ t = TestStruct()
179
+
180
+ t.ScanR = ScanR
181
+ t.DistD = DistD
182
+ t.DecFanAng = DecFanAng
183
+ t.startangle = startView # Inconsistent C variable name - should be startAngle. Also, this seems to be the start view, not angle.
184
+ t.rotdir = rotdir
185
+ t.DecHeight = DecHeight
186
+ t.YL = YL
187
+ t.ZL = ZL
188
+ t.dectorYoffset = dectorYoffset
189
+ t.dectorZoffset = dectorZoffset
190
+ t.AngleNumber = ProjScale
191
+
192
+ t.Radius = Radius
193
+ t.RecSize = imageSize
194
+ t.sliceThickness = sliceThickness
195
+ t.FOILength = imageSize
196
+ t.FOIWidth = imageSize
197
+ t.FOIHeight = sliceCount
198
+ # t.centerX = (t.RecSize - 1)*0.5
199
+ # t.centerY = (t.RecSize - 1)*0.5
200
+ # t.centerZ = (t.FOIHeight - 1)*0.5
201
+ t.XOffSet = centerOffset[0]
202
+ t.YOffSet = centerOffset[1]
203
+ t.ZOffSet = centerOffset[2]
204
+ t.phantomXOffSet = 0
205
+ t.phantomYOffSet = 0
206
+ t.phantomZOffSet = 0
207
+
208
+ if cfg.recon.printReconParameters:
209
+ print("* Reconstruction parameters:")
210
+ print("* SID: {} mm".format(t.ScanR))
211
+ print("* SDD: {} mm".format(t.DistD))
212
+ print("* Fan angle: {} degrees".format(t.DecFanAng))
213
+ print("* Start view: {}".format(t.startangle))
214
+ print("* Number of detector cols: {}".format(t.YL))
215
+ print("* Number of detector rows: {}".format(t.ZL))
216
+ print("* Detector height: {} mm".format(t.DecHeight))
217
+ print("* Detector X offset: {} mm".format(t.dectorYoffset))
218
+ print("* Detector Z offset: {} mm".format(t.dectorZoffset))
219
+ print("* Scan number of views: {} ".format(t.AngleNumber))
220
+ print("* Recon FOV: {} mm".format(2*t.Radius))
221
+ print("* Recon XY pixel size: {} mm".format(t.RecSize))
222
+ print("* Recon Slice thickness: {} mm".format(t.sliceThickness))
223
+ print("* Recon XY: {} pixels".format(t.FOIWidth))
224
+ print("* Recon Z: {} slices".format(t.FOIHeight))
225
+ print("* Recon X offset: {} mm".format(t.XOffSet))
226
+ print("* Recon Y offset: {} mm".format(t.YOffSet))
227
+ print("* Recon Z offset: {} mm".format(t.ZOffSet))
228
+
229
+ print("* Converting projection data from a numpy array to a C array...")
230
+ GF_ptr = float3Darray2pointer(GF)
231
+ t.GF = GF_ptr
232
+
233
+ print("* Allocating a C array for the recon results...")
234
+ RecIm = np.zeros(shape=(t.FOILength, t.FOIWidth, t.FOIHeight), dtype=np.single)
235
+ RecIm_ptr = float3Darray2pointer(RecIm)
236
+ t.RecIm = RecIm_ptr
237
+
238
+ print("* In C...")
239
+ recon.fbp(ct.byref(t))
240
+
241
+ print("* Converting the recon results from a C array to a numpy array...")
242
+ RecA = float3Dpointer2array(RecIm_ptr, *RecIm.shape)
243
+ RecA = RecA[:,:,::-1]
244
+
245
+ return RecA