0001 function [eff] = absx_dke_yp(k,lc,lf,ef,tf,ea,ta,ec,tc,ed,td)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 if nargin < 11,
0027 infoyp(2,'Wrong number of input arguments for absx_dke_yp');
0028 return;
0029 end
0030
0031
0032
0033 attlinair = attlin_dke_yp(1,k);
0034 transair = exp(-attlinair(1,:)*(lc+lf)*0.1);
0035
0036
0037
0038 if strcmp(tf,'Al')==1,
0039 attlinfen = attlin_dke_yp(4,k);
0040 elseif strcmp(tf,'Be')==1,
0041 attlinfen = attlin_dke_yp(5,k);
0042 elseif strcmp(tf,'In')==1,
0043 attlinfen = attlin_dke_yp(13,k);
0044 else
0045 attlinfen = zeros(size(k));
0046 end
0047 transfen=exp(-attlinfen(1,:)*ef*0.1);
0048
0049
0050
0051 if (strcmp(ta,'Ge') == 1) | (strcmp(ta,'Ger') == 1),
0052 attlinabs = attlin_dke_yp(2,k);
0053 elseif strcmp(ta,'Fe')==1,
0054 attlinabs = attlin_dke_yp(3,k);
0055 elseif strcmp(ta,'Al')==1,
0056 attlinabs = attlin_dke_yp(4,k);
0057 elseif strcmp(ta,'Be')==1,
0058 attlinabs = attlin_dke_yp(5,k);
0059 elseif strcmp(ta,'Pb')==1,
0060 attlinabs = attlin_dke_yp(6,k);
0061 elseif strcmp(ta,'Cu')==1,
0062 attlinabs = attlin_dke_yp(11,k);
0063 elseif strcmp(ta,'Ni')==1,
0064 attlinabs = attlin_dke_yp(12,k);
0065 elseif strcmp(ta,'In')==1,
0066 attlinabs = attlin_dke_yp(13,k);
0067 else
0068 attlinabs = zeros(4,size(k,2));
0069 end
0070 transabs = exp(-attlinabs(1,:)*ea*0.1);
0071
0072
0073
0074 if strcmp(tc,'Fe')==1,
0075 attlincap = attlin_dke_yp(3,k);
0076 elseif strcmp(tc,'Al')==1,
0077 attlincap = attlin_dke_yp(4,k);
0078 elseif strcmp(tc,'Be')==1,
0079 attlincap = attlin_dke_yp(5,k);
0080 else
0081 attlincap = zeros(4,size(k,2));
0082 end
0083 transcap = exp(-attlincap(1,:)*ec*0.1);
0084
0085
0086
0087 if (strcmp(td,'Ge') == 1) | (strcmp(td,'Ger') == 1) | (strcmp(td,'Ger ') == 1),
0088 attlindec = attlin_dke_yp(2,k);
0089 elseif strcmp(td,'BGO') | (strcmp(td,'BGO ') == 1),
0090 attlindec = attlin_dke_yp(7,k);
0091 elseif strcmp(td,'CsI') | (strcmp(td,'CsI ') == 1),
0092 attlindec = attlin_dke_yp(8,k);
0093 elseif strcmp(td,'NaI') | (strcmp(td,'NaI ') == 1),
0094 attlindec = attlin_dke_yp(9,k);
0095 elseif strcmp(td,'CdTe')==1,
0096 attlindec = attlin_dke_yp(14,k);
0097 else
0098 attlindec = zeros(4,size(k,2));
0099 end
0100 absdec = 1-exp(-attlindec(1,:)*ed*0.1);
0101
0102 eff = transair.*(transfen.*(transabs.*(transcap.*absdec)));
0103