next up previous
Next: Ancillary Files: Calibrations, Settings, Up: LCI vote Files Previous: Charge Injection Dictionaries

LCI Loops

To define the LCI loop structure, we construct an XML tree which gives the loop nesting order and describes the iteration structure of each loop. The loop nesting order is

      <lci_loop loop_id='ACD_read_range'>
       <!-- One node for each parameter which varies in this loop -->
        <listLoop param='ACD_read_range'>0:1</listLoop>
        <lci_loop loop_id='ACD_bias'>
          <!-- One node for each parameter which varies in this loop -->
          <rangeLoop param='ACD_bias'>0:7:1</rangeLoop>
          <lci_parameters number='100' period='200000' latc_delay='0' 
                          delay='2' strobe='OFF' zero_suppress='OFF'/>
        </lci_loop> 
      </lci_loop>
Note that at any level of nesting any number <lci_loop> node can be declared and will be executed in sequence. For example a single script may loop on <low_range_gain> with <high_range_gain> set to ``LATC'' and then perform a second loop with the roles reversed.

So far we have defined three kinds of loop iterations.

  1. <listLoop> loops over a colon-separated list of values. These values may be integers or may include special tags such as ``ON'', ``OFF'' or ``LATC''.
  2. <rangeLoop> loops over a specified range of values in even steps. We must specify the loop start, stop and step size values.
  3. <rangeDict> loops over a range of values taken from a charge injection dictionary.

The XML syntax for each of these loop iterations types is given here:

  <listLoop param='param_name'>val0:val1:val2:val3</listLoop>
  <rangeLoop param='param_name'>start:stop:step</rangeLoop>
  <rangeDict param='param_name'>dictionay_name</rangeDict>
Note that a single loop can have more that one parameter varying, so long as each parameter has the same number of steps. This is done by having more that one <listLoop> nodes at the same nesting level. Of course all the nodes must have the same number of values.

LCI parameters can only be used in <listLoop> nodes, LCI iterables can be used in any type of loop. This is just another way of saying that to loop over parameters you must explicitly call out every value in the loop.


next up previous
Next: Ancillary Files: Calibrations, Settings, Up: LCI vote Files Previous: Charge Injection Dictionaries
Eric Charles 2007-06-05