0001 classdef matRad_DoseProjection < matRad_BackProjection 0002 % matRad_DoseProjection class to compute physical dose during optimization 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_DoseProjection() 0019 0020 end 0021 end 0022 0023 methods 0024 function d = computeSingleScenario(~,dij,scen,w) 0025 if ~isempty(dij.physicalDose{scen}) 0026 d = dij.physicalDose{scen}*w; 0027 else 0028 d = []; 0029 matRad_cfg = MatRad_Config.instance(); 0030 matRad_cfg.dispWarning('Empty scenario in optimization detected! This should not happen...\n'); 0031 end 0032 end 0033 0034 function wGrad = projectSingleScenarioGradient(~,dij,doseGrad,scen,~) 0035 if ~isempty(dij.physicalDose{scen}) 0036 wGrad = (doseGrad{scen}' * dij.physicalDose{scen})'; 0037 else 0038 wGrad = []; 0039 matRad_cfg = MatRad_Config.instance(); 0040 matRad_cfg.dispWarning('Empty scenario in optimization detected! This should not happen...\n'); 0041 end 0042 end 0043 end 0044 end 0045