Няма описание

Andrej beed5a1c01 Merge branch 'master' of repo.ijs.si:studen/simulpet преди 2 години
report c34eef3ebe Adding missing files преди 4 години
FBP.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
Glinear.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
MLEM.py 40782d36b6 Making sure inputs are not modified by MLEM преди 2 години
README.md 7871330737 Update README.md преди 4 години
__init__.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
bkg.out 626d52155e Adding phantoms преди 2 години
fisher1D.py 626d52155e Adding phantoms преди 2 години
gaussian_filter.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
getResoultion.C c6fdabcaa7 Adding root resolution script to generate resolution along z преди 4 години
phantom.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
phantom_0_rw_0p6.out 626d52155e Adding phantoms преди 2 години
runSimulation.ipynb 626d52155e Adding phantoms преди 2 години
setMask.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години
useM.py 9ea5d8f901 Adding python tools for simulation and reconstruction преди 4 години

README.md

Resolution modeling

The helper function is loaded by:

root[].L getResolution.C

Individual resolution calculation

According to literature, the resolution contribution from spatial resolution of the crystals is calculated from sum of sines, which is coded in getResolution(ctheta0,N) where ctheta0 is the smalles cosine theta still captured by the system geometry (assumming coverage from 1), and N is number of splits in cos theta used in numeric integration.

root[] double detRes=2.;//resolution in mm
root[] double sigmaRSquared=detRes*detRes/getResolution(ctheta0,40);

In the same manner, resolution contribution for timing is calculated:

root[] double tRes=50.;//resolution in ps
root[] double xtRes=3e11*tRes*1e-12;//resolution in mm
root[] double sigmaTSquared=xtRes*xtRes/getResolutionT(ctheta0,40);

To generate individual graphs, do

TGraph gr(20);
for (int i=0;i<gr.GetN();i++) { 
    double ctheta0=1-(i+0.5)/(gr.GetN()); 
    double ttheta0=sqrt(1-pow(ctheta0,2))/ctheta0;
    gr.SetPoint(i,ttheta0,1./sqrt(getResolutionT(ctheta0,40)));
}
//equivalent for getResolution

Combined resolution calculation

root[] double tRes=50.;//resolution in ps
root[] double xtRes=3e11*tRes*1e-12;//resolution in mm
root[] double xRes=2;//resolution in mm
root [] for (int i=0;i<gr.GetN();i++) { 
    double ctheta0=1-(i+0.5)/(gr.GetN()); 
    double ttheta0=sqrt(1-pow(ctheta0,2))/ctheta0;
    double sigmaT=getResolutionT(ctheta0,40)/xtRes/xtRes;
    double sigmaX=getResolution(ctheta0,40)/xRes/xRes;
    gr.SetPoint(i,ttheta0,sqrt(1./sigmaT+1./sigmaX));
}