Protocol: Qcpmgsh1d  Sequence: qcpmgsh1d.c  Apptype: solidseq1d

Description: 

   A two-pulse solid or "quadrupole" echo with Shaped CPMG interleaved 
   acquisition and a choice of SPINAL64 or TPPM decoupling.  The CPMG
   refocusing pulses are created as shp1X, using aXcpmg, pwXcpmg, tpwr
   and the rest of the parameters of shp1X.  

Setup: 

   Load a calibrated data set and select the protocol Qcpmg1d. For 
   a new nucleus calibrate with Onepul and then select Qcpmg1d.  

   Select the desired decoupling method, TPPM or SPINAL. The manual file
   Onepul describes calibration of decoupling. 

   Set aXecho = aX90 and pwXecho = pwX90.

   set t1Xecho and t2Xecho to create an echo delay.  It is helpful to set 
   t2Xecho < t1Xecho and use lsfid to set the top of the echo as the first 
   point of the fid. If using MAS be sure t1Xecho + pwXecho/2.0 = n/srate
   where n is an integer. 

   Calibrate the amplitude aXcpmg and width of the shaped-pulse 180 and 
   set these values for Qcpmg1dsh. 

Parameter Groups:

90X:  Module:  no
Sequence:  onepul.c    
Description:  Provides a 90-degree pulse on obs that can be used 
              as a preparation pulse. Also used to store the obs 
              calibration.
Parameters:  Channels Page
      aX90  - the amplitude of the pulse.
      pwX90 - the pulse length.

echoX: Module:  no
Sequence:  ssecho1d.c
Description:  Implements a refocusing pulse with delays before and after
              the pulse.
Parameters:  Sequence Page
       aXecho - amplitude of the obs pulses.
       t1Xecho - delay before the refocusing pulse.
       pwXecho - 180-degree flip on obs.
       t2Xecho - delay after the refocusing pulse.

shp1X:  Module: yes (also shp2H and shp3Y)
Sequence:  r2inv1ds.c
Description:  Implements a named shaped pulse in wavelib with 
              pBox to bused on the obs channel.Used invidually
              or with other shapes in a simpulse.
Parameters:  Sequence Page
       chXshp1 - must be 'obs'. 
       wvXshp1 - pBox pulse waveshape from wavelib.
       aXshp1 - amplitude of pBox pulse.
       dbXshp1 - attenuator setting for pBox pulse.
       tXshp1 - predelay for pBox pulse.
       pwXshp1 - width of pBox pulse.
       phXshp1 - starting small angle phase adjust.
       stXshp1 - shape parameter - see pBox documentation
Implementation:  PBOXPULSE shp1 = getpboxpulse("shp1X",0);
                 PBOXPULSE shp2 = getpboxpulse("shp2H",0);
                 PBOXPULSE shp3 = getpboxpulse("shp3Y",0);
Underscore function: _pboxpulse(shp1,phXshp1);
              _pboxsimpulse(shp1,shp2,phXshp1,phHshp2);
              _pboxsim3pulse(shp1,shp2,shp3,phXshp1,phHshp2,phYshp3);
Notes:  phXshp1 (and 2 or 3) is the overall phase table for the shape.
        _pboxsim(3)pulse uses multiple shapes where the arguments are 
        obs, dec, dec2 in order.  Label the shapes with the correct 
        channel identifier X, H, Y using getpboxpulse depending on the 
        channel for which it is used. _pboxsim(3)pulse cannot accept 
        shapes on dec (identifier Z). 

cpmgX: Module:  yes (Note that _cpmg is replaced by specific code to 
                     run CPMG with a shaped pulse). 
Sequence:  qcpmg1d.c
Description:  Implements CPMG on obs with acquisition the windows and
              during a first echo before the CPMG.
Parameters:  Sequence Page
       aXcpmg - amplitude of obs pulses.
       pwXcpmg - nominal 180-degree flip on obs.
       r1Xcpmg - prepulse delay (similar to rof1).
       r2Xcpmg - postpulse delay (similar to rd or rof2).
       r3Xcpmg - T/R-to-rcvron delay (must equal rof3 or 2.0 us if rof3
              is not defined.
       tauXcpmg - time for one "one-tau" window and pulse.
       edXcpmg - number of 100 ns ticks in the detection window.
       chXcpmg = 'obs' must be set (not shown).
Implementation:  WMPA cpmg = getcpmg("cpmgX");
Underscore function: _cpmg(cpmg,phXcpmg);  phXcpmg is the overall phase
              table.

Hseq:  Module:  yes 
Sequence:  tancpx.c      
Description:  Chooses SPINAL or TPPM decoupling on the dec channel
              during acquisition.  
Parameters:  Sequence Page - Hspinal and Htppm groups overlap. 
       Hseq - chooses the decoupling sequence, TPPM or SPINAL. 
Implementation:  DSEQ dec = getdseq("H");  The router implements 
              getspinal() or gettppm(). 
Underscore functions: _dseqon(dec); runs _tppm(); or _spinal();
              _dseqoff(dec); runs decprgoff();  

Hspinal:  Module:  yes 
Sequence:  tancpx.c  
Description:  Implements SPINAL decoupling on the dec channel during 
              acquisition.  
Parameters:  Sequence Page
       aHspinal - amplitude of the dec channel. 
       pwHspinal - approximate 180-degree flip angle on resonance. 
       phHspinal - +/- small angle phase. SPINAL64 is implemented 
              with phases = +/- 1.0, +/- 1.5 and +/-2.0 times phHspinal. 
       chHspinal = 'dec' must be set (not shown).
Implementation: SPINAL dec = getspinal("H"); or DSEQ dec = 
              getdseq("H");  
Underscore functions: _spinal(dec); and decprgoff(); or _dseqon(dec);
              and _dseqoff(dec);   

Htppm:  Module:  yes 
Sequence:  tancpx.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");
Underscore functions: _tppmon(dec); and decprgoff(); or _dseqon(dec);
              and _dseqoff(dec);


