
ADDITIONAL INSTALLATION INSTRUCTIONS
====================================

 1. All sequences must be compiled before they are run. To compile an
    individual sequence in VnmrJ type "seqgen('seqname')" on the command
    line, where "seqname" is the root name of the desired sequence
    (without .c). To compile all sequences open a terminal and type:
        cd ~/vnmrsys/psglib
	seqgen *.c
    Note that some sequences are written explicitly for three channels and
    will not run on a two-channel VNMRS. A three-channel sequence will compile
    on a two-channel VNMRS but it will abort on "go" with the error
        "no controller mapped at RF index #" where "#" might be "3" or "4".
    There would never be a reason to run these sequences on a two-channel
    system.
    Note that all sequences are written to blank the third or fourth channel
    during acquisition if it exists and only if "numrfch" > 2. The blanking is
    carried out with the instructions "_blank34()" and "_unblank34()". These
    are special "Solids" instructions and are defined in "solidstandard.h"
    The special instructions are used to avoid the controller error above.
 1. COMMENT: A recent SolidsPack installation automatically compiles sequences. 

 2. For VNMRJ2.1B and VNMRJ1.1D, replace the standard Experiment Selector with 
    the Solids Experiment Selector. Copy the Solids protocols into the directory
    "/vnmr/templates/vnmrj": log in as administrator (vnmr1), then type
	cd /vnmr/adm/users
	mv protocolListWalkup.xml protocolListWalkup.xml.liquids
	cp -r ~solidsuser/vnmrsys/adm/users/protocolListWalkup.xml .
    and
	cd /vnmr/templates/vnmrj
	mv protocols protocols.liquids
	cp -r ~solidsuser/vnmrsys/templates/vnmrj/protocols .
    "solidsuser" above represents the name of your Solids user. The above
    operation will have to be repeated whenever a new version of VnmrJ is
    installed.
 2. This procedure is not necessary or VNMRJ2.2C, VNMRJ 2.2D and later versions. 

 3. On Sun Computers one can gain access to the Sun text editor "dtpad": log
    in as administrator (vnmr1) and type
        cd /vnmr/bin
	cp -r ~solidsuser/bin/vnmr_dtpad .
    "solidsuser" above represents the name of your Solids user. Then login
    to the Solids user and type:
        dtpad .login
    Replace "setenv vnmreditor vi" with "setenv vnmreditor dtpad" and save
    the file. Logout and then log into the Solids user to make the change
    take effect.

 4. It is recommended (but not required) that one designate the Solids user as
    "Walkup". This designation will provide access to the Experiment Selector.
    To do this, log in as administrator (vnmr1) open a terminal and type:
        vnmrj adm
    The administration panel will appear. In the upper left quadrant select
    the user with the mouse and in the upper right quadrant select the
    "Walkup" checkbox. Press "Save User" in the upper left quadrant. Select
    "exit" to quit the administration panel.
 4. COMMENT: Use the Experimental Interface for VNMRJ1.1D. 

 5. The VNMRS uses the parameters "probeConnect" and "preAmpConfig" to assign
    the correct hardware channel to a pulse sequence function. These
    parameters must be created in the user to do solids. Login to the user
    that will do solids and type:
       	create('probeConnect','string','global')
       	create('preAmpConfig','string','global')
    These two parameters can be read on the "Channels" page of pulse
    sequences. See the discussion below for how to set them.
 5. COMMENT: See Steps 12 and 13 below related to INOVA.  

 6. On a VNMRS that does both Liquids and Solids, each channel with a high
    power ("kiloWatt") amplifier will contain a relay to switch between Solids
    and Liquids mode. If you determine that relays are present, the parameter
    "hipwrampenable" must be created. Otherwise the system will default to low
    power, liquids mode.

    To create "hipwrampenable" login to the Solids user and type:
        create('hipwrampenable','string','global')
    See the discussion below for a procedure to set this parameter.

 7. For VNMRS with VNMRJ2.1B and above a probe file must be created to do Solids MAS.
    The probe file is used to load calibrations when one invokes the Settancpx
    protocol. Also the probe file is used to set the "spintype" and "spinmax". 
    These parameters set the correct controller for MAS spinning and the correct
    air source for VT on the Pneumatics Router.

    For T3 probes, the probe file must have the same name as that supplied by
    the MAS speed controller, with underscores to fill the spaces, for example
    "3.2_MM_NB". If you successfully connect the MAS spin-speed controller you
    will find the probe name (without underscores) in the upper left of the
    "Solids Spin/Temp" window.

    To create a probe file, press the "Probe" button on the bottom panel and
    press "Edit Probe". Type the correct probe name with underscores for
    spaces and press "Add Probe". Open the "Probe" item of the menu and for a
    T3 probe set "spintype='mas'" and "spinmax=(the max speed of the probe)",
    say 18000 for a 4 mm probe.

    It is also a good idea to set a dummy probe file with "spintype='liquids'"
    so that you can make a trial switch back and forth from Liquids to
    Solids.

    To change from liquids to solids select the probe from the menu and type
    "su". You may need to press "Pneumatics Reset" in the "Spin/Temp" window to
    proceed with the "su". Note that the LED's on the pneumatics router will
    change when you switch. Note that creating the probe does not
    automatically set it as the default probe. You must actually press on the
    menu bar to set the probe after it has been created.

    NOTE: The VT gas for liquids is controlled with a slider on the Liquids
    Spin/Temp panel. The VT gas for solids is controlled manually with the
    valve. Be sure that the liquids VT gas is "off" before switching to
    Solids. If the liquids is not turned off air will flow through both
    sources in parallel.

    NOTE: The "Upper Barrel Status" DB24 connector on the Pneumatics Router
    should connect to the Solids Upper Stack for Narrowbore magnets. A
    shorting plug is available for widebore magnets. For liquids it connects
    to the liquids upper barrel. If the plug is not connected, the VT
    controller will not set itself. A red fault light will be present on the
    controller in the back of the console. The VT controller will also fault
    if no "Probe" body air (left most flow meter) is present.

 7. COMMENT: INOVA consoles with VNMRJ2.1B and earlier software use ACC for 
    spinning and a different VT setup. See separate instructions for these 
    consoles.  INOVA consoles with VNMRJ2.2D use the probe file for Spinning
    and these instructions apply. Instructions for VT may be different. 
    SolidsPack accesses the probe file for calibrations for all versions of
    VNMRS on INOVA. 

 8. The parameter "vtc" controls the output port of the VT (High or Low).  Low
    temperature goes through a gas pre-conditioning unit. High temp goes
    directly to the stack. The default "vtc" is set by the Settancpx protocol.
    To change the default, on the command line type:
        rtp(~/vnmrsys/parlib/Settancpx.par')
        vtc = new value
        svp(userdir+'/parlib/Settancpx.par')
    The default is returned each time one invokes "Settancpx".

    Be careful - "vtc" is saved with the data set so if you rerun old data
    sets be aware of the value.

    NOTE: The default for "vtc" in the solids software is -100C. With this
    setting gas will always come out the high temperature port and one can not
    do low temperature VT. If you wish to do low temperature you have two
    options:
      - Set "vtc" to +100 or another large value. In this case air will always
	come out of the low temperature port. In this case a cooling
	preconditioner should be placed on the low temperature line. The
	conditioner would be used for any temperature up to +100.
      - Set "vtc" to a realistic number (say +30). In this case the
	preconditioner would be used only for temperatures below 30.
    An audible "click" or "sshh" will sound when the air switches. Listen to
    recognize the sound.

 9. To save calibrations into the probe file. Recall a calibrated dataset for
    which "tpwr", "aX90", "pwX90", "dpwr", "aY90", "pwY90", ... are set
    correctly. On the "Channels" page press "Set" in the column of each
    nucleus you wish to save.

10. To tune a probe for the first time connect the cables properly and set
    "probeConnect" and "preAmpConfig" to the correct nuclei. Press "Probe" and
    then press "Tune Sweep". The "mtune" display will appear. For each channel
    1, 2, 3, ... set the nucleus with the value from the corresponding
    placeholder in "probeConnect". Note that if the desired nucleus is not in
    the table, open the command line and for "1", set "tn", for "2" set "dn",
    for "3" set "dn2" and for "4" set "dn3". Press "Start Tune" to start
    tuning for each nucleus and tune the probe. When finished press "Quit
    Probe Tune". The display will return to your dataset. Note that the
    assignments for "tn", "dn", "dn2", etc. in "mtune" are not necessarily the
    same as those used in the dataset.
10. INOVA Consoles use Qtune for Tuning - see separate instructions. 

11. Data sets from Solidslib21b will "infect" the new interface with the
    parameter "rfchannel". If you plan to obtain calibrations for the dataset
    you must convert it. To setup the system with a dataset run with
    Solidslib21b:
       - Load the dataset with "rt" or from the "Open" window.
       - Press "set" for each nucleus to save the calibrations in the probe
         file.
       - Invoke "Settancpx" to standardize the parameters.
    If you really wish to run a a complex experiment from a VnmrJ 2.1B /
    Solidslib21b data file, you must type "destroy('rfchannel')" and set
    "probeConnect" correctly before proceeding.

Special Instructions that Distinguish 2.2C from 2.1B 

12. For VNMRJ2.1B only: 

    copy ~/vnmrsys/psg/solidselements21b.h to ~/vnmrsys/psg/solidselements.h. 
    copy ~/vnmrsys/templates/vnmrj/interface/SolidStateExpts21b.xml to SolidStateExpts.xml. 

13. ProbeConnect in 2.2C is systemglobal and defined in the config file.  Set the preamps 
    as high or low band in the system config tool.  It is not necessary to create 
    preAmpConfig in 2.2C .... only in 2.1B. probeConnect is created as usual (see #5 above). 

Special Instructions for INOVA

14. When SolidsPack is loaded on INOVA it MUST be loaded into a new empty user.  SolidsPack 
    not compatible with any previous SolidsLib software. Please read the Note at the top of 
    this README file (after the date). 

15. If SolidsPack is used with INOVA and VNMRJ1.1D and VNMRJ2.1B one must uncomment the 
    the definitions of startacq() and endacq() in solidelements.h. The lines should remain  
    commented for any VNMRS system for INOVA used with VNMRJ2.2D. 
===============================================================================


GENERAL PULSE SEQUENCE AND INTERFACE FUNCTIONS:
===============================================

babainad2d.c            1Q-2Q "X" correlation using BABA mixing, with TPPM or
			SPINAL decoupling.
babadpinad2d.c          1Q-2Q "X" correlation using BABA preparation and mixing,
                        with TPPM or SPINAL decoupling.
br24.c                  "X" acquisition with interleaved BR24. Non-quadrature
			phase cycle.
br24q.c                 "X" acquisition with interleaved BR24. Quadrature
			phase cycle.
c7inad2d.c              1Q-2Q correlation using C7 mixing, with TPPM or SPINAL
			decoupling.
c7inadwdumbot2d.c       A 1Q-2Q correlation using C7 on "X", DUMBO during F1
			on "X" and wDUMBOt during F2.
c7inadwpmlg2d.c         A 1Q-2Q correlation using C7 mixing on "X", PMLG
			during F1 on "X" and wPMLG during F2.
ccnc4ds.c               "XXYX" 4D chemical shift correlation with DARR Mixing. 
cpcpmg1d.c              Constant, linear or tangent-ramped CP with CPMG 
                        detection of X, with SPINAL or TPPM decoupling. 
cpinad2d.c              A "X" 2D INADEQUATE (1Q-2Q) correlation experiment
			with tangent CP preparation of "X", with TPPM or
			SPINAL decoupling. Pulses can potentially be rotor
			synchronized.
dcp2tan3drad.c          2D(3D) double CP with "Y" f1 chemical shift (CN
			correlation), with "X" RAD mixing and with TPPM or
			SPINAL decoupling.
dcptan3drad.c           2D(3D) double CP with "X" f1 chemical shift (NCO/NCA),
			with "X" RAD mixing and with TPPM or SPINAL
			decoupling.
dcptan3dspc5.c          2D(3D) double CP with "X" f1 chemical shift (NCO/NCA),
			with "X" SPC5 mixing, with TPPM or SPINAL decoupling.
decorcptan2d.c          One-pulse prep on the "Y" channel with "Y" to "X" CP
			and "X" observe, with SPINAL or TPPM decoupling.
dipshftr12dfs.c         A spin echo experiment on "X" with "H" to "X" r1235
			recoupling on "H" to measure the "H"-"X" dipolar
			interaction of quadrupole nuclei with DFS enhancement
			of the "X" signal, with TPPM or SPINAL decoupling.
dipshftsr4dfs.c         A spin echo experiment on "X" with "H" to "X" SR4 
                        recoupling on "H" to measure the "H"-"X" dipolar 
                        interaction of quadrupole nuclei with DFS 
                        enhancement of the "X" signal, with TPPM or SPINAL
                        decoupling.  
dcptan.c                Ramped "H" to "Y" and then "Y" to "X" CP (double),
			with TPPM or SPINAL decoupling.
fsredor.c               Frequency selective REDOR using selective Gaussian
			pulses on "X" and "Y" and XY8 on "Y" with two pulses
			per rotor period. Acquisition with TPPM or SPINAL
			decoupling, TPPM only during REDOR.
hahnecho1d.c            A sequence to generate a Hahn echo with SPINAL and 
                        TPPM decoupling.
hetcorlgcp2d.c          "H" to "X" HETCOR using FSLG during F1 followed by a
			Lee-Goldburg CP, with TPPM or SPINAL decoupling.
hetcorlgcp2d_1.c        "H" to "X" HETCOR using FSLG during F1 followed by a
			Lee-Goldburg CP, with TPPM or SPINAL decoupling. Allows 
                        offset on F1 FSLG.
hetcorlgcp2dxyr.c       "H" to "X" and "Y" HETCOR using FSLG during F1
                        followed by a Lee-Goldburg CP, with acquisition on
			obs and dec with TPPM or SPINAL decoupling.
hetcorsamlgcp2d_1.c     "H" to "X" HETCOR using SAMn during F1 followed by a
			Lee-Goldburg CP, with TPPM or SPINAL decoupling. Allows 
                        offset on F1 SAMn.
hetcortancp2d.c         "H" to "X" HETCOR using FSLG during F1 followed by a
			ramped CP, with TPPM or SPINAL decoupling.
hssmall.c               "X" HS90 with small angle adjustements on the X and Y pulses
                        for measurement of small angle phase differences.
hxidmissct2ds.c         "H" to "X" correlation with "H" detection using MISS 
                        (Multiple Intense Solvent Suppression), constant time
                        with "X" decoupling. 
hxr1817ct2ds.c          Constant time "HX" correlation using R1817 on "H" with 
                        MPSEQ SPINAL and TPPM Decoupling.
hxtm5ct2ds.c            Constant time "HX" correlation using Transverse MREV8 (5) 
                        on "H" with MPSEQ SPINAL and TPPM Decoupling.
ineptxyonepul.c         One-pulse preparation of "Y" with INEPT transfer to
			"X" and observe, with SPINAL or TPPM decoupling.
			Separate SPINAL and TPPM decoupling are allowed during
			INEPT transfer.
ineptxyrefonepul.c      Refocussed one-pulse preparation of "Y" with INEPT
			transfer to "X" and observe, with SPINAL or TPPM
			decoupling. Separate SPINAL and TPPM decoupling are
			allowed during INEPT transfer.
ineptxyreftancp.c       Refocussed CP preparation of "Y" with INEPT transfer
			to "X" and observe, with SPINAL or TPPM decoupling.
			Separate SPINAL and TPPM decoupling are allowed during
			INEPT transfer.
ineptxytancp.c          CP preparation of "Y" with INEPT transfer to "X" and
			observe, with SPINAL or TPPM decoupling. Separate
			SPINAL and TPPM decoupling are allowed during INEPT
			transfer.
lgcp.c			"X" Lee-Goldburg CP, with TPPM or SPINAL decoupling.
lgcp2d.c	        "HX" Lee-Goldburg CP, with TPPM or SPINAL decoupling using 
                        a contact time d2 for a 2D transform. 
lgfmcp2d.c              A sequence to provide selective CP using an off-resonance
                        Lee-Goldburg spinlock on "H" and a sinusoidal 
                        frequency modulated spinlock on "X".
masapt1d.c              An "X" attached proton ("H") test using FSLG
			homonuclear decoupling on "H", tangent CP preparation
			of "X", with TPPM or SPINAL decoupling.
mashmqc2d.c             "H" to "X" J-HMQC with FSLG homonuclear decoupling of
			"H", tangent CP preparation of "X", with TPPM or
			SPINAL decoupling.
mashsqc2d.c             "H" to "X" J-HSQC with FSLG homonuclear decoupling of
			"H" and tangent CP preparation of "X", with TPPM or
			SPINAL decoupling.
mqmas3q2d.c             Two-pulse MQMAS with a 3Q phase cycle, with SPINAL or
			TPPM decoupling.
mqmas3qdfs2d.c          Two-pulse MQMAS with a 3Q phase cycle, a DFS second
			pulse, with SPINAL or TPPM decoupling.
mqmas3qdfsspltse2d.c    Two-pulse MQMAS with a 3Q phase cycle, a DFS second
			pulse, a split-T1 and a selective echo, with SPINAL or
			TPPM decoupling.
mqmas3qdfs2spltse2d.c   Two-pulse MQMAS with a 3Q phase cycle, with DFS prep,
                        a DFS second pulse, a split-T1 and a selective echo, with
                        SPINAL or TPPM decoupling.
mqmas3qdfszf2d.c        Z-filtered MQMAS with a 3Q phase cycle, a DFS second
			pulse, with SPINAL or TPPM decoupling.
mqmas3qfam2spltse2d.c   Two-pulse MQMAS with a 3Q phase cycle, a FAM2 second
			pulse, a split-T1 and a selective echo, with SPINAL or
			TPPM
                        decoupling.
mqmas3qfamspltse2d.c    Two-pulse MQMAS with a 3Q phase cycle, a FAM second
			pulse, a split-T1 and a selective echo, with SPINAL or
			TPPM decoupling.
mqmas3qse2d.c           Two-pulse MQMAS with a 3Q phase cycle, a selective
			echo, with SPINAL or TPPM decoupling.
mqmas3qspltse2d.c       Two-pulse MQMAS with a 3Q phase cycle, split t1, a
			selective echo, with SPINAL or TPPM decoupling.
mqmas3qzf2d.c           Z-filtered MQMAS with a 3Q phase cycle, with SPINAL or
			TPPM decoupling.
mqmas5qzf2d.c           Z-filtered MQMAS with a 5Q phase cycle, with SPINAL or
			TPPM decoupling.
mqmas7qzf2d.c           Z-filtered MQMAS with a 7Q phase cycle, with SPINAL or
			TPPM decoupling.
mqmas9qzf2d.c           Z-filtered MQMAS with a 9Q phase cycle, with SPINAL or
			TPPM decoupling.
mrev8.c                 "X" acquisition with interleaved MREV8. Nonquadrature
			phase cycle.
mrev8q.c                "X" acquisition with interleaved MREV8. Quadrature
			phase cycle.
nccdqm3ds.c             A sequence for 3D chemical shift correlation. Reinstra 
                        et al JACS (2000) 122, 10979-10990.
onepul.c		One-pulse preparation, with SPINAL or TPPM decoupling.
onepuldfs.c             A onepulse experiment on "X" with a double frequency
			sweep preparation pulse for enhancement of sensitivity
			through population transfer, with SPINAL and TPPM
			decoupling.
onepulsfs.c             A onepulse experiment on "X" with a single frequency
			sweep preparation pulse for enhancement of sensitivity
			through population transfer, with SPINAL and TPPM
			decoupling.
onepulmdfs.c            A onepulse experiment on "X" with a multiple double 
                        frequency sweep preparation pulse for enhancement of 
                        sensitivity through population transfer, with SPINAL 
                        and TPPM decoupling.
onepuldpth.c            Direct polarization of "X" with a DEPTH background
			filter. with TPPM or SPINAL decoupling
onepulhs.c              A sequence to do direct polarization with TPPM and SPINAL
                        decoupling following enhancement with a hyperbolic secant
                        inversion pulse.
onepuls.c               One-pulse preparation, with SPINAL or TPPM decoupling, using 
                        the spnlH module. 
onepult1rho.c           Single pulse "X" preparation and spinlock with a choice
                        of SPINAL64 or TPPM decoupling.
onepultoss.c            "X" sideband suppression using 4-pulse TOSS one-pulse
			preparation, with TPPM or SPINAL decoupling.
onepulxyr.c		One-pulse preparation of "X" and "Y" with acquisition on
                        obs and dec, with SPINAL or TPPM decoupling.
pboxonepul.c            A test sequence for pbox shapes with SPINAL and TPPM 
                        decoupling (not for NMR). 
phtran.c                Output a phase detected pulse through the directional
			couplers for phase transient measurement.
pisema2d.c              A sequence to correlate "X" chemical shift with the
			X-H dipolar interaction in the rotating frame.
pisematest1.c           A sequence to provide a test of the phase alternating 
                        X spinlock for PISEMA, with CW H decoupling during the 
                        spinlock and with SPINAL or TPPM decoupling. 
pisematest2.c           A sequence to provide a test of an FSLG spinlock
                        for PISEMA, with CW X decoupling during the spinlock    
                        and with SPINAL or TPPM decoupling. 
presto1cp.c             A selective "X" to "H" CP using PRESTO1, R1825 on "H",
			with SPINAL or TPPM decoupling.
presto2cp.c             A selective "X" to "H" CP using PRESTO2, R1825 on "H",
			with SPINAL or TPPM decoupling.
presto3cp.c             A selective "X" to "H" CP using PRESTO3, R1825 on "H",
			with SPINAL or TPPM decoupling.
qcpmg1d.c               A two-pulse solid or "quadrupole" echo with CPMG
			interleaved acquisition and a choice of SPINAL64 or
			TPPM decoupling.
r14inad2d.c             1Q-2Q "X" correlation using R14 mixing, with TPPM or
			SPINAL decoupling.
r2inv1d.c               A selective inversion on "X" using a hard 90 and a
			soft 180 after a ramped CP preparation, a
			rotor-synchronized mixing period and an "X" detection
			pulse, with TPPM or SPINAL decoupling, separate TPPM
			or SPINAL decoupling levels during mixing and
			acquisition.
r2inv1ds.c              A sequence to do rotational resonance using a selective
                        inversion with MPSEQ TPPM or SPINAL decoupling.
redor1onepul.c          REDOR with alternating pi pulses on the "X" and "Y"
			channels with one-pulse preparation, with TPPM or
			SPINAL decoupling.
redor1tancp.c           REDOR with alternating pi pulses on the "X" and "Y"
			channels with one-pulse preparation, with TPPM or
			SPINAL decoupling.
redor2onepul.c          REDOR with pi pulses on the Y channel and a single
			refocusing pulse on the X channel, with ramped CP
			preparation, with TPPM or SPINAL decoupling.
redor2tancp.c           REDOR with pi pulses on the "Y" channel and a single
			refocusing pulse on the "X" channel, with ramped CP
			preparation, with TPPM or SPINAL decoupling.
repdfs.c                A repetitive onepulse experiment on "X" with a double
			frequency sweep preparation pulse for enhancement of
			sensitivity through population transfer, with SPINAL
			and TPPM decoupling. Obtains additional s/n on
			subsequent slices because DFS does not saturate the
			satellite transitions.
rocsa2d.c               A 1Q-1Q 2D Experiment to correlate CH dipole with 
                        recoupled CSA, through crosspeak intensities with 
                        SPINAL and TPPM decoupling. 
sammy2d.c               A sequence to provide correlation between the chemical-shift 
                        and 1H-dipolar interaction using a pair of magic sandwich 
                        spinlocks (SAMMY), with SPINAL and TPPM decoupling.  
seac71d.c               A sequence to provide X frequency selective longitudinal 
                        homonuclear recoupling using shifted evolution enhanced 
                        C7, SEAC7, with SPINAL and TPPM decoupling. 
shapedtwopul1d.c        A sequence to do direct polarization with a shaped 
                        pulse from PBox on X, allowing a second pre inversion 
                        pulse and with TPPM and SPINAL decoupling.
spc5inad2d.c            1Q-2Q "X" correlation using SPC5 mixing, with TPPM or
			SPINAL decoupling.
ssecho1d.c              A two-pulse spin echo sequence with a 0,90 phase cycle
			for quadrupole nuclei such as 2H, with SPINAL or TPPM
			decoupling.
stmas2d.c		Two-pulse STMAS, with SPINAL or TPPM decoupling.
stmasdqfse2d.c          Four-pulse STMAS with a selective echo and a double
			quantum filter, with SPINAL or TPPM decoupling.
stmasdqfspltse2d.c      Four-pulse STMAS with a selective echo, a double
			quantum filter and a split T1, with SPINAL or TPPM
			decoupling.
stmasse2d1.c            Three-pulse STMAS with a selective echo, with SPINAL
			or TPPM decoupling.
stmasse2d2.c            Three-pulse STMAS with a selective echo and a phase
			cycle to provide a triple quantum filter, with SPINAL
			or TPPM decoupling.
stmasspltse2d1.c        Three-pulse STMAS with a selective echo and a split
			T1, with SPINAL or TPPM decoupling.
stmasspltse2d2.c        Three-pulse STMAS with a selective echo and a split T1
			and a phase cycle to provide a triple quantum filter,
			with SPINAL or TPPM decoupling.
stmaszf2d.c             Two-pulse STMAS with a Z-filter, with SPINAL or TPPM
			decoupling.
swwhh4.c                "X" acquisition with interleaved semi-windowless
			WaHuHa. non-quadrature phase cycle.
tancp2drad.c            "X" 2D with constant, linear or tangent CP
			preparation, with "X" RAD mixing, with TPPM or SPINAL
			decoupling.
tancp2dspc5.c           "X" 2D with constant, linear or tangent CP
			preparation, with "X" SPC5 mixing, with TPPM or SPINAL
			decoupling.
tancpechocpmg1d.c       Constant, linear or tangent-ramped Cross Polarization
			(CP) between "H" and "X" followed by a Hahn echo with
			CPMG interleaved acquisition and a choice of SPINAL64
			or TPPM decoupling.
tancpht1.c              "H" T1 measurement with constant, linear or tangent CP
			preparation, with TPPM or SPINAL decoupling.
tancpht1rho.c           "H" T1rho measurement with constant, linear or tangent
			(ramped) CP, with TPPM or SPINAL decoupling.
tancpxblew.c            "X" constant, linear or tangent (ramped) CP, with TPPM
			or BLEW24 decoupling.
tancpx.c                "X" constant, linear or tangent (ramped) CP, with TPPM
			or SPINAL decoupling.
tancpxdumbo.c           "X" constant, linear or  tangent CP preparation with
			DUMBO decoupling during acquisition.
tancpxecho.c            "X" Solid echo with constant, linear or  tangent CP
			preparation, with TPPM or SPINAL decoupling.
tancpxflip.c            "X" 90-degree pulse measurement with constant, linear
			or tangent (ramped) CP, with TPPM or SPINAL
			decoupling.
tancpxfslg.c            "X" constant, linear or tangent CP preparation with
			FSLG decoupling during acquisition.
tancpxhahnecho.c        "X" Hahn echo with constant, linear or  tangent CP
			preparation, with TPPM or SPINAL decoupling.
tancpxidref.c           "X" interrupted decoupling with constant, linear or
			tangent (ramped) CP, with TPPM or SPINAL decoupling.
tancpxpips.c            "X" constant, linear or tangent CP preparation with
			PIPSxy decoupling during acquisition. 
tancpxpmlg.c            "X" constant, linear or tangent CP preparation with
			PMLG decoupling during acuisition. 
tancpxrefs.c            "HX" constant, linear or tangent ramped CP followed by
                        a shaped refocussing pulse, with MPSEQ TPPM or SPINAL
                        decoupling.
tancpxs.c               "X" constant, linear or tangent (ramped) CP, with TPPM
			or SPINAL decoupling - using MPSEQ spnlH instead of DSEQ. 
tancpxt1rho.c           "X" T1rho measurement with constant, linear or tangent
			(ramped) CP, with TPPM or SPINAL decoupling.
tancpxtoss.c            "X" sideband suppression using 4-pulse TOSS with
			constant, linear or tangent (ramped) CP, with TPPM or
			SPINAL decoupling.
tancpxtoss5.c            "X" sideband suppression using 5-pulse TOSS with
			constant, linear or tangent (ramped) CP, with TPPM or
			SPINAL decoupling.
tancpxyr.c              "X" and "Y" constant, linear or tangent (ramped) CP, 
                        with acquisition on obs and dec, with TPPM or SPINAL 
			decoupling.
trapdor1d.c             TRAPDOR on "X" with "H" modulation with SPINAL or 
                        TPPM decoupling.
trapdorycpx.c           TRAPDOR on H with Y modulation followed by CP to X
                        with SPINAL or TPPM decoupling.
tunerp.c		Pulse directional-coupler tuning.
twopul.c		"X" Hahn echo with one-pulse preparation.
wdumbo1d.c		A 1D acquisition on "X" with windowed DUMBO.
wdumbot1d.c             A 1D acquisition on "X" with windowed DUMBO, using
			tilt pulses around the windows, wDUMBOt.
wisetancp2d.c           2D correlation between the "X" chemical shift and the
			"H" wideline spectrum using constant, linear or
			tangent-ramped cross polarization (CP) between "H" and
			"X" with a choice of SPINAL or TPPM decoupling.
wpmlg1d.c		A 1D acquisition on "X" with windowed PMLG.
wpmlg2d.c               2D homonuclear correlation with PMLG in F1, a spin
			diffusion mixing period and quadrature windowed PMLG
			(wPMLG) for multiple-pulse acquisition in F2.
xmx.c                   "X" acquisition with interleaved, alternating X and -X
			pulses. For phase-transient measurement.
xx.c                    "X" acquisition with interleaved, alternating X and -X
			pulses. For pulse-width measurement.
xxctuc2ds.c             Constant time uniform crosspeak XX COSY. 
xxctuc1sh2d.c           Constant time uniform crosspeak XX COSY for aliphatic 
                        correlation 
			
INCLUDED HEADER FILES:
----------------------

solidstandard.h         An include file that calls header files below. 
   soliddefs.h          Structures and Definitions of Constants
   solidelements.h      Miscellaneous Programs Including getname() settablename()
   solidshapegen.h      Functions to Calculation and Run .DEC files 
   soliddecshapes.h     All Software for DSEQ, SPINAL and TPPM
   solidobjects.h       Non-waveform pulse sequence functions.
   solidmpseqs.h        "get" Functions for Multiple Pulse Sequences
   solidstates.h        Functions to Output STATE's for Shaped Pulses
   solidpulses.h        "get" Functions for Shaped Pulses
 
make_waveform.h         and various waveform include files (e.g., "dfs.h" for
			a double frequency sweep): these additional header
			files have been transferred from earlier versions of
			Solidslib to allow the use of previously written
			waveform calculations.
dfs.h and mdfs.h        Extra get functions for double frequency sweep experiments.
pboxpulse.h             Get functions that access Pbox to make shaped pulses.

PULSE-SEQUENCE PARAMETERS:
--------------------------

The sequences of this package use a new set of parameter conventions for which
parameters names are constructed automatically. Each parameter has a format:
       Prefix + Channel-Identifier + Suffix

The PREFIX identifies the purpose of the parameter. Common prefixes are:
       	a 	amplitude or "modulator" as in "tpwrm"
       	db	"scaler" or "attenuator setting" as in "tpwr"
       	pw	pulse width
       	t	delay or other pulse
       	ph	phase
       	of	offset
       	ch	channel
       	n	waveform repeat count
       	q	element repeat count
The functions of a variety other prefixes should be self evident.

The CHANNEL IDENTIFIER is the pulse-sequence channel X, H, Y, Z where:
      	X	obs
      	H	dec
      	Y	dec2
      	Z	dec3
Note that X,H,Y and Z do not necessarily correspond to the labels of probe
ports, though they often do. A user can use "probeConnect" on the "Channels"
page to direct X, H, Y and Z to the appropriate hardware probe port. Note that
"pwX90" can be a proton pulse if "tn='H'" and the channel is connected to a
proton probe port.

The SUFFIX identifies the specific pulse-sequence object to which a parameter
applies. Pulse-sequence objects are prewritten functions that simplify the
writing of sequences. Examples are "cp" (or nothing - " ") for cross
polarization, "tppm" for decoupling, or "c7" for a C7 recoupling waveform.
Parameters with similar suffixes are grouped together on the pulse sequence
page. If needed, additional parameters may be found on a page labeled "More".

Sequences also use specific standard system parameters of VnmrJ. These are:
     	Attenuation:	     tpwr, dpwr, dpwr2, dpwr3
     	Frequency:   	     sfrq, dfrq, dfrq2, dfrq3
     	Initial Offset:	     tof, dof, dof2, dof3
     	Standard Delays:     d1, d2, d3
     	Acquisition:         np, at, ni, ni2, sw, sw1, sw2, gain, rof3, ddrtc
     	MAS Rate:	     srate, hsrotor
     	Pulse Unblank Delay: rof1
and others. Values of these parameters are found on the other "Acquisition",
"Channels" and "Receiver" pages.

The receiver delay "rof1" has been replaced by "rd" and the acquisition delay
"alfa" has been replaced by "ad". For the VNMRS the minimum "ad" is 2.0 us
unless "rof3" exists and is set to a different value.

The initial amplitude of each channel is "aX90" (obs), "aH90" (dec), "aY90"
(dec2) and "aZ90" (dec3) and the calibrated pulse widths for these amplitudes
are "pwX90", "pwH90", "pwY90" and "pwZ90".

Note that these sequences do not use dm or dmm and have no "Status" elements.
During acquisition the decoupler waveform is usually set by the "dseq"
pulse-sequence object, for which one chooses TPPM or SPINAL64 from a menu.
The decoupler is "off" if the amplitude ("Htppm" or "aHspinal") is "0". The
decoupler is CW if the phase ("hHtppm" or "phHspinal") is "0".


INTERFACE CONVENTIONS FOR PULSE SEQUENCES:
------------------------------------------

Every Pulse sequence uses the following files (c.f. Onepul, single-pulse
sequence):
     	psglib/onepul.c	         sequence source code
     	maclib/onepul		 setup macro
     	templates/layout/onepul  acquisition templates directory
The pulse sequence template:
     	templates/layout/onepul/PulseSequence.xml
calls parameter groups by reference. Templates for parameter groups are
located in "templates/vnmrj/panelitems" which is a directory containing all
parameter groups. An example is:
     	templates/vnmrj/panelitems/cpHX.xml
which contains the parameter group for HX cross polarization.

"Acquisition" pages that are similar for all sequences are contained in:
     	templates/layout/solidsdefaults
The "Setup" and "Processing" pages use the defaults of VnmrJ.


INTERFACE CONVENTIONS FOR PROTOCOLS:
------------------------------------

Pulse sequences use additional "Protocol" files in the Walkup interface:
     	templates/vnmrj/protocols/Onepul.xml:
				protocol for the Experiment Selector
     	parlib/Onepul.par	parameter file called by a protocol
     	maclib/Onepul		macro to execute the protocol.
Note the uppercase first character of the Protocol, its parameter file and
macro. It is important to distinguish the upper case macro "Onepul" that
executes the protocol, from the lowercase set-up macro "onepul". Both macros
execute from the command line to convert a workspace for the desired
experiment. The protocol can also potentially get information from the probe
file and control setup, processing and plotting in the StudyQ. Both the
Experiments Menu and the Experiment Selector access the protocol. Though it
can be used on the command line, the lowercase setup macro is usually only
needed to construct the parameter file during development of the experiment.
The setup macro also sets the parameters "dg" and "ap" that control the
display of parameter values on the "dg" text screen and the plotter output.
This information is saved in the parameter file.

An optional calibration macro may be present:
     	maclib/reset_onepul	"wrtp" calibration macro run by the protocol
                                 (e.g., "reset_mashmqc2d")
The reset macro is often used to derive a complex setup (such as the
calibration of the FSLG waveform from the basic calibrations on the "Channels"
page.

Protocols run one of two "apptype" macros:
	maclib/solids1d     Used for the "Settancp" protocol to cause complete
			    replacement of parameters in a workspace and
			    access the probe file.
	maclib/solidsseq1d  Used by all other protocols to load just new
			    parameters with "rtx(file,'keep','noclear')". This
			    "apptype" does not access the probe file.
The "apptype" macro controls the exact behavior of the protocol during setup,
processing and plotting. The manner in which the apptype macros are used in
the StudyQ is controlled by the "execpars" files:
     	execpars/solids1d.xml     controls the execution of the apptype
     				  "solids1d".

     	execpars/solidsseq1d.xml  controls the execution of the apptype
     			 	  "solidsseq1d".


USE OF THE PROBE FILE IN PROTOCOLS AND PANELS:
----------------------------------------------

The "solids1d" apptype macro loads basic calibrations from the probe file with
the macro "getsolidsprobedata" which takes a string argument that can be 'tn',
'dn', 'dn2', 'dn3', or 'dn4' to get data for the obs, dec, dec2, dec3 and dec4
channels, respectively. Calibrations can be saved from the workspace with
"setsolidsprobedata", using the same arguments. The calibrations that are saved
are:
     	obs	tof, tpwr, aX90 and pwX90
     	dec	dof, dpwr, aH90 and pwH90
     	dec2	dof2, dpwr2, aY90 and pwY90
     	dec3	dof2, dpwr2, aZ90 and pwZ90
     	dec4	dof2, dpwr2, aW90 and pwW90

The "solidsseq1d" macro does not access the probe file. In usual practice one
creates a calibrated data set using the protocol "Settancpx" (using
"solids1d") and then chooses the experiment with another protocol (that calls
"solidsseq1d"). Through multiple experiments, calibrations are maintained in
the workspace. This process is called "chaining" of experiments.

One can bypass initial setup with "Settancpx" by loading a calibrated dataset.

The "Channels" page has buttons "get" and "set" for each channel. "get" uses
"getsolidsprobedata" to get calibrations from the probe file. "set" uses
"setsolidsprobedata" to save calibrations in the probe file. One would
initially set the probe file by calibrating a dataset and pressing "set" for
the desired channels.

Calibrations are saved in the probe file by nucleus and channel. The channel
numbers "1", "2", "3", "4", and "5" refer to the transmitter chain from
frequency source to probe and this hardware determines the value of
calibrations for any given nucleus for which the probe is tuned. For the
DirectDrive VNMRS calibrations are unchanged, whether they are used for
observe (obs), decoupling (dec) for for higher channel experiments (dec2, dec3
and dec4) as long as the cabling of the Front End and probe is not changed.
The channel number that the system is using for any given pulse sequence
function is provided by the "nm1" macro and this number identifies the saved
values in the probe file.

To move parameters from one function to another on the Channels page (c.f. 1H
obs to dec.) first set each group of calibrations in the probe file with
"set", switch the nuclei and then press "get" to reload the new values in the
columns with new functions.


SETTING CHANNELS FOR OBSERVE & DECOUPLING USING PROBECONNECT / PREAMPCONFIG:
----------------------------------------------------------------------------

VnmrJ 2.1B provides two new parameters, "probeConnect"and "preAmpConfig", that
are used to select the hardware channel for observe and decoupling.

"probeConnect" and "preAmpConfig" are not automatically created in a user. To
use probeConnect create them with the following two statements on the command
line.
     	create('probeConnect','string','global')
    	create('preAmpConfig','string','global')
When you tune the probe and attach a particular transmitter cable you fix the
nucleus for that channel and assign a particular transmitter to that nucleus.
VNMRS transmitters are assigned the numbers "1", "2", etc., up to the number
of channels ("nmrfch"). For all VNMRS systems these numbers correspond to
transmitters labeled from right to left in the RF card cage and the Front End
contains pairs of slots for preamps labeled from top down (up to 4 channels
can have preamps).

If "probeConnect" is not present, one is limited to two-channel experiments
using channels "1" and "2" only. For three-channel experiments "3" must be
dec2 and "4" must be dec3.

"preAmpConfig" is required if one uses "probeConnect". If "probeConnect" and
"preAmpconfig" are not present, "1" is assumed to have a highband preamp and
all other channels are assumed to be lowband - despite the hardware setup.

Note that the default configuration is widely used so creation of "probeConnect"
and "preAmpConfig" is not mandatory if they are not needed.

The parameter "probeConnect" is a string whose components are the nuclei tuned
on each channel ("1" to numrfch") separated by spaces. An example is:
     	probeConnect = 'H1 C13 F19 N15'
for a four channel spectrometer. When one sets a nucleus as "tn", "dn", "dn2"
etc., the system automatically sets the proper channel based on the
information in "probeConnect". For example if "tn='C13'", "dn='H1'" and
"dn2='N15'" then the channels would be "2" for obs, "1" for dec and "4" for
dec2.

The parameter "probeConnect" must have as many entries as hardware channels and
no two nuclei can be the same. The nucleus assigned to a hardware channel must
be within it's range. Most VNMR Systems are cabled so that the "1" is highband
and "2" is lowband. For three-channel systems "3" can be either highband or
lowband. For four-channel systems with two highband channels, "3" is always
highband. Within the previous constraint, "4" can be highband or lowband.

The macro "nm1" can be used to determine the channel assigned to a given
nucleus in "probeConnect". The input is a string which can be 'tn', 'dn',
'dn2', etc., to indicate obs, dec, dec2, etc.; the output is the numeric
channel number. "nm1" provides the labels in the upper right corner of each
group on the "Channels" page.

The parameter "preAmpConfig" is a string whose components are "H", "L" or "X"
with no spaces. An example is:
     	preAmpConfig = 'HLXL'
for a four channel spectrometer. Here "1" has a highband preamp, "2" has a
lowband preamp, "3" has no preamp and "4" has a lowband preamp. "preAmpConfig"
is fixed by the Front End configuration and determines whether a channel can
be an observe channel.


SELECTING THE EXPERIMENT USING A PULL-DOWN MENU:
------------------------------------------------

Experiments are selected from the "Experiment" Pull-Down menu in the
"Experimental" apptype. The contents of the menu are saved in:
     	templates/vnmrj/interface
The primary file is "solidStateExperiments.xml" and this file calls several
different submenu XML files.


SELECTING THE EXPERIMENT USING THE EXPERIMENT SELECTOR:
-------------------------------------------------------

Experiments are selected from the "Experiment Selector" in the Walkup
interface. The contents of the Experiment Selector are defined in:
    	/vnmr/adm/users/protocolListWalkup.xml
and any protocol to be displayed must be added to:
   	/vnmr/templates/vnmrj/protocols
Note the setup procedure above for transferring protocols from the user to
"/vnmr".


PULSE-SEQUENCE CONVENTIONS:
---------------------------

Every sequence is compiled with "psg/solidstandard.h" which defines a variety
of prewritten waveforms, i.e. "Pulse-sequence Objects". Some sequences may
have additional include files (called via "#include" line).


BLANKING AND UNBLANKING CONVENTIONS:
------------------------------------

Every pulse sequence unblanks all channels throughout the run, except for obs,
and dec2 during acquisition. It is recommended that all these sequences be
run in "noblank mode". In this mode the NMR System will not blank at any time
other than when explicitly designated during the sequence. This mode is the
same as the default for InfinityPlus. The "default" mode for the NMR System is
similar to UNITY INOVA where blanking is the default between experiments. A
separate applications note can be obtained with the procedure to set "noblank"
mode.

Note that pulse sequence source is written by placing simultaneous similar
elements on the same lines. The NMR System has no hidden delays - so the
ordering of statements that do not explicitly contain time is not
significant.

Note that the pulse sequence source is written to preset phase and amplitude
if possible. The rise time for any event on the NMR system is 50-100 ns. We
avoid the situation for which an attribute (phase, amplitude etc.) is set
during the pulse rise time.

The parameter "rof1" (amplifier unblank time) is not used in most sequences
because the amplifiers are always unblanked. For pulses that are interleaved
with acquisition (where amplifier blanking is necessary) the prefix for "rof1"
is "r1" and the prefix for "rof2" is "r2".

The dead time is made up of a receiver delay ("rd") and an acquisition delay
("ad") similar to Spinsight on the InfinityPlus. Note that because the
receiver is digital "ad" does not depend upon the filter bandwidth (i.e.
spectral width). For "ad" a value of 4 us is acceptable in every experiment.
Change "rd" to avoid probe ring down. The value of "ddrtc" is a user
controllable digital filter time delay. Set "ddrtc=rd+ad" to obtain spectra
with no first order phase correction.

"ddrtc" can correct the phase for all spectra up to 1.25 MHz. For larger
spectral widths use back prediction and "lsfid=-N" (for "N" points) to phase
these spectra. "ddrtc" may cause baseline roll for spectra above 100 kHz. Use
linear prediction to remove this roll.


KNOWN PROBLEMS:  none

Please see the list of Corrected Bugs and changes in SolidsPackChanges. 
---------------

BUG REPORTS are encouraged and should be sent directly by e-mail to
	dave.rice@varianinc.com
A standard bug report format is appreciated - you may want to use the standard
bug report form at
	http://www.varianinc.com/cgi-bin/nmr/mktg/bugvnmr.cgi
Make sure you specify "USERLIB: psglib/SolidsPack" as keyword.

===============================================================================
