The SpecMan4EPR Experiment is a description of rules and steps to perform an experiment plus the data that was generated by this experiment.

Any experiment has a set of axis, each of them is nothing else but an array of indexes. In simplest case indexes consequently select values associated with an axis variable. Axis defines the number of values that variable associated with the axis can take. If more than two variables are associated with the same axis, they become dependent and controlled by the same index. SpecMan4EPR supports up to four axis that represent four dimensions of the experiment and additional axes for the simple arithmetic operation on the acquired data during experiment. An axis can index an arbitrary amount of dependent variables. During the experiment indices are scanned consequently or randomly depending on a user choice.

The sequence of events during experiment is presented in the Fig. 1. Here the '123' blocks represent the periods when associated hardware is programmed in response to changing of experiment variable. Green brackets depictures cycles that select experimental points of corresponding axis. Experiment starts with the presetup (setup before). Then variables of axis will be set. Then the variables of nested loops ( / / ) axis will be set, if present. Finally the signal or inner-most loop (marked as , Transient) will be executed. The complete list of axis types can be found here. Signal loop is always executed on hardware. If connected hardware has possibilities to store more than one sequence and acquire more than one data trace, then any axis can be executed on-hardware as well. On-hardware settings can be found here.


Fig.1 Sequence of actions during experiment

The pulse sequence generated by SpecMan4EPR is presented in the Fig. 2. The pulse sequence starts with the beginning of sequence (bos) command executed once. Then the user-defined part of sequence and sequence repetition time pattern are evaluated. The duration of repetition time (reptime) command is calculated as a difference between the repetition time specified in the program and the sum of all other parts of the sequence. The order of user-defined part of sequence and sequence repetition time patterns can be configured using Pulse Configuration Wizard. Sequence is finished with end of sequence (eos) command. The pulse sequence is repeated number-of-shots times. The repetition time pattern can be completely eliminated. This mode is advisable when external control of repetition time is used. All commands are defined in the Pulse Configuration Wizard. User-defined sequence is programmed using PPL language.


Fig.2 The pulse sequence. See service pulse commands for bos, eos and reptime patterns description.

The major purpose of the special commands is the elimination of service commands from the PPL script. The bos pattern is typically used for synchronization of multiple pulse pattern generators. Eos pattern can be used for clean up procedures on the detection devices.

The complete pulse sequence is presented in the Fig. 3. In addition to the sequence presented in Fig.2 it includes two additional patterns in the beginning and end of run. SpecMan4EPR has the possibility to 'pack' sequences from sequential experimental points into a single run (see Sequence-on-hardware option). In this case the complete pulse sequence may have multiple pulse sequences. In a simplest case only one pulse sequence will be included into the complete pulse sequence.


Fig.3 The complete pulse sequence. Multiple sequences are shown 'packed' in one run.

The typical use of bor and eor patterns are resetting and triggering of ADC or boxcar integrators.

In case of external sequence triggering, bor pattern will be immediately executed then the trigger will be expected before every sequence/shot. Immediately after the last sequence/shot the eor pattern will be executed.