Protocol: AhXXX  Sequence: ahXXX.c  Apptype: solidseq1d

Description: 

A multifunctional 3D sequence to provide XXX correlation with HX
cross polarization, followed by XX mixing, using DARR, C7 
or SPC5, RFDR or PARIS. The C7 amd SPC5 can be executed optionally with or 
without a double quantum filter. The F1 period follows HX CP, 
the F2 period follows the first mixing period and F3 acquisition follows  
the second mixing period. Decoupling during F1,F2 and F3 uses either 2-angle
SPINAL or TPPM and a constant time option is provided.  F1 and F2 are simple
delays with H decoupling. Optional Y decoupling is provided during 
F3 acquisition. 

Acknowledgement:

Sequence provided by Chad Reinstra UIUC as hXXX.c. 

Setup:

Load an exisiting dataset or type Settancpx. Type AhYXX, select 
the desired options and determine calibrations for the desired
experiment. 

DecouplingH: Hseq='tppm' or 'spinal'.
F2 Refocusing: simple delay
F3 Refocusing: simple delay
Constant Time: Set tRFmax
(1)Mixing: mMix = 'dar','c7','spc5','rfdr' and 'paris'
(2)Mixing: mMix1 = 'darr'
Double Quantum Mixing (C7 and SPC5) dqfXspc5(c7)='y' else 'n'
Optional Y decoupling (acquisition only) ddec2='y', else 'n. 

Parameter Groups: 

cpHX:  Module:  yes
Sequence:  tancpx.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from dec to obs.
Parameters:  Sequence Page
       shHX - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with chHX.
       chHX - the variable-amplitude channel, 'fr' from or 'to', to.
       aHhx - median amplitude of the dec channel.
       aXhx - median amplitude of the obs channel.
       bHX - +/- tangent curvature (>0 to 1.0e5).
       dHX - amplitude width of the ramp. A negative width sets a ramp
              that starts high and decreases in amplitude.
       tHX - contact time
       ofHX - overall offset on the variable channel
       frHX = 'dec' -  channel with the initial polarization (must be
              set - not shown).
       toHX = 'obs' -  channel with the final polarization (must be set
              - not shown).
Implementation:  CP hx = getcp("HX",0.0,0.0,0,1);
Underscore function: _cp_(hx,phHhx,phXhx); phHhx is the overall phase
              table for the H channel and phXhx is that for the X channel.

c7X: Module:  yes
Sequence:  c7inad2d.c
Description:  Implements the Post C7 recoupling sequence on the obs
              channel during XX mixing. 
Parameters:  Sequence Page
       aXc7 - amplitude of obs pulses.
       pwXc7 - 360-degree flip on obs.
       qXc7 - C7 cycles represented in the .DEC file.
       ofXc7 - overall frequency offset.
       chXc7 = 'obs' must be set (not shown).
       dqfXc7 ='y' for double quantum mixing
       tXc7ret - total mix time returned
Implementation: MPSEQ c7 = getpostc7("c7X",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

spc5X:  Module:  yes
Sequence:  inad2dspc5.c
Description:  Implements the SPC5 recoupling sequence on the obs
              channel.
Parameters:  Sequence Page
       aXspc5 - amplitude of obs pulses.
       pwXspc5 - 360-degree flip on obs.
       qXspc5 - SPC5 cycles represented in the .DEC file.
       ofXspc5 - overall frequency offset.
       chXspc5 = 'obs' must be set (not shown).
       dqfXspc5 = 'y' for double quantum mixing
       tXspc5 - total mix time returned
Implementation: MPSEQ spc5 = getspc5("spc5X",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

rfdrX:  Module:  yes
Sequence:  rocsa2d.c
Description:  Implements RFDR with a single pi pulse per rotor period
              and an XY8 phase cycle.
Parameters:  Sequence Page
       aXrfdr - amplitude of obs pulses.
       pwXrfdr - 180-degree flip on obs.
       qXrfdr - RFDR cycles represented in the .DEC file.
       ofXrfdr - overall frequency offset.
       chXrfdr = 'obs' must be set (not shown).
       tXrfdrret - total mix time returned
Implementation: MPSEQ rfdr = getrfdr("rfdrX",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

mixX:  Module:  no (First Mixing tXmix, Second Mixing tXmix1)
Sequence:  tancp2drad.c
Description:  Implements a mixing delay in sequences where mixing occurs
              among the obs nuclei. CW decoupling is allowed on DEC.
              Typically used for DARR (RAD) mixing periods where decoupling
              at a field strength of srate/2.0 enhances obs spin diffusion.
Parameters:  Sequence Page
       tXmix - the mixing delay time. The delay may or may not be rotor
              synchronized, depending on the sequence.
       aHmix - amplitude of decoupling.

Note:  This sequence uses getdseq2() instead of getdseq(). The getdseq2() router
       calls 2-angle spinal by default when Hseq = 'spinal'. Calls to 1-angle
       SPINAL should use getdseq(). Calls to TPPM and WALTZ are similar to 
       those of getdseq(). 

Hseq:  Module: yes (implementation 2 for SPINAL (2-angle) and TPPM)
Sequence:  tancpx.c and ahX.c
Description:  Chooses SPINAL, SPINAL2, TPPM or WALTZ decoupling on 
              the dec channel during acquisition.
Parameters:   Sequence Page - The Hspinal, Htppm and other groups
              overlap.  Hseq chooses the decoupling sequences TPPM
              SPINAL, SPINAL2 or WALTZ. 
Implementation:  DSEQ dec = getdseq("H"); The router implements
              getspinal(), getspinal2(), gettppm() or getwaltz(), as
              selected.
Implementation2: DSEQ dec = getdseq2("H"); The router implements
              getspinal2s(), gettppm() or getwaltz(), as selected.
Underscore functions:  _dseqon(dec); runs _tppm(); _spinal(); _spinal2 
              or _waltz, as selected. dseqoff(dec); runs decprgoff(dec);
Underscore functions2:  _dseqon2(dec); runs _tppm(); _spinal2() or _waltz();
             _dseqoff2(dec); runs decprgoff();

Hspinal:  Module: yes
Sequence:  tancpx.c and ahX.c
Description:  Implements SPINAL decoupling on the dec channel during
              acquisition. Implements SPINAL2 (2-angle) decoupling with 
              getdseq2() or getspinal2s().
Parameters:  Sequence Page
       aHspinal - amplitude of the dec channel.
       pwHspinal - approximate 180-degree flip.
       phHspinal - +/- small angle phase. SPINAL64 (1) is implemented
              with phases = +/- 1.0, +/- 1.5 and +/-2.0 times
              phHspinal or (2) is implemented with phases = +/- phHspinal, 
              +/- (phHspinal + alpHspinal) and +/- (phHspinal + 2.0*alpHspinal).
       alpHspinal - second angle - set 0.0 for TPPM and phHspinal/2.0
                     for standard SPINAL64.             
       chHspinal = 'dec' must be set (not shown).
Implementation: SPINAL dec = getspinal("H"); or DSEQ dec = getdseq("H");
Implementation2: SPINAL2 dec = getspinal2s("H"); or DSEQ dec = getdseq2("H");
Underscore functions: _spinal(dec); and decprgoff(); or _dseqon(dec);
             and _dseqoff(dec);
Underscore functions2: _spinal2(dec); and decprgoff(); or _dseqon2(dec);
             and _dseqoff2(dec);
        
Htppm:  Module: yes
Sequence:  tancpx.c and ahX.c
Description:  Implements TPPM decoupling on the dec channel during
              acquisition.
Parameters:  Sequence Page
       aHtppm - amplitude of the dec channel.
       pwHtppm - approximate 180-degree flip angle on resonance.
       phHtppm - +/- small angle phase. TPPM is implemented
              with phases = +/- 1.0 times phHtppm for alternating
              pulses.
       chHtppm = 'dec' must be set (not shown).
Implementation: TPPM dec = gettppm("H"); or DSEQ dec = getdseq("H");
Implementation2: DSEQ dec = getdseq2("H");
Underscore functions: _tppm(dec); and decprgoff(); or _dseqon(dec); and
              _dseqoff(dec);
Underscore functions2: _dseqon2(dec); and _dseqoff2(dec);
