Replies: 1 comment
-
|
Hi @lauratsu First an explanation about the philosophy behind the stf generation and "StfGenerators" (stf stands for "steering file / information", and is thus describing the irradiation geometry).
Now to the functions:
The bemlet energies are selected based on a raytracing step implemented in the I think as a start you should tinker with this step of computing the rSPs in the latter function. The function tries to find a suitable HU->rSP look-up table and computes a
So, in the end, you might get away with minimal modifications to the Stf-Generators. If you want to include an active magnetic field during irradiation, this becomes a different beast... Let us know if you have further questions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Dear matRad experts,
I am currently researching on MRI-only proton treatment therapy.
I would like to be able to calculate the energies of the bixels, that are calculated when running "matRad_generateStf(ct,cst,pln)", on MRI instead of CT. So far I don't have an exact plan on how to do it, but I would have to understand how it works for CT first anyway. And for that I need some help and clarification on how the code works, because I am not an expert when it comes to coding.
I am looking for the codeline, where the required energy for a CT beampath is getting calculated. So in general I am looking for the function E = f(CT_beampath) so that i could theoretically exchange it with E = f(MRI_beampath).
I looked into the code and tried to understand how the energy is getting calculated. So far I understand it like this. Please correct me if I am incorrect.
Does this select an engine, which is responsible for where a bixel is positioned and what energy it has?

Here is the code I am using.
When I run this code it will select "STFGeneratorParticleIMPT" as engine. But theoretically I would need to create a new engine for my MRI-only workflow right? Because the energy would be calculated differently.
How would I specify what engine I would like to use when running my code. I thought it would get the information from the pln-struct, but when I looked at https://github.com/e0404/matRad/wiki/The-pln-struct I could't find a paramter that specifies the engine.
Does it convert the CT values to WET values with HLUT. I would probably have to work around the HLUT for my MRI-only workflow.
Does this find the position/voxel of the target volume and afterwards calculates the water equivalent distance to reach that position?
Does it give us the positions and directions of the rays?
There is the line "newEnergies = this.availableEnergies(this.availablePeakPos>=targetEntry(k)&this.availablePeakPos<=targetExit(k));" which actually gets the energies. These availableEnergies come from the machine. Does it compare the available Energies from the machine with the energies that were calculated in "this.createPatientGeometry();" and selects the energies that are needed?

It seems that everything is based on the conversion of CT values to WET values. So I would first need to find a solution on how to convert MRI values to WET or rather completely work around HLUT. Does someone has a suggestion on how to achieve that?
I would be happy about any answer to my questions. Any kind of help is appreciated.
Thank you :)
Beta Was this translation helpful? Give feedback.
All reactions