line-id procedures question

From: David P. Huenemoerder <dph>
Date: Thu, 25 Oct 2001 11:51:20 -0400
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:
unsubscribe
Received 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