; Make a new OBF model readcol, 'filter_components.txt', nrg_new, al_model, c_model, n_model, $ o_model, al_k_model, /silent obf_new = exp(- (al_model + c_model + n_model + o_model + al_k_model) ) obf_nrg = nrg_new c_k = where( nrg_new gt 0.270 and nrg_new le 0.4000 ) obf_nrg[c_k] = nrg_new[c_k] - 0.0005 al_l_adj = interpol( al_model, nrg_new, obf_nrg ) al_k_adj = interpol( al_k_model, nrg_new, obf_nrg ) o_adj = interpol( o_model, nrg_new, obf_nrg ) n_adj = interpol( n_model, nrg_new, obf_nrg ) c_adj = 1.13 * interpol( c_model, nrg_new, obf_nrg ) c_adj[c_k] = 1.13 * c_model[c_k] edge_lo = 0.2864 edge_hi = 0.2870 edge_nrg = 0.5 * (edge_lo + edge_hi) edge_depth = 0.26 edge_tau = -alog( edge_depth ) edge = where( obf_nrg gt edge_lo and obf_nrg le edge_hi ) fudge = fltarr( n_elements( obf_nrg ) ) + 1. fudge[edge] = 1 - (1-edge_depth) * ( obf_nrg[edge] - edge_lo) / $ (edge_hi - edge_lo) above_edge = where( obf_nrg gt edge_hi ) fudge[above_edge] = exp( alog(edge_depth) * $ (obf_nrg[above_edge]/edge_nrg)^(-9.) ) obf_adj = fudge * exp(- (al_l_adj + c_adj + n_adj + o_adj + al_k_adj) ) ; view the result set_plot, 'ps' device, /port, filen='obf_adj.ps', /color, yoffset=4., ysize=20. loadct, 39 blue = 48 red = 250 white = 0 !p.multi = [0,0,2,0,0] !p.charsize = 1.7 plot, obf_nrg, obf_adj, psym=3, xra=[0.25,0.6], $ xtit='Energy (keV)', ytit='OBF Transmission', color=white oplot, obf_nrg, obf_adj, color=red, thick=3 oplot, nrg_new, obf_new, color=blue, thick=2 legend, ['Released', 'Adjusted'], color=[blue, red], lines=[0,0] plot, obf_nrg, obf_adj, psym=3, xra=[0.27,0.30], $ xtit='Energy (keV)', ytit='OBF Transmission', color=white oplot, obf_nrg, obf_adj, color=red, thick=3 oplot, nrg_new, obf_new, color=blue, thick=2 device, /close ; write out a new OBF! interp_index = interp_pruned_x( obf_nrg, obf_adj, 0.001 ) obf_prune_nrg = obf_nrg[interp_index] obf_prune = obf_adj[interp_index] forprint, obf_prune_nrg, obf_prune, text='acis_obf_adj_pr001.txt', /silent