0001 classdef matRad_ConstantRBEProjection < matRad_BackProjection 0002 % matRad_BackProjection for optimization based on RBExDose 0003 % 0004 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % Copyright 2019 the matRad development team. 0007 % 0008 % This file is part of the matRad project. It is subject to the license 0009 % terms in the LICENSE file found in the top-level directory of this 0010 % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part 0011 % of the matRad project, including this file, may be copied, modified, 0012 % propagated, or distributed except according to the terms contained in the 0013 % LICENSE file. 0014 % 0015 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0016 0017 methods 0018 function obj = matRad_ConstantRBEProjection() 0019 end 0020 end 0021 0022 methods 0023 function RBExD = computeSingleScenario(~,dij,scen,w) 0024 if ~isempty(dij.physicalDose{scen}) 0025 RBExD = dij.physicalDose{scen} * (dij.RBE * w); 0026 else 0027 RBExD = []; 0028 matRad_cfg = MatRad_Config.instance(); 0029 matRad_cfg.dispWarning('Empty scenario in optimization detected! This should not happen...\n'); 0030 end 0031 end 0032 0033 function wGrad = projectSingleScenarioGradient(~,dij,doseGrad,scen,~) 0034 if ~isempty(dij.physicalDose{scen}) 0035 wGrad = ((dij.RBE * doseGrad{scen})' * dij.physicalDose{scen})'; 0036 else 0037 wGrad = []; 0038 matRad_cfg = MatRad_Config.instance(); 0039 matRad_cfg.dispWarning('Empty scenario in optimization detected! This should not happen...\n'); 0040 end 0041 end 0042 end 0043 0044 0045 end 0046