4D

Specialized functions for 4D dose calculation and treatment planning

matRad_makePhaseMatrix(timeSequence, numOfPhases, motionPeriod, motion)
using the time sequence and the ordering of the bixel iradiation, and

number of scenarios, makes a phase matrix of size number of bixels * number of scenarios

call

timeSequence = matRad_makePhaseMatrix(timeSequence, numOfPhases, motionPeriod, motion)

Input:
  • timeSequence – struct containing bixel ordering information and the time sequence of the spot scanning

  • numOfCtScen – number of the desired phases

  • motionPeriod – the extent of a whole breathing cycle (in seconds)

  • motion – motion scenario: ‘linear’(default), ‘sampled_period’

Output:

timeSequence – phase matrix field added

References

Copyright 2018-2026 the matRad development team.

This file is part of the matRad project. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/e0404/matRad/LICENSE.md. No part of the matRad project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.


matRad_doseAcc(ct, phaseCubes, cst, accMethod)

matRad dose accumulation function

call

dAcc = matRad_doseAcc(d,dvf)

Input:
  • ct – matRad ct struct inclduing 4d ct, deformation vector fields, and meta information

  • phaseCubes – cell array of cubes to be accumulated

  • cst – matRad cst struct

  • accMethod – method used for accumulation, either direct dose mapping (DDM), energy mass transfer method (EMT), or divergent dose mapping method (DDMP)

  • +++ Attention +++ the deformation vector fields are in [mm]

Output:

dAcc – accumulated dose cube

References

[1] http://iopscience.iop.org/0031-9155/59/21/6401/ [2] http://iopscience.iop.org/0031-9155/59/1/173/


Copyright 2018-2026 the matRad development team.

This file is part of the matRad project. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/e0404/matRad/LICENSE.md. No part of the matRad project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.


matRad_addMovement(ct, cst, motionPeriod, numOfCtScen, amp, varargin)

adds artificial sinosodal patient motion by creating a deformation vector field and applying it to the ct.cube by geometric transformation

call

ct = matRad_addMovement(ct, ct.motionPeriod, ct.numOfCtScen, amp)

Input:
  • ct – matRad ct struct

  • cst – matRad cst struct

  • motionPeriod – the length of a whole breathing cycle (in seconds)

  • numOfCtScen – number of ct phases

  • amp – amplitude of the sinosoidal movement (in pixels)

  • varargin – dvfType: push or pull dvf visBool boolean flag for visualization

  • note – 1st dim –> x LPS coordinate system 2nd dim –> y LPS coordinate system 3rd dim –> z LPS coordinate system a positive amplitude moves the phantom to the right, anterior, inferior

Output:
  • ct – modified matRad ct struct including dvf and cubes for all phases

  • cst – modified matRad cst struct

References


Copyright 2018-2026 the matRad development team.

This file is part of the matRad project. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/e0404/matRad/LICENSE.md. No part of the matRad project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.


matRad_postprocessing(resultGUI, dij, pln, cst, stf)
matRad postprosseing function accounting for

minimum number of particles per spot minimum number of particles per iso-energy slice

call

resultGUI = matRad_postprocessing(resultGUI, dij, pln, cst, stf)

matRad_makeBixelTimeSeq(stf, resultGUI)

using the steering information of matRad, makes a time sequenced order according to the irradiation scheme in spot scanning

call

timeSequence = matRad_makeBixelTimeSeq(stf, resultGUI)

Input:
  • stf – matRad steering information struct

  • resultGUI – struct containing optimized fluence vector

Output:

timeSequence – struct containing bixel ordering information and the time sequence of the spot scanning

References

spill structure and timing informations: http://cdsweb.cern.ch/record/1182954 http://iopscience.iop.org/article/10.1088/0031-9155/56/20/003/meta


Copyright 2018-2026 the matRad development team.

This file is part of the matRad project. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/e0404/matRad/LICENSE.md. No part of the matRad project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.


matRad_calc4dDose(ct, pln, dij, stf, cst, resultGUI, totalPhaseMatrix, accType)

wrapper for the whole 4D dose calculation pipeline and calculated dose accumulation

call

ct = matRad_calc4dDose(ct, pln, dij, stf, cst, resultGUI)

Input:
  • ct – ct cube

  • pln – matRad plan meta information struct

  • dij – matRad dij struct

  • stf – matRad steering information struct

  • cst – matRad cst struct

  • resultGUI – struct containing optimized fluence vector

  • totalPhaseMatrix optional intput for totalPhaseMatrix

  • accType – witch algorithim for dose accumulation

Output:
  • resultGUI – structure containing phase dose, RBE weighted dose, etc

  • timeSequence – timing information about the irradiation

References

Copyright 2018-2026 the matRad development team.

This file is part of the matRad project. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/e0404/matRad/LICENSE.md. No part of the matRad project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.