There are two basic ways to proceed with line ids and associated emissivities: 1) You've measured the features in the region, and are confident that your analysis has deblended the components. Hence you really want to use only the levels 3-1 and 4-1 lines, for example (see tables below). 2) You can't resolve blends, and there are multiple significant contributors in the region, and you want all emissivities from a bandpass. Randall has defined two strings "APECline(el, ion, lowlev, hilev)" and "APECrange(lowwav, hiwav)" to store this info in the sherpa output file. (I believe they are only strings and not functions? Do sherpa/guide do anything with them when reading the MDL file?) In isis we have the functions el_ion ([Z-list], [ion-list]); wl([wave_lo], [wave_hi]); brightest(n, line_list); where(); line_em(line_list, temperatures[,densities]); which can be applied like: isis> page_group( brightest( 2, where( wl( 8.4, 8.44 ) ) ) ); # index ion lambda F (ph/cm^2/s) A(s^-1) upper lower label 165933 * Mg XII 8.4192 4.686e-05 0.000e+00 4 1 2p~^2P_{3/2} - 1s~^2S_{1/2} 165932 * Mg XII 8.4246 2.247e-05 0.000e+00 3 1 2p~^2P_{1/2} - 1s~^2S_{1/2} or isis> line_list = brightest( 2, where( wl( 8.4, 8.44 ) ) ); (note that "brightest();" implies that a plasma model has been define - i.e., you bias the list w/ temperature and density components). isis> page_group( brightest( 20, where( wl( 8.4, 8.44 ) ) ) ); # index ion lambda F (ph/cm^2/s) A(s^-1) upper lower label 168041 * Fe XXII 8.4053 4.243e-07 0.000e+00 177 8 166209 * Mg XII 8.4060 2.935e-07 0.000e+00 10037 17 166224 * Mg XII 8.4146 1.698e-07 0.000e+00 10077 27 166219 * Mg XII 8.4153 1.160e-07 0.000e+00 10091 29 166220 * Mg XII 8.4153 1.255e-07 0.000e+00 10090 28 166221 * Mg XII 8.4153 2.691e-07 0.000e+00 10092 30 166210 * Mg XII 8.4160 1.312e-07 0.000e+00 10012 13 166229 * Mg XII 8.4166 9.043e-08 0.000e+00 10141 42 166230 * Mg XII 8.4166 1.939e-07 0.000e+00 10143 44 166232 * Mg XII 8.4171 8.899e-08 0.000e+00 10128 41 166211 * Mg XII 8.4181 1.029e-07 0.000e+00 10021 9 165933 * Mg XII 8.4192 4.686e-05 0.000e+00 4 1 2p~^2P_{3/2} - 1s~^2S_{1/2} 166222 * Mg XII 8.4206 1.392e-07 0.000e+00 10053 23 166231 * Mg XII 8.4212 1.505e-07 0.000e+00 10118 37 165932 * Mg XII 8.4246 2.247e-05 0.000e+00 3 1 2p~^2P_{1/2} - 1s~^2S_{1/2} 166233 * Mg XII 8.4257 1.410e-07 0.000e+00 10137 40 166226 * Mg XII 8.4320 2.392e-07 0.000e+00 10086 26 166212 * Mg XII 8.4331 1.010e-07 0.000e+00 10027 12 166227 * Mg XII 8.4347 1.007e-07 0.000e+00 10085 25 166213 * Mg XII 8.4361 1.205e-07 0.000e+00 10031 12 or isis> line_list = where( wl( 8.4, 8.44 ) ) ; or isis> page_group(brightest( 20, where( el_ion( Mg, 12 ) and wl( 8.4, 8.44 )))); [output suppressed - looks like the table above, but without the one Fe XXII line] For the purposes of emission modeling, we ultimately need to be able to use this (or the equivalent): isis> emissivity = line_em (line-list, temp-array, [dens-array]); *** I propose that we add levels to the isis el_ion() function: *** flag = el_ion ([proton_number_list], [ion_list], [lower_level_list], [upper_level_list]); or we add an explicit level-range functions analogous to wl() for wavelengths: flag = lv(lo_range, hi_range); which might be useful if there are deterministic categories of levels, such as resonance, forbidden, intersystem, DR, (but I don't know if there is a code for the levels). In this way, our unique line list could be done as: isis> mg12_resonance = where( wl(8.4, 8.44) and el_ion(Mg, 12, 1, [3,4]) ); If instead, I am interested in a region, this would become: isis> mg12_resonance = where( wl(8.4, 8.44) ); Alternatively, if a lv function: isis> mg12_resonance = where( wl(8.4, 8.44) and el_ion(Mg, 12) and lv(1,[3,4]) ); And finally, the emissivity can be obtained (and inspected in this example --- try it!): mg12_resonance = where( wl(8.4, 8.44) ); t = 10.0^[6.0:8.5:0.05]; emg12 = line_em( mg12_resonance, t); limits; xrange(6,8.5); plot( log10(t), emg12); But more importantly, this emissivity can be used in emission measure modeling. We could either add the array to the working model structure, or leave it dynamically derived by a modeling function which reads the table (e.g., you might not want a delta T=0.05 but 0.1 or 0.01). This would give us the most flexibility in fitting: we can either apply our a priori biases (brightest(), specific ions), or start blind (everything in the region). This also brings up some questions about the model descriptor list file (MDL; a generalized sherpa construct) and/or memory structure, but I'm still thinking about that and I'll defer to another email. -- Dave ---- You received this message because you are subscribed to the isis-users list. To unsubscribe, send a message to isis-users-request_at_email.domain.hiddenwith the first line of the message as: unsubscribeReceived on Thu Oct 25 2001 - 11:51:23 EDT
This archive was generated by hypermail 2.3.0 : Fri May 02 2014 - 08:35:43 EDT