0001 function [hxr_proc,hxr,data_proc] = fproc_hxr(basestr,hxr_path,load_id,hxr_file,exp_file,texp,ic,krange,opt,display_mode,p_opt)
0002 
0003 if nargin < 11,
0004     p_opt = -1;
0005 end
0006 
0007 if nargin < 10,
0008     display_mode = 0;
0009 end
0010 
0011 if nargin < 9,
0012     opt.save = 0;
0013 end
0014 
0015 if nargin < 8,
0016     krange = NaN;
0017 end
0018 
0019 if nargin < 7,
0020     ic = NaN;
0021 end
0022 
0023 if nargin < 6,
0024     texp = NaN;
0025 end
0026 
0027 opt_save_0 = opt.save;
0028 
0029 dt = diff(texp);
0030 
0031 
0032 
0033 
0034 
0035 datafile1 = ['LUKE_RESULTS_',load_id,'.mat'];
0036 datafile2 = ['LUKE_DATA_',load_id,'.mat'];
0037 datafile3 = ['LUKE_BACKUP_',load_id,'.mat'];
0038 proc_datafile1 = ['PROC_',datafile1];
0039 proc_datafile2 = ['PROC_',datafile2];
0040 proc_datafile3 = ['PROC_',datafile3];
0041 hxr_datafile = ['HXR_RESULTS_',load_id,'.mat'];
0042 proc_hxr_datafile = ['PROC_HXR_RESULTS_',load_id,'.mat'];
0043 
0044 hxrdata = 0;
0045 procdata = 0;
0046 
0047 hxr = '';
0048 data_proc = '';
0049 hxr_proc = '';
0050 
0051 if hxrdata == 0 && exist([hxr_path,proc_datafile1],'file') && (gettime_jd(proc_datafile1,hxr_path) > gettime_jd(datafile1,hxr_path)),
0052     
0053     load([hxr_path,proc_datafile1],'data_proc');
0054 
0055 
0056 
0057 
0058     
0059     procdata = 1;
0060     
0061     disp(['LUKE data loaded from file ',hxr_path,proc_datafile1])
0062     
0063     if isfield(data_proc,'hxr'),
0064         hxr = data_proc.hxr;
0065         opt.save = 0;
0066         
0067         hxrdata = 1;
0068         
0069         disp(['HXR data loaded from file ',hxr_path,proc_datafile1])
0070         
0071     end
0072     
0073     if isstruct(hxr), 
0074         if ~isfield(hxr,'dt')
0075             if isnan(dt),
0076                 error('No value found for dt as input or from PROC_RESULT file')
0077             else
0078                 hxr.dt = dt;
0079                 disp(['Warning : input dt = ',num2str(dt),' enforced, No value found for dt in PROC_RESULT file'])
0080                 if opt_save_0 == 1,
0081                     opt.save = 1;
0082                 end
0083             end
0084         elseif ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0085             disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_RESULT file dt = ',num2str(hxr.dt),' enforced.'])
0086         end
0087     end
0088     datafile = datafile1;
0089     
0090 end
0091 
0092 if hxrdata == 0 && exist([hxr_path,proc_datafile2],'file') && (gettime_jd(proc_datafile2,hxr_path) > gettime_jd(datafile2,hxr_path)),
0093     
0094     load([hxr_path,proc_datafile2],'data_proc');
0095     
0096     procdata = 1;
0097     
0098     disp(['LUKE data loaded from file ',hxr_path,proc_datafile2])
0099     
0100     if isfield(data_proc,'hxr'),
0101         hxr = data_proc.hxr;
0102         opt.save = 0;
0103         
0104         hxrdata = 1;
0105         
0106         disp(['HXR data loaded from file ',hxr_path,proc_datafile2])
0107         
0108     end
0109     
0110     if isstruct(hxr),
0111         if ~isfield(hxr,'dt')
0112             if isnan(dt),
0113                 error('No value found for dt as input or from PROC_DATA file')
0114             else
0115                 hxr.dt = dt;
0116                 disp(['Warning : input dt = ',num2str(dt),' enforced, No value found for dt in PROC_DATA file'])
0117                 if opt_save_0 == 1,
0118                     opt.save = 1;
0119                 end
0120             end
0121         elseif ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0122             disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_DATA file dt = ',num2str(hxr.dt),' enforced.'])
0123         end
0124     end
0125     datafile = datafile2;
0126     
0127 end
0128 
0129 if hxrdata == 0 && exist([hxr_path,proc_datafile3],'file') && (gettime_jd(proc_datafile3,hxr_path) > gettime_jd(datafile3,hxr_path)),
0130     
0131     load([hxr_path,proc_datafile3],'data_proc');
0132     
0133     procdata = 1;
0134     
0135     disp(['LUKE data loaded from file ',hxr_path,proc_datafile3])
0136     
0137     if isfield(data_proc,'hxr'),
0138         hxr = data_proc.hxr;
0139         opt.save = 0;
0140         
0141         hxrdata = 1;
0142         
0143         disp(['HXR data loaded from file ',hxr_path,proc_datafile3])
0144         
0145     end
0146     
0147     if isstruct(hxr),
0148         if ~isfield(hxr,'dt')
0149             if isnan(dt),
0150                 error('No value found for dt as input or from PROC_DATA file')
0151             else
0152                 hxr.dt = dt;
0153                 disp(['Warning : input dt = ',num2str(dt),' enforced, No value found for dt in PROC_DATA file'])
0154                 if opt_save_0 == 1,
0155                     opt.save = 1;
0156                 end
0157             end
0158         elseif ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0159             disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_DATA file dt = ',num2str(hxr.dt),' enforced.'])
0160         end
0161     end
0162     datafile = datafile3;
0163     
0164 end
0165 
0166 if exist([hxr_path,proc_hxr_datafile],'file') && (gettime_jd(proc_hxr_datafile,hxr_path) > gettime_jd(hxr_datafile,hxr_path)),
0167     
0168     load([hxr_path,proc_hxr_datafile],'hxr');
0169     
0170     if ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0171         disp(['Warning : input dt = ',num2str(dt),' discarded, HXR file dt = ',num2str(hxr.dt),' enforced.'])
0172     end
0173     
0174     hxrdata = 1;
0175     opt.save = 0;
0176     
0177     disp(['HXR data loaded from file ',hxr_path,proc_hxr_datafile])
0178     
0179 end
0180 
0181 if hxrdata == 0 && exist([hxr_path,hxr_datafile],'file'),
0182     
0183     load([hxr_path,hxr_datafile],'Zbremdiag','hxrexp');
0184     
0185     hxr.kfit = Zbremdiag.kfit;
0186     hxr.brem_bd_plasma = Zbremdiag.brem_bd_plasma;
0187     hxr.brem_bd_diag = Zbremdiag.brem_bd_diag;
0188     hxr.dt = Zbremdiag.dt;
0189     hxr.hxrexp = hxrexp.';
0190     
0191     if ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0192         disp(['Warning : input dt = ',num2str(dt),' discarded, HXR file dt = ',num2str(hxr.dt),' enforced.'])
0193     end
0194     
0195     clear Zbremdiag hxrexp dt
0196     
0197     hxrdata = 1;
0198     datafile = hxr_datafile;
0199     
0200     disp(['HXR data loaded from file ',hxr_path,hxr_datafile])
0201     
0202 end
0203 
0204 if hxrdata == 0 && exist([hxr_path,datafile1],'file'),
0205     
0206     data = load([hxr_path,datafile1]);
0207     
0208     disp(['LUKE data loaded from file ',hxr_path,datafile1])
0209     
0210     if procdata == 0,
0211         
0212         data_proc = proc_luke_jd(data,-1,-1,0.1,NaN,'',opt);
0213         
0214         procdata = 1;
0215         
0216     end
0217     
0218     if isempty(hxr_file),
0219         error('No HXR spec file specified')
0220     end
0221     
0222     hxrdata = runhxr_jd(data,basestr,hxr_file,exp_file,hxr_path,texp);
0223     
0224     hxr.kfit = hxrdata.Zbremdiag.kfit;
0225     hxr.brem_bd_plasma = hxrdata.Zbremdiag.brem_bd_plasma;
0226     hxr.brem_bd_diag = hxrdata.Zbremdiag.brem_bd_diag;
0227     hxr.dt = hxrdata.Zbremdiag.dt;
0228     hxr.hxrexp = hxrdata.hxrexp.';
0229     
0230     if ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0231         disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_RESULTS file dt = ',num2str(hxr.dt),' enforced.'])
0232     end
0233     
0234     clear data hxrdata 
0235     
0236     hxrdata = 1;
0237     datafile = datafile1;
0238     
0239 end
0240 
0241 if hxrdata == 0 && exist([hxr_path,datafile2],'file'),
0242     
0243     data = load([hxr_path,datafile2]);
0244     
0245     disp(['LUKE data loaded from file ',hxr_path,datafile2])
0246     
0247     if procdata == 0,
0248         
0249         data_proc = proc_luke_jd(data.output,-1,-1,0.1,NaN,'',opt);
0250         
0251         procdata = 1;
0252         
0253     end
0254     
0255     if isempty(hxr_file),
0256         error('No HXR spec file specified')
0257     end
0258     
0259     hxrdata = runhxr_jd(data,basestr,hxr_file,exp_file,hxr_path,texp);
0260     
0261     hxr.kfit = hxrdata.Zbremdiag.kfit;
0262     hxr.brem_bd_plasma = hxrdata.Zbremdiag.brem_bd_plasma;
0263     hxr.brem_bd_diag = hxrdata.Zbremdiag.brem_bd_diag;
0264     hxr.dt = hxrdata.Zbremdiag.dt;
0265     hxr.hxrexp = hxrdata.hxrexp.';
0266     
0267     if ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0268         disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_DATA file dt = ',num2str(hxr.dt),' enforced.'])
0269     end
0270     
0271     clear data hxrdata 
0272     
0273     hxrdata = 1;
0274     datafile = datafile2;
0275     
0276 end
0277 
0278 if hxrdata == 0 && exist([hxr_path,datafile3],'file'),
0279     
0280     data = load([hxr_path,datafile3]);
0281     
0282     disp(['LUKE data loaded from file ',hxr_path,datafile3])
0283     
0284     data = proc_backup_jd(data,opt);
0285     
0286     if procdata == 0,
0287         
0288         data_proc = proc_luke_jd(data,-1,-1,0.1,NaN,'',opt);
0289         
0290         procdata = 1;
0291         
0292     end
0293     
0294     if isempty(hxr_file),
0295         error('No HXR spec file specified')
0296     end
0297     
0298     hxrdata = runhxr_jd(data,basestr,hxr_file,exp_file,hxr_path,texp);
0299     
0300     hxr.kfit = hxrdata.Zbremdiag.kfit;
0301     hxr.brem_bd_plasma = hxrdata.Zbremdiag.brem_bd_plasma;
0302     hxr.brem_bd_diag = hxrdata.Zbremdiag.brem_bd_diag;
0303     hxr.dt = hxrdata.Zbremdiag.dt;
0304     hxr.hxrexp = hxrdata.hxrexp.';
0305     
0306     if ~isempty(dt) && ~isnan(dt) && abs(dt - hxr.dt)/dt > 1e-2,
0307         disp(['Warning : input dt = ',num2str(dt),' discarded, PROC_RESULTS file dt = ',num2str(hxr.dt),' enforced.'])
0308     end
0309     
0310     clear data hxrdata 
0311     
0312     hxrdata = 1;
0313     datafile = datafile1;
0314     
0315 end
0316 
0317 if hxrdata == 0,
0318     disp('Warning : No data found, aborted')
0319     return
0320 end
0321 
0322 if opt.save,
0323     
0324     if procdata == 1,
0325         
0326         data_proc.hxr = hxr;
0327         
0328         save([hxr_path,'PROC_',datafile],'data_proc');
0329         
0330     else
0331         
0332         save([hxr_path,'PROC_',datafile],'hxr');
0333         
0334     end
0335 end
0336 
0337 nc = length(ic);
0338 
0339 
0340 if strcmp(basestr,'TS'),
0341     dt = 0.016;
0342 elseif strcmp(basestr,'TCV'),
0343     dt = 0.0025;
0344 else
0345     error('this machine is not implemented yet')
0346 end
0347 
0348 ikfitmin = find(hxr.kfit >= krange(1),1,'first');
0349 ikfitmax = find(hxr.kfit <= krange(2),1,'last');
0350 ik = ikfitmin:ikfitmax;
0351 nk = length(ik);
0352 
0353 hxr_proc.k = hxr.kfit;
0354 hxr_proc.ik = ik;
0355 hxr_proc.ic = ic;
0356 hxr_proc.dNdtplasma = hxr.brem_bd_plasma.';
0357 hxr_proc.dNdtdiag = hxr.brem_bd_diag.';
0358 hxr_proc.dNdtexp = hxr.hxrexp.';
0359 
0360 hxr_proc.dvarplasmak = abs(sum(hxr.brem_bd_plasma(ic,ik)) - sum(hxr.hxrexp(ic,ik)))./abs(sum(hxr.hxrexp(ic,ik)));
0361 hxr_proc.dvarplasma = sqrt(sum(hxr_proc.dvarplasmak.^2))/nk;        
0362 
0363 hxr_proc.dvardiagk = abs(sum(hxr.brem_bd_diag(ic,ik)) - sum(hxr.hxrexp(ic,ik)))./abs(sum(hxr.hxrexp(ic,ik)));
0364 hxr_proc.dvardiag = sqrt(sum(hxr_proc.dvardiagk.^2))/nk;        
0365 
0366 [hxr_proc.Tphplasma,hxr_proc.eTphplasma,hxr_proc.Aplasma,hxr_proc.eAplasma,hxr_proc.Qplasma] = ...
0367     tphfit_dke_yp(repmat(hxr_proc.k(ik).',[1,nc]),dt*hxr.brem_bd_plasma(ic,ik).',sqrt(dt*hxr.brem_bd_plasma(ic,ik)).');
0368 [hxr_proc.Tphdiag,hxr_proc.eTphdiag,hxr_proc.Adiag,hxr_proc.eAdiag,hxr_proc.Qdiag] = ...
0369     tphfit_dke_yp(repmat(hxr_proc.k(ik).',[1,nc]),dt*hxr.brem_bd_diag(ic,ik).',sqrt(dt*hxr.brem_bd_diag(ic,ik)).');
0370 [hxr_proc.Tphexp,hxr_proc.eTphexp,hxr_proc.Aexp,hxr_proc.eAexp,hxr_proc.Qexp] = ...
0371     tphfit_dke_yp(repmat(hxr_proc.k(ik).',[1,nc]),dt*hxr.hxrexp(ic,ik).',sqrt(dt*hxr.hxrexp(ic,ik)).');
0372 
0373 
0374 hxr_proc.icpeak = ic(find(sum(hxr.brem_bd_plasma(ic,ik),2) == max(sum(hxr.brem_bd_plasma(ic,ik),2)),1,'first'));
0375 
0376 if isfield(opt,'diaryname') && ~isempty(opt.diaryname),
0377     diary(opt.diaryname)
0378     disp(' ');
0379     disp(' ---- HXR results on the central chord ---- ');
0380     disp(' ');
0381     
0382     disp('k (keV) | CR exp (1/ms) | CR sim (1/ms)')
0383     
0384     for iik = 1:length(hxr_proc.k),
0385         sk = num2str(hxr_proc.k(iik),3);
0386         sdNdtdiag_iikiicc = num2str(hxr_proc.dNdtdiag(iik,opt.icc),'%6.2f');
0387         sdNdtexp_iikiicc = num2str(hxr_proc.dNdtexp(iik,opt.icc),'%6.2f');
0388         
0389         disp(['  ',repmat(' ',[1,3-length(sk)]),sk,'   |   ',repmat(' ',[1,9-length(sdNdtexp_iikiicc)]),sdNdtexp_iikiicc,'   |   ',repmat(' ',[1,9-length(sdNdtdiag_iikiicc)]),sdNdtdiag_iikiicc])
0390         
0391     end
0392     diary off;
0393 end    
0394 
0395 if display_mode > 0,
0396     
0397     style0 = 'none';
0398     style = '-';
0399     style2 = '--';
0400     marker = 'none';
0401     marker1 = '+';
0402     marker2 = 'o';
0403     marker3 = 's';
0404     marker4 = '.';
0405     markers = {marker1,marker2,marker3};
0406     color = NaN;
0407     color1 = 'k';
0408     color2 = 'r';
0409     color3 = 'b';
0410     color4 = 'g';
0411     color5 = 'm';
0412     color6 = 'c';
0413     colors = {color2,color3,color4};
0414     
0415     width = 0.5;
0416     width2 = 2;
0417     siz = 20+14*1i;
0418     
0419     red = 0.9;
0420     lspace = 0.7;
0421     lspace2 = 0.5;
0422     bspace = 0.7;
0423     bspace2 = 0.5;
0424     
0425     n1 = 3;
0426     siz = 14+10*1i;
0427     
0428     k = hxr_proc.k(ik);
0429     dNdtplasma = hxr_proc.dNdtplasma(ik,ic);
0430     dNdtdiag = hxr_proc.dNdtdiag(ik,ic);
0431     dNdtexp = hxr_proc.dNdtexp(ik,ic);
0432     
0433     if isfield(opt,'icrej_exp') && ~isempty(opt.icrej_exp),
0434         maskic_exp = ~any(repmat(ic,[length(opt.icrej_exp),1]) == repmat(opt.icrej_exp.',[1,length(ic)]),1);
0435     else
0436         maskic_exp = true(1,nc);
0437     end
0438     
0439     xlab = 'Chord #';
0440     xlim = [min(ic)-1,max(ic)+1];
0441     xtick = 0:5:60;
0442     
0443     xlab2 = 'Photon Energy (keV)';
0444     xlim2 = [0,2*k(end) - k(end-1)];
0445     xtick2 = k;
0446     
0447     ylim = NaN;
0448     
0449     leg = {'sim.','exp.'};
0450     
0451     if display_mode > 1,
0452         
0453         figure(51),clf,set(51,'name','profile per channel')
0454         
0455         ylab = 'dN/dt [s^{-1}]';
0456         n2 = ceil(nk/n1);
0457         
0458         for iik = 1:nk,
0459             
0460             subplot(n1,n2,iik)
0461             
0462             tit = ['Pulse count rate, E=',num2str(k(iik)),' keV'];
0463             
0464             
0465             graph1D_jd(ic,dNdtdiag(iik,:),0,0,'','','',NaN,xlim,ylim,style,marker,color2,width2,siz);
0466             graph1D_jd(ic,dNdtexp(iik,:),0,0,xlab,ylab,tit,leg,xlim,ylim,style2,marker,color3,width2,siz,gca,red);
0467             
0468             set(gca,'xtick',xtick);
0469             
0470             
0471         end
0472         
0473         print_jd(p_opt,['Fig_hxrcomp_',load_id],[hxr_path,'figures'],51);
0474         
0475         
0476         figure(52),clf,set(52,'name','spectrum per chord')
0477         
0478         n2 = ceil(nc/n1);
0479         
0480         for iic = 1:nc,
0481             
0482             subplot(n1,n2,iic)
0483             
0484             tit = ['Pulse count rate, chord # ',num2str(ic(iic))];
0485             
0486             
0487             graph1D_jd(k,dNdtdiag(:,iic),0,1,'','','',NaN,xlim2,ylim,style,marker,color2,width2,siz);
0488             graph1D_jd(k,dNdtexp(:,iic),0,1,xlab2,ylab,tit,leg,xlim2,ylim,style2,marker,color3,width2,siz,gca,red);
0489             
0490             set(gca,'xtick',xtick2);
0491             
0492             
0493         end
0494         
0495         print_jd(p_opt,['Fig_hxrcomp_spec_',load_id],[hxr_path,'figures'],52);
0496         
0497     end
0498     
0499     figure(53),clf,set(53,'Name','Count rate')
0500     
0501     kmin = min(k);
0502     kmax= max(k);
0503     
0504     ylab = ['Count rate (s^{-1}) [',num2str(kmin),' - ',num2str(kmax),' keV]'];
0505     tit = '';
0506     
0507     
0508     Ndiag = sum(dNdtdiag,1);
0509     Nexp = sum(dNdtexp,1);
0510     
0511     
0512     graph1D_jd(ic,Ndiag,0,0,'','','',NaN,xlim,ylim,style,marker,color2,width2,siz,gca,1,lspace,bspace,sqrt(Ndiag/dt));
0513     graph1D_jd(ic(maskic_exp),Nexp(maskic_exp),0,0,xlab,ylab,tit,leg,xlim,ylim,style,marker,color3,width2,siz,gca,red,lspace,bspace,sqrt(Nexp(maskic_exp)/dt));
0514     
0515     set(gca,'xtick',xtick);
0516     
0517     
0518     print_jd(p_opt,['Fig_hxrcomp_tot_',load_id],[hxr_path,'figures'],53);
0519     
0520     
0521     figure(54),clf,set(54,'Name','Normalized count rate')
0522     
0523     ylab = 'Normalized count rate';
0524     ylim = [0,1.2];
0525     ytick = 0:0.2:1.2;
0526     
0527     
0528     nNdiag = Ndiag/Ndiag(ic == opt.icc);
0529     nNexp = Nexp/Nexp(ic == opt.icc);
0530     
0531     
0532     enNdiag = sqrt(Ndiag/dt)/Ndiag(ic == opt.icc);
0533     enNexp = sqrt(Nexp/dt)/Nexp(ic == opt.icc);
0534     
0535     
0536     graph1D_jd(ic,nNdiag,0,0,'','','',NaN,xlim,ylim,style,marker,color2,width2,siz,gca,1,lspace,bspace,enNdiag);
0537     graph1D_jd(ic(maskic_exp),nNexp(maskic_exp),0,0,xlab,ylab,tit,leg,xlim,ylim,style,marker,color3,width2,siz,gca,red,lspace,bspace,enNexp(maskic_exp));
0538     
0539     set(gca,'xtick',xtick);
0540     
0541     
0542     print_jd(p_opt,['Fig_hxrcomp_norm_',load_id],[hxr_path,'figures'],54);
0543     
0544     
0545     figure(55),clf,set(55,'Name','Normalized exp emission')
0546     
0547     Nnorm = dNdtexp.'./repmat(max(dNdtexp.'),[nc,1]);
0548     eNnorm = sqrt(dNdtexp.'/dt)./repmat(max(dNdtexp.'),[nc,1]);
0549     
0550     for iik = 1:nk,
0551         leg2{iik} = ['k = ',num2str(k(iik)),' keV'];
0552     end
0553     
0554     graph1D_jd(repmat(ic(maskic_exp).',[1,nk]),Nnorm(maskic_exp,:),0,0,xlab,ylab,tit,leg2,xlim,ylim,...
0555         style,marker,color,width2,siz,gca,red,lspace,bspace,eNnorm(maskic_exp,:));
0556     
0557     set(gca,'xtick',xtick);
0558     set(gca,'ytick',ytick);
0559     
0560     print_jd(p_opt,['Fig_countrate_exp_',load_id],[hxr_path,'figures'],55);
0561     
0562     
0563     maskplasma = 1 - hxr_proc.Qplasma < 1e-1;
0564     maskdiag = 1 - hxr_proc.Qdiag < 1e-1;
0565     maskexp = 1 - hxr_proc.Qexp < 1e-1;
0566     
0567     figure(56),clf,set(56,'Name','Photon Temperature')
0568     
0569     ylim = [0,max([hxr_proc.Tphplasma(maskplasma),hxr_proc.Tphdiag(maskdiag),hxr_proc.Tphexp(maskexp)])]*1.2;
0570     
0571     ylab = ['Photon temperature (keV)'];
0572     tit = '';
0573     
0574     
0575     
0576     graph1D_jd(ic(maskdiag),hxr_proc.Tphdiag(maskdiag),0,0,'','','',NaN,xlim,ylim,style,marker,color2,width2,siz,gca,1,lspace,bspace,hxr_proc.eTphdiag(maskdiag));
0577     graph1D_jd(ic(maskexp & maskic_exp),hxr_proc.Tphexp(maskexp & maskic_exp),0,0,xlab,ylab,tit,leg,xlim,ylim,style,marker,color3,width2,siz,gca,red,lspace,bspace,hxr_proc.eTphexp(maskexp & maskic_exp));
0578     
0579     set(gca,'xtick',xtick);
0580     
0581     
0582     print_jd(p_opt,['Fig_tph_',load_id],[hxr_path,'figures'],56);
0583     
0584     
0585     figure(57),clf,set(57,'Name','Photon Amplitude')
0586     
0587     ylim = NaN;
0588     ylab = ['Emission Amplitude'];
0589     tit = '';
0590     
0591     
0592     
0593     graph1D_jd(ic(maskdiag),hxr_proc.Adiag(maskdiag),0,0,'','','',NaN,xlim,ylim,style,marker,color2,width2,siz,gca,1,lspace,bspace,hxr_proc.eAdiag(maskdiag));
0594     graph1D_jd(ic(maskexp & maskic_exp),hxr_proc.Aexp(maskexp & maskic_exp),0,0,xlab,ylab,tit,leg,xlim,ylim,style,marker,color3,width2,siz,gca,red,lspace,bspace,hxr_proc.eAexp(maskexp & maskic_exp));
0595     
0596     set(gca,'xtick',xtick);
0597     
0598     
0599     print_jd(p_opt,['Fig_A_',load_id],[hxr_path,'figures'],57);
0600     
0601     
0602     figure(58),clf,set(58,'name','spectrum for central chord')
0603     
0604     ylab = 'dN/dt [s^{-1}]';
0605     
0606     
0607     
0608     ylim = NaN;
0609 
0610 
0611 
0612 
0613 
0614     
0615     tit = ['Pulse count rate, chord # ',num2str(opt.icc)];
0616     
0617     
0618     graph1D_jd(k,dNdtdiag(:,ic == opt.icc),0,0,'','','',NaN,xlim2,ylim,style,marker,color2,width2,siz,gca,1,lspace,bspace,sqrt(dNdtdiag(:,ic == opt.icc)/dt));
0619     graph1D_jd(k,dNdtexp(:,ic == opt.icc),0,0,xlab2,ylab,tit,leg,xlim2,ylim,style2,marker,color3,width2,siz,gca,red,lspace,bspace,sqrt(dNdtexp(:,ic == opt.icc)/dt));
0620     
0621     set(gca,'xtick',xtick2);
0622     
0623     
0624     
0625     print_jd(p_opt,['Fig_hxrcomp_central_',load_id],[hxr_path,'figures'],58);
0626     
0627     
0628 end