print

Grasp

Overview

"GRASP" is a MatlabTM script application designed for the graphical inspection, analysis and reduction of multi-detector data produced by the Small-Angle Neutron Scattering (SANS) instruments of the Institut Laue-Langevin (ILL).
GRASP deals with many of the diverse requirements for analysis and reduction of SANS data using a general set of tools and reduction algorithms.
Data loaders for the ILL SANS instruments, D11, D22 and D33, as well as SANS instruments at other neutron sources, are included in the GRASP package.
The architecture and coding of GRASP is continously developed with the aim to provide a general access to multi-detector and complex data set handling using the matrix handling abilities, graphics and other advantages of the Matlab™ environment.
The drive for producing such a suite of software came from the overwhelming need for a modern, complete and general-purpose package to deal with typical procedures required to reduce and analyse two-dimensional SANS multidetector data.
By it’s very nature, two-dimensional data is often best appreciated in a graphical form. The birth of GRASP came from the need for graphical inspection and quick processing and extraction of the scattered intensity, I(q), as a function of position on the multidetector (qx,qy) or as a function of sample environment conditions from a series of many measurement runs (e.g. temperature sweep, rocking curve etc.).

  • Modern, GUI oriented software suite
  • Powerful graphical data display
  • Emphasis on 2D multidetector data (anisotropic analysis)
  • Easy background and calibration corrections to data
  • Easy analysis and re-grouping of run number sequences for measurements with varying sample environment conditions. e.g. rocking curves, temperature scans, TOF and kinetic measurements
  • 1D and 2D Graphical Export (eps, jpg, bmp, etc.)
  • 1D and 2D Data Export (ASCII, NeXus)

GRASP is developing daily, responding to the needs, requests and bug-fixes noted by the growing number of SANS experimentalists who are using this SANS data reduction software.
Comments and suggestions for improvement are always welcome and should be e-mailed directly to dewhurst(at)ill.eu .
Having said this, as a disclaimer, it should be stated that it is not impossible that bugs and quirks may appear during operation of this software. I am confident at this stage, however, that any mathematical operations performed on data sets during reduction are correct with a corresponding accuracy in the propagation of experimental errors associated with each data set.
You ‘the user’ are instrumental in the continued development of GRASP by reporting bugs or suggestions for improvement. You are also encouraged to actively participate in the development of GRASansP to your specific needs. ‘User modules’ to tailor GRASP can be easily and almost seamlessly integrated into the general GRASP interface without modification of main code.

  • Current Version:  10.24f
  • Version Date:  09-04-2024
  • Development Environment:  MatlabTM (R2021b)
  • Supported Platforms (runtime version):  PC Windows, Linux, MacOS (Intex x86), MacOS (ARM 64)
  • Supported Instrument Data: ILL: D11, D22, D22 SAXS, D33, SAM, D16, XtremeD, T13A, T13C, SONX;    PSI SINQ: SANS I and SANSII;    NIST: NG7 and NG3;  ORNL: CG2, FRM2: SANS1, KWS1, KWS2, KWS3;  ANSTO:   Quokka

"GRASP" Runtime Version

  • Stand-alone
  • No license required
  • FREE

Download according to your OS:

 

Latest Version:  Grasp_Variant V10 (2024)

GUI elements of GRASP have been substantially modernised in a move away from the old Matlab 'guide' window handler to the new Matlab 'app designer' window handler.  Graphic behaviour my be sligtly different than in previous version

 

Windows64bit_compiledR2021b (54MB)

 

Linux64bit_compiledR2021b (100MB)

[Note: Unzip the archive.  In a command terminal navigate to the grasp_linux_compiled directory and run the 'go_grasp.sh' script by typing './go_grasp.sh' in the command terminal.
If problems, then please verify the path of the installed Matlab MCR runtime libraries in the go_grasp.sh script]

 

Macintosh Intel x86 64bit_compiledR2021b (94MB)

Macintosh ARM 64bit_compiledR2023b (185MB)

[Note: Mount the DMG file. In a command terminal navigate to /Volumes/grasp_mac_compiled/ and run the 'go_grasp.sh' script by typing './go_grasp.sh' in the command terminal.
If problems, then please verify the path of the installed Matlab MCR runtime libraries in the go_grasp.sh script]

Important:  Macintosh security - It is becoming increasingly difficult to launch non Apple verified code on Macs, depending on the version of Mac OS.  In some cases it is enough to try to open Grasp via double clicking the icon (which doesn't run Grasp correctly as it needs to be run from a terminal via the go_grasp.sh script) but allows a security exception.  Then run grasp from a Terminal using the './go_grasp.sh' script.

For Mac OS Sonoma running on Apple Silicon M2 processor you should mount the DMG of the Grasp package then copy the contents into another (writeable) folder, e.g. /Desktop/Grasp.  Run the './go_grasp.sh' script from this folder which now includes the statement 'xattr -cr grasp.app' to change the Grasp file attributes to allow Grasp to run from this unauthorsied developer (me).  Hope this works all you Mac users.

 

 

NOTE:

You must download the Free MatlabTM Component Runtime Libraries ('MRCInstaller') in order to execute the compiled Grasp code.

 

MCRInstaller (Windows) - R2021b 64Bit (3.6 GB)

MCRInstaller (Linux) - R2021b 64Bit (3.7 GB)
 

MCRInstaller (Mac Intel x86) - R2021b 64Bit (1.7 GB)

MCRInstaller (Mac ARM 64) - R2023b 64Bit (2.0 GB)

 

Previous Version:  Grasp_Lockdown V9 (2020)

Windows64bit_compiledR2019b (3.7MB)

Linux64bit_compiledR2019b (8.5MB)

[Note: Unzip the archive.  In a command terminal navigate to the grasp_linux_compiled directory and run the 'go_grasp.sh' script by typing './go_grasp.sh' in the command terminal.
If problems, then please verify the path of the installed Matlab MCR runtime libraries in the go_grasp.sh script]

Macintosh64bit_compiledR2019b (6.4MB)

[Note: Mount the DMG file. In a command terminal navigate to /Volumes/grasp_mac_compiled/ and run the 'go_grasp.sh' script by typing './go_grasp.sh' in the command terminal.
If problems, then please verify the path of the installed Matlab MCR runtime libraries in the go_grasp.sh script]

NOTE:

You must download the Free MatlabTM Component Runtime Libraries ('MRCInstaller') in order to execute the compiled Grasp code.

MCRInstaller (Windows) - R2019b 64Bit
MCRInstaller (Linux) - R2019b 64Bit
MCRInstaller (Mac) - R2019b 64Bit

"GRASP" MATLAB-Code Version

  • Platform independent code
  • User configurable
  • MatlabTM Command Line interface and data access
  • Build User Modules and routines to interact with the main GRASP interface
  • Add custom Fit Functions
  • REQUIRES MATLABTM

 

Latest Version:  Grasp_Variant V10 (2024)

m-Code.zip 

 

Previous Version:  Grasp_Lockdown V9.31 (26 October 2021)

m-Code.zip

 

Visit www.mathworks.com for MatlabTM information

"GRASP" Manual, Version (Apr 2003)

e.g. D11: Stellbrink 9-11-1995

Aims

  • Combination of measurements at several q-ranges (detector distances) and instrument settings.
  • Absolute calibration of scattered intensity - Normalisation to direct beam
  • 2D inspection of data
  • 1D I vs Q scattering curve

Experiment Overview

  • Instrument D11 (2021) with new main and side panel detectors
  • Detector distances of: 28 m, 8 m, 2 m
  • Collimation distances of: 28 m, 8 m and 4 m
  • Wavelength:  6 Å
  • q-ranges:  3 x 10-3 Å-1 to 0.34 Å-1,   9 x 10-3 Å-1 to 0.12 Å-1,   0.034 Å-1 to 0.48 Å-1

Scattering Measurements

Scattering

SampleEmpty Cell (or Cell + Buffer)

Blocked Beam

2 m

# 28160# 28090

# 28086

8 m

# 28130# 28073# 28070

28 m

# 28115# 28056 > 28058# 28062

    Transmission & Beam Intensity Measurements

    Transmission

    SampleEmpty Cell (or Cell + Buffer)

    Direct Beam

    2 m

    --

    # 28084

    8 m

    # 28145# 28068

    # 28064

    28 m

    --

    # 28051

      Download: Example 1

      Option 1

      Grasp Project with all data worksheets filled and derived beam centres and transmission values calculated as described above (needs unzipping first).
      ex1_project.zip (zip - 5.39 Mi)

      Option 2

      A 'zip' of all the individual data files described above.  Download and unzip the raw data ready to load into Grasp.
      ex1_data.zip (zip - 5.34 Mi)

        Data Reduction and Analysis Overview

        Filling the data worksheets:

        1. Launch Grasp.  Switch to the D11+ instrument configuration in the menu:  Instrument > ILL > D11+.
        2. Set the data directory where the raw data can be found:  File > Set Data Directory  or File > Set File & Data Directory (choose any file, it doesn't matter).
        3. Load the sample scattering data into the Worksheet 'Sample 1'. 
          • In the Worksheet Selector, make sure that 'Sample' and number '1' is selected in the Foreground & Data Load selector.
          • Enter the run number(s) into the 'Data Load, Numors' box and click the 'Get It' button:   e.g. '28115, 28130, 28160'.   This loads all of the sample scattering data measured at distances of 28 m, 8 m and 2 m, into the 'Depth' of Worksheet Sample 1: Depths 1,2,3.  Note:  The comma between the run numbers indicates that the next file should go into the next depth of the scattering data.  Hold the mouse hovering over the 'Data Load, Numors' box for tips on more data loading options.
        4. Load the empty cell (or cell + buffer) data into the Worksheet 'Empty Cell 1'.
          • Select 'Empty Cell' and number '1' in the 'Foreground & Data' Load selector.
          •  Enter the run numbers(s) into the 'Data Load, Numors' box and click the 'Get It' button:  e.g. '28056>28058, 28073, 28090'.  This loads all of the empty cell scattering data measured at distances of 28 m, 8 m and 2 m, into the 'depth' of Worksheet Empty Cell 1: Depths 1,2,3.  Note: the empty cell scatteing data at 28 m is a sum of 3 files between run numbers 28056 and 28058 as indicated by the '>' symbol.
        5. Repeating the procedure above to load:
          • Blocked beam data in to the depth of 'Blocked Beam 1':  '28062, 28070, 28086'
          • Sample Transmission into 'Trans Sample 1':  '28145'.  Note:  A single transmission measurement at 8 m will be used to calculate the sample transmission and will be applied to all sample data at the three distances.
          • Empty Cell Transmission into 'Trans Empty 1':  '28068'
          • Empty Beam Transmission into 'Trans Empty Beam 1':  '28064'
          • Empty Beam intensities for the three instrument configurations into 'I0 Beam Intensity 1':  28051, 28064, 28084'
          • All data is now loaded into Grasp to allow data full correction and data treatment to absolute scattering units.

         

        Masking data:  Beam stop, shadows, bad detector elements:

        It is important to mask out regions of the detector(s) that should be eliminated from any data analysis.  Usually this is the region of the scattering measurements covered by the beam stop to protect the detector from exposure to the intense (un-attenuated) direct beam in scattering measurements.  Further masking may be necessary to remove areas of the detector that may be shadowed by, for example, other other detector panels or sample environment.  Furthermore, occasionally our neutron detectors suffer from pixels, lines or detector tubes that are not functioning correctly and also should be removed.  Masking of data can be performed at almost any stage during the procedures described here - It is often a personal choice as to when and can depend on the application of various corrections to properly highlight the areas requiring masking.

         

        1. Open the 'Mask Editor'  window from the 'Analysis > Mask Editor' menu (shortcut CTRL-N [Windows/Linux], CMD-N [Mac]).
        2. Using the various 2D display options (e.g. Log I), make visible the areas of the detector data requireing masking.
        3. The mask editor operates on the Currrent Active Axis (Detector), indicated by a white border around the 2D display.  A left-click on a particular detector panel makes that panel the Current Active Axis.
        4. Mask out unwanted regions of the detector using the various tools to define:  Individual pixels, Lines, Box regions, Circles or Edge regions of the detector.
          • One of the most useful masking options is the 'Sketch' option.  Click the 'Sketch' button followed by a held left-click drawing over the region of the 2D data requiring masking
          • Masks though depth:  
            • By default the mask editor operates on and applies to all data in the worksheet Depth. 
            • If individual masks are required as a function of depth then use the 'Expand though Depth' option.  Now the mask editor will operate on the data indicated by the current worksheet Depth.

         

        Calculate Transmissions

        1. Toggle the 'Foreground & Data Load' selector to display the 'Trans Sample 1' worksheet
          • The 'Trans Empty Cell 1' worksheet will be offered automatically in the 'Background or Reference' selector.
          • Use the 2D plot inspector tools (top right of the 2D display) to select Zoom and Zoom in around the transmitted beam intensity.
          • Click the Trans Calc' button to calculate the sample transmission, Ts.  This is the transmission of the sample relative to that of the empty cell (or empty cell + buffer).
        2. Toggle the 'Foreground & Data Load' selector to display the 'Trans Empty 1' worksheet
          • The 'Trans Empty Beam 1' worksheet will be offered automatically in the 'Background or Reference' selector.
          • Repeat the above procedure to calculate the Empty Cell (or Cell + Buffer) transmission, Te.  This is the transmission of the empty cell (or cell + buffer) relative to that of the empty beam.

         

        Calculate Beam Centres

        1. Toggle the 'Foreground & Data Load' selector to display the 'I0 Beam Intensity 1' worksheet
          • Stored here are the direct beam measurements for the three instrument configurations in the worksheet depth at distances of 28 m, 8 m and 2 m.
          • Click 'Centre Calc'.  Grasp will cycle though the worksheet depth and calculate a beam centre for the three instrument configurations.
          • Note:  The I0 Beam Intensity data will also be used as a measure of the incoming flux for the calibration of the scattering data to absolute units.  Grasp will use an auto scaling of the data by the attenuation facture used for the direct beam measurements.

         

        Apply the Background and Transmission corrections

        1.  Toggle the 'Foreground & Data Load' selector back to display the sample scattering worksheet 'Sample 1'
        2.  Click the check boxes to the left of the Background and Blocked Beam worksheet selectors to enable subtraction of these background components in the correct ratio of the transmissions calculated.

         

        Apply the Calibration to Absolute units

        1. Check the sample thickness in the 'Thickness' panel.  Ideally this should have been picked up from the data file (not all instruments).  The default value is 1 mm.
        2. Click the 'Calibrate' checkbox in the 'Correct:' panel - this opens the Calibration options window.
        3. Choose the 'Beam' radio button to calibrate to the measured direct beam intensity.
        4. Select 'I0 Beam Intensity' in the dropdown menu to tell Grasp to use the direct beam data in this worksheet to scale the data.
        5. By default all other data scaling options should be On.  These are:
          • 'Divide by Detector Efficiency Map'.  The instrument responsibles should have provided Grasp with a detector efficiency map.  This doesn't have a significant effect on modern multi-tube detectors.
          • 'Correct Relative Detector Efficiency'.  Any differences in average efficiency between different detector banks are taken into account here.
          • 'Correct Detector Tube Paralax'.  This is an important correction taking into account the self shadowing or projected area of detector tubes as a function of angle.  This is a detailed (and complicated) correction that should have been worked out by the instrument responsibles and included in Grasp.
          • 'Divide by Sample Volume'.  (Uses the sample thickness indicated in the main display).
          • 'Divide by Pixel Solid Angle'.  An important geometric correction accounting for flat-panel detectors.
          • 'Divide by Beam Flux'.  Enebles the direct beam scaling as described above.

         

        View and Inspect Fully Corrected 2D Sample Scattering Data

        1. Return to the main Grasp interface to find fully corrected data scaled in absolute scattering units.
        2. Use the worksheet 'Depth' delector to toggle between 2D data at the three measurement distances.
        3. Use the various Display and Analysis tools to:
          • Modify the 2D visual display:  e.g. Colour scheme, Contour, Smoothing, Log intensity scale, (un)Grouped intensity scale between panels, Manual intensity scale etc.
          • Analysis tools allow defining various regions of the detector to be considered for analysis / reduction:  e.g. Sectors, Boxes, Strips etc.

         

         

        Data Reduction:  I vs Q

        1. Open the 'Averaging:  Radial & Azimuthal' window from the 'Analysis > Averaging: Radial & Azimuthal' menu (shortcut CTRL-R [Windows/Linux], CMD-R [Mac]).
        2. Click the 'I vs. |q|' button to make a 1D isotropic reduction of the displayed data.
          • Note:  The radio buttons 'Single', 'Depth', 'TOF' allow automatic averaging of data though the worksheet depth.
          • In this case select 'Depth' to make the I vs. |q| average for the three sample scattering data at the different instrument configurations

         

        Acknowledgement

        Many thanks to Jorg Stellbrink for allowing this data to be used as Grasp example data.


        Last Modified 13 September 2022 by C. Dewhurst

          e.g. D22: D. McK. Paul 5-42-63 - Flux Line (Vortex) Lattice in Rare-Earth Borocarbide Superconductors

          Aims

          • High resolution SANS measurements
          • Lattice structure, orientation and morphology
          • Rocking curves and integrated intensity of Bragg peaks
          • 2D Curve fitting

          Experiment Overview

          • Instrument: D22 (2001)
          • Detector distance of: 17.6m
          • Collimation distances of: 17.6m
          • Wavelength: 10 angstroms
          • Additional Entrance Aperture: Att 6 (20mm)

          Vortex Lattice Scattering Measurements (T < Tc) @4.2K

          Rocking Curve Foreground:
          Sample Angle from -1o to 1o, step 0.1o

          #88144 : #88164 (21 files)

          Background Measurements (T>Tc) @15K

          Rocking Curve Background:
          Sample Angle from -1o to 1o, step 0.1o

          #88526 : #88526 (21 files)

          Download: Example 2

          Option 1:
          Grasp Project with all data worksheets filled and derived beam centres and transmission values calculated as described above (needs unzipping first).
          ex2_project.zip (zip - 777 Ki)

          Option 2:
          A 'zip' of all the individual data files described above.  Download and unzip the raw data ready to load into Grasp.
          ex2_data.zip (zip - 237 Ki)
           

          Data Reduction and Analysis Overview

          Filling the data worksheets:

          1. Launch Grasp.  Switch to the D22 128ASCII instrument configuration in the menu:  Instrument > ILL > D22_128ASCII.
          2. Set the data directory where the raw data can be found:  File > Set Data Directory  or File > Set File & Data Directory (choose any file, it doesn't matter).
          3. Load the sample scattering data (Vortex lattice from the superconductor with T < Tc) into the Worksheet 'Sample 1'. 
            • In the Worksheet Selector, make sure that 'Sample' and number '1' is selected in the Foreground & Data Load selector.
            • Enter the run number(s) into the 'Data Load, Numors' box and click the 'Get It' button:   e.g. '88144:88164'.  This loads all 21 files of the vortex lattice scattering data measured at sample angles between -1o and 1o into the 'Depth' of Worksheet Sample 1: Depths 1,2,3.....21.
            • Note:  Sequentially numbered data could have equivalently been loaded as '88144{21}' or as a comma separated list '88144, 88145, 88146 .....' for a non sequential sequence of data.
            • Hold the mouse hovering over the 'Data Load, Numors' box for tips on more data loading options.
          4. Load the background scattering (Scattering from the superconductor crystal with T > Tc)  into the Worksheet 'Empty Cell 1'.
            • Select 'Empty Cell' and number '1' in the 'Foreground & Data' Load selector.
            • Enter the run numbers(s) into the 'Data Load, Numors' box and click the 'Get It' button:  e.g. '88526:88546' or equivalently '88526{21}'.  This loads all 21 files of the background scattering data measured at sample angles between -1o and 1o into the 'Depth' of Worksheet Sample 1: Depths 1,2,3.....21.

           

          View and Inspect Background Corrected Scattering from the Vortex Lattice

          1. In the Worksheet Selector, make sure that 'Sample' and number '1' is selected in the Foreground & Data Load selector.
          2. Click the check box to the left of the Background worksheet selector to enable subtraction of the background from the vortex lattice scattering data.
          3. Apply the Background correction by ticking the check box to the left of the Background worksheet selector.
          4. Use the worksheet 'Depth' delector to toggle between subtracted 2D data as a function of sample angle.
          5. Use the various Display and Analysis tools to:
            • Modify the 2D visual display:  e.g. Colour scheme, Contour, Smoothing, Log intensity scale, (un)Grouped intensity scale between panels, Manual intensity scale etc.
            • Analysis tools allow defining various regions of the detector to be considered for analysis / reduction:  e.g. Sectors, Boxes, Strips etc.

           

           

          What about sample Transmission?

          In this particular case there is no difference in the material in the beam between the sample (vortex lattice) and backgroung scattering measurements.  As such, the relative transmission between sample and background can be considered to be equal to T_s = 1.   In such a case it is of no consequence to measure a blocked beam scattering measurement as this contribution would be exactly removed in the subtraction of background from sample scattering.  T_e is irrelevant and can also be left as T_e = 1.

           

          What about a Direct Beam measurement:   Beam Centre?  Absolute Intensities?

          In principle a measurement of the direct beam will have been made along side the taking of this data.  This is useful for:

          • Any final quantitative calculations of absaolute intensities and superconductivity parameters derived from the scattering cross-section (e.g. Form Factor).
          • Measurement of the beam centre - i.e. the centre of radial symmetry of the scattering pattern.
          • A direct measurement of the angular resolution of the instrument (beam image angular size in 2D)

          However - I do not have a measured direct beam at hand BUT I need the beam centre.

          • Given the symmetry of the SUM of the (beackground subtracted) scattering pattern one approximate solution would be simply to click 'Centre Calc' for the entire image to calculate the centre of mass of the image.
          • A more precise ...and rather neat solution is demonstrated below by making 2D fitts to equivelent Bragg peak positions and using the Vortex Lattice usermodules to estimate the beam centre from the fitted spot positions.
          • For now we will continue with the beam centre calculated below as Cx = 63.31,  Cy = 62.50.  This could be entered manually in the Beam Centre panel.

           

          Data analysis example:  Approximate Bragg peak position:  I vs. |q|

          1. Open the 'Averaging:  Radial & Azimuthal' window from the 'Analysis > Averaging: Radial & Azimuthal' menu (shortcut CTRL-R [Windows/Linux], CMD-R [Mac]).
          2. Make sure the worksheet selector in the main Grasp window is set to 'Sample 1 Sum'. i.e. the sum of all worksheets in the depth is displayed.  This is the sum of the rocking curve of the Bragg peaks.
          3. Click the 'I vs. |q|' button to make a 1D isotropic reduction of the displayed data.
            • Note:  The radio buttons 'Single', 'Depth', 'TOF' allow automatic averaging of data though the worksheet depth.
            • In this case select 'Single' to make the I vs. |q| average for the sum of the rocking curve, as displayed on the main Grasp 2D display.
          4. Open the 1D Curve Fitting window from Grasp_Plot 'Analysis > Curve Fit' menu
            • Select a Gaussian fitting function.
            • Click the 'Auto Guess' button.
            • Click 'Fit It!' to complete the curve fit and view the fitted parameters. The Bragg peak lies at a peak position of q = 0.0048539 Å-1
          5. In this example for Bragg diffraction from the vortex lattice in a superconductor, the q-value , is determined by the spacing of the vortex lines which itself is determined by the internal magnetic field value.
          6. Open the 'User Modules > Vortex > FLL Window' from the main Grasp menu and calculate the internal magnetic field from the fitted q-value (copy and paste the fitted q-value from the Curve Fit window into the FLL window).  I calculate a value of 1069 Gauss (106.9 mT).

           

           

          Data analysis example:  A better analysis of the Vortex Lattice Structure:  I vs. |q|  using Sectors

          1. The Vortex Lattice is not isotropic or single domain.  In fact it consists of two types of rhombic VL domains oriented at 90o from each other (https://journals.aps.org/prb/abstract/10.1103/PhysRevB.72.014542).
          2. You can measure the q-value of the various peaks accurately by taking the I vs |q| using sector(s) over the appropriate Bragg peaks.
          3. Open the 'Sectors & Ellipses' window from the 'Analysis > Sectors & Ellipses' menu (shortcut CTRL-J [Windows/Linux], CMD-J [Mac]).
            • Define your sector(s) of interest over the data:  Inner radius, Outer radius, Theta and delta Theta (opening).
            • Use Mirror Sectors to define equivalent sectors of a given symmetry.
            • Click the 'Averaging' button, or return to the Averaging window and ensure that 'Use Sector Mask' is now checked.
          4. Click the 'I vs. |q|' button to make a 1D isotropic reduction of the displayed data within the defined sector(s)
          5. Curve fit and extract the (different) q-values for the various peaks.

           

          Data analysis example:  Rocking curve width - Intensity of each Bragg peak as the sample is rotated though the Bragg condition

          Until now we have only used the Sum of all data loaded into Grasp and have not analysed the individual measurements as a function of sample angle as the vortex lattice is rotated though the Bragg condition.

          We now want to extract the 'Rocking Curve'

          1. Open the 'Boxes' window from the 'Analysis > Boxes' menu (shortcut CTRL-B [Windows/Linux], CMD-B [Mac]).
          2. On the main Grasp display, use the 2D plot inspector tools (top right of the 2D display) to select Zoom and Zoom in around a Bragg peak of interest.
          3. In the Boxes window, click the box number button to the left of the coordinate boxes to grab the box coordinates.  Do this for up to 6 boxes ...here I will grab 2 boxes for the principal peaks on the horizontal axis.
          4. Select the 'san' x-Parameter using the dropdown menu - This is the sample parameter (san = sample angle) that is changing during the course of the scan.
          5. Click the 'Do It!' button to extract the integrated scattered intensity within the boxed region(s) as a function of sample angle.
          6. Use the 1D Curve Fit to fit a Gaussian to the Rocking Curve intensity and extract parameters such as the Integrated Intensity, Peak Centre Angle and Rocking Curve Width.

           

          Data analysis example:  2D Curve fitting to the Bragg peaks

          We can work directly with the 2D data in analysis of the vortex lattice structure and determination of physical quantities.

          1. On the main Grasp display, use the 2D plot inspector tools (top right of the 2D display) to select Zoom and Zoom in around a Bragg peak of interest.
          2. Open the '2D Curve Fitting' window from the 'Analysis > 2D Curve Fit' menu in the (shortcut CTRL-Q [Windows/Linux], CMD-Q [Mac]).
          3. Select the required 2D fitting function, in this case 'Gaussian - Cartesian Pixels'.
          4. Click the 'Auto Guess' button followed by the 'Fit It!' button to perform the fit to the 2D data.
            • The resulting fit parameters are displayed in the 2D Curve Fit window
            • A graphic representation of the fitted 2D function is shown along side the residual (difference between the real data and the fit divided by the statistical error in the data).
            • Contours representing the fitted function are displayed on the main 2D display on top of the real data.

           

          Use the 2D Curve Fitting and the Vortex Lattice User Modules - Let's find the Beam Centre from the symmtery of the Bragg peaks!

          A 'User Module' has been written to calculate the beam centre from the coordinates and pairs of Bragg peaks, assuming a symmetric diffraction pattern.

          1. Open the 'FLL Beam Centre Calculator' window from the 'User Modules > Vortex > FLL Beam Centre Calculator' menu.
          2. Use the 2D Curve Fitting module to fit 2 pairs (4 spots).  As the Bragg peaks are fitted in turn, collect the spot co-ordinates in the beam centre calculator module.
          3. When you have fitted and collected the 2 pairs (4 spots) click 'Calculate' to calculate the new beam centre. This new value will be displayed in the user module window and also update the main beam centre value in the main display.
          4. From now on, with an accurate beam centre, radially symmetric analysis operations can be reliably be performed.  

           

          Let's do this again .....Rapidly!

          1. Open the 'FLL Rapid Beam Centre Calculator' window from the 'User Modules > Vortex > FLL Rapid Beam Centre Calculator' menu.
          2. Click the 'Choose 2 Spot Pairs' button.
            • This redirects you back to the main Grasp display. 
            • On a fully zoomed-out image of the data click on the 2 spot pairs in order (first pair then second pair).
          3. The FLL Rapid Beam Centre Calculator module will automatically open the 2D Curve Fit window, fit the 4 spots, calculate the new beam centre and place the new coordinates directly into the Beam Centre panel in the main Grasp window.

           

           

          Acknowledgement

          This data was taken as part of a collaboration with Don McK Paul.  A publication describing the data can be found at:  https://journals.aps.org/prb/abstract/10.1103/PhysRevB.72.014542

           


          Last Modified 15 September 2022 by C. Dewhurst

            e.g. D11: Badurek 5-32-620 - Domain size of Magnetically Saturated Soft Ferromagnetic Ribbons

            Aims

            • SANS measurements of saturated 'soft' ferromagnetic materials
            • Separation of Nuclear and Magnetic scattering components
            • Angular analysis around the asymetric scattering pattern
            • Automated 'Ancos2' cosine2 fitting around the detector as a function of |q|

            Experiment Overview

            • Instrument: D11 (2000)
            • Detector distances of: 2m & 8m
            • Collimation distances of: 4m & 8m
            • Wavelength: 6 Å
            • Sample placed in saturating magnetic field (1.5 T electromagnet)

            Scattering Measurements

            Scattering

            SampleEmpty Sample Holder

            2 m

            # 18152# 18151

            8 m

            # 18180# 18179

              Transmission & Beam Intensity Measurements

              Transmission

              SampleEmpty Sample Holder

              Direct Beam

              2 m

              # 18166# 18165

              # 18165

              8 m

              --

              # 18145

                Download: Example 3

                Option 1

                Grasp Project with all data worksheets filled and derived beam centres and transmission values calculated as described above (needs unzipping first).
                ex3_project.zip (zip - 390 Ki)

                Option 2

                A 'zip' of all the individual data files described above.  Download and unzip the raw data ready to load into Grasp.
                ex3_data.zip (zip - 46 Ki)

                  Data Reduction and Analysis Overview

                  Filling the data worksheets:

                  1. Launch Grasp.  Switch to the D11 64ASCII instrument configuration in the menu:  Instrument > ILL > D11_64ASCII.
                  2. Set the data directory where the raw data can be found:  File > Set Data Directory  or File > Set File & Data Directory (choose any file, it doesn't matter).
                  3. Load the sample scattering data into the Worksheets.  Let's put the 2 m scattering data into worksheet 'Sample 1' and the 8 m scattering data into 'Sample 2'.
                    • In the Worksheet Selector, make sure that 'Sample' and number '1' is selected in the Foreground & Data Load selector.
                    • Enter the run number(s) into the 'Data Load, Numors' box and click the 'Get It' button:   e.g. '18152'.   This loads all of the sample scattering data measured at a distance of 2 m into Worksheet Sample 1: Depth 1.
                    • Select 'Sample 2' from the worksheet selector and load the 8 m sample scattering data into Worksheet Sample 2: Depth 1.   e.g. '18180'.
                    • Note:  Hold the mouse hovering over the 'Data Load, Numors' box for tips on more data loading options.
                  4. Load the empty sample holder (background scattering) data into the Worksheet 'Empty Cell 1'.
                    • Select 'Empty Cell' and number '1' in the 'Foreground & Data' Load selector.
                    • Enter the run numbers(s) into the 'Data Load, Numors' box and click the 'Get It' button:  e.g. '18151'.  This the empty sample holder scattering data measured at a distance of 2 m into Worksheet Empty Cell 1: Depth 1.
                    • Select 'Empty Cell 2' from the worksheet selector and load the 8 m background scattering data into Worksheet Empty Cell 2: Depth 1.  e.g. '18179'.
                  5. Repeating the procedure above to load:
                    • Sample Transmission into 'Trans Sample 1' and 'Trans Sample 2':  e.g. '18166'.  Here we will use the same sample transmission data measured at 2 m for both the 2 m and 8 m scattering data.
                    • Empty Sample Holder Transmission into 'Trans Empty Cell 1' and 'Trans Empty Cell 2':  e.g. '18165'.
                    • Note:  In this case the Empty Sample Holder data would be equivalent to an Empty Beam measurement as the Empty Sample Holder has no 'container' and is simply an air path.  This means therefore that the Transmission of the Empty Cell, Te = 1 (see below).
                    • Load the 2 m Empty Beam Transmission into 'Trans Empty Beam 1':  e.g. '18165' and the 8 m Empty Beam Transmission into 'Trans Empty Beam 2':  e.g. '18145'
                    • All data is now loaded into Grasp to allow data full correction and data treatment to absolute scattering units.

                   

                  Masking data:  Beam stop, shadows, bad detector elements:

                  In this example it is not strictly necessary to mask out 'bad' regions of the detector(s).  This is because the Ancos2 analysis tool we are going to use below already only operates on well defined 'rings' of data around the detector and not the entire data set. 

                  For cosmetic purposes though or if other data analysis procedures are going to be applied, e.g. I vs. |q| (Over vertical and horizontal sectors)  you may wish to mask out any unattractive that should be eliminated from any data analysis.  In which case:

                  1. Open the 'Mask Editor'  window from the 'Analysis > Mask Editor' menu (shortcut CTRL-N [Windows/Linux], CMD-N [Mac]).
                  2. Using the various 2D display options (e.g. Log I), make visible the areas of the detector data requireing masking.
                  3. The mask editor operates on the Currrent Active Axis (Detector), indicated by a white border around the 2D display.  A left-click on a particular detector panel makes that panel the Current Active Axis.
                  4. Mask out unwanted regions of the detector for each Sample woksheet number using the various tools to define:  Individual pixels, Lines, Box regions, Circles or Edge regions of the detector.
                    • One of the most useful masking options is the 'Sketch' option.  Click the 'Sketch' button followed by a held left-click drawing over the region of the 2D data requiring masking

                   

                  Calculate the Sample Transmission

                  1. Toggle the 'Foreground & Data Load' selector to display the 'Trans Sample 1' worksheet
                    • The 'Trans Empty Cell 1' worksheet will be offered automatically in the 'Background or Reference' selector.
                    • Use the 2D plot inspector tools (top right of the 2D display) to select Zoom and Zoom in around the transmitted beam intensity.
                    • Click the Trans Calc' button to calculate the sample transmission, Ts.  This is the transmission of the sample relative to that of the empty sample holder.
                  2. Repeat the above procedure for the 'Trans Sample 2' worksheet
                    • This is exacly the same data and should calculate exactly the sample sample tranmission, Ts, as calculated for Sample 1.
                    • Alternatively, instead of loading the same transmission data into worksheet 2 we could simple copy and paste the transmission value from Sample 1 into the Sample 2 Ts value.
                  3. Leave the Empty Cell transmission value, Te = 1.
                    • This is because the Empty Sample Holder Transmission and the Empty Beam Transmission are the same thing for this particular example.

                   

                  Calculate Beam Centres

                  1. Toggle the 'Foreground & Data Load' selector to display the 'Trans Empty Beam 1' worksheet
                    • Stored here is the direct beam measurement for the 2 m data.
                    • Click 'Centre Calc'.  Grasp will calculate a beam centre this instrument configuration.
                    • Note:  The Trans Empty Beam data will also be used as a measure of the incoming flux for the calibration of the scattering data to absolute units.  Grasp will use an auto scaling of the data by the attenuation facture used for the direct beam measurements.
                  2. Repeat calclation of the beam centre for the 8 m data stored in the 'Trans Empty Beam 2' worksheet

                   

                  Apply the Background and Transmission corrections

                  1.  Toggle the 'Foreground & Data Load' selector back to display the sample scattering worksheet 'Sample 1'
                  2.  Click the check boxes to the left of the Background and Blocked Beam worksheet selectors to enable subtraction of these background components in the correct ratio of the transmissions calculated.

                   

                  Apply the Calibration to Absolute units

                  1. Check the sample thickness in the 'Thickness' panel.  Ideally this should have been picked up from the data file (not all instruments).  The default value is 1 mm.
                  2. Click the 'Calibrate' checkbox in the 'Correct:' panel - this opens the Calibration options window.
                  3. Choose the 'Beam' radio button to calibrate to the measured direct beam intensity.
                  4. Select 'Trans Empty Beam' in the dropdown menu to tell Grasp to use the direct beam data in this worksheet to scale the data.
                  5. By default all other data scaling options should be On.  These are:
                    • 'Divide by Detector Efficiency Map'.  The instrument responsibles should have provided Grasp with a detector efficiency map.  This doesn't have a significant effect on modern multi-tube detectors.
                    • 'Correct Relative Detector Efficiency'.  Any differences in average efficiency between different detector banks are taken into account here.
                    • 'Correct Detector Tube Paralax'.  This is an important correction taking into account the self shadowing or projected area of detector tubes as a function of angle.  This is a detailed (and complicated) correction that should have been worked out by the instrument responsibles and included in Grasp.
                    • 'Divide by Sample Volume'.  (Uses the sample thickness indicated in the main display).
                    • 'Divide by Pixel Solid Angle'.  An important geometric correction accounting for flat-panel detectors.
                    • 'Divide by Beam Flux'.  Enebles the direct beam scaling as described above.

                   

                  View and Inspect Fully Corrected 2D Sample Scattering Data

                  1. Return to the main Grasp interface to find fully corrected data scaled in absolute scattering units.
                  2. Use the worksheet 'Number' delector to toggle between 2D data measured at 2 m and 8 m.
                  3. Use the various Display and Analysis tools to:
                    • Modify the 2D visual display:  e.g. Colour scheme, Contour, Smoothing, Log intensity scale, (un)Grouped intensity scale between panels, Manual intensity scale etc.
                    • Analysis tools allow defining various regions of the detector to be considered for analysis / reduction:  e.g. Sectors, Boxes, Strips etc.
                    • Below we will use the dedicated Ancos2 tool to analyse the cosine2 depency of magnetic scattering around the detector.
                  4. The observed scattering patterns are beautifully asymetric showing the typical 'butterfly' pattern observed for a saturated ferromagnetic material. 
                    • In this experment a saturating magnetic field (~ 1.5 T) was applied in the vertical direction.
                    • For a 'perfectly' saturated ferromagnet this means that:
                      • There should only be nuclear scattering and NO magnetic scattering in the direction parallal to the applied magnetic field (vertical).
                      • There should be BOTH nuclear and magnetic scattering in the direction perpendicular to the applied magnetic field (horizontal).
                      • This gives rise to a cosine2 dependency of the magnetic scattering contribution as a function of azimuthal angle around the detector.

                   

                   

                  Data Reduction:  Ancos2:  I vs |q| with seperation of nuclear (isotropic) and magnetic (anisotropic) scattering

                  1. Toggle the 'Foreground & Data Load' selector to display the 'Sample 1' worksheet
                  2. Open the 'Ancos2: Anisotropic Azimuthal Averaging' window from the 'Analysis > Ancos2:  Anisotropic Azimuthal Averaging' menu (shortcut CTRL-T [Windows/Linux], CMD-T [Mac]).
                  3. Select the Ancos2 parameters:
                    • Start and End radii (pixels) for the analysis.  Width and Step of each azimuthal ring on the detector (pixels).
                      • Note: A larger Width introduces more pixel data into each aximuthally averaged ring and therefore better statistics but lower q-resolution of the final data.
                      • A larger Width compared to the Step effectively introduces a smoothing into the final data.
                    • Select the checkboxes to display the final Cosine2:  Offset (nuclear scattering - isotropic),  Amplitude (magnetic scattering - anisotropic) and Phase (orientation of the anisotropy).
                    • Click the 'Ancos2-It!' button to run the automated procedure that:
                      • Extracts I vs. Azimuthal angle for each ring at a given radius on the detector.
                      • Makes a fit of the function:  I = Offset + Amplitude * Cos2(Azimuthal Angle  + Phase).
                      • Collects the |q| and fitted Offset, Amplitude and Phase values for each ring on the detector and moves to the next.
                      • When the range of radii has been complete the Offset, Amplitude and Phase values are plotted as a function of |q|.
                  4. Toggle the 'Foreground & Data Load' selector to display the 'Sample 2' worksheet and repeat the above procedure.

                   

                  GRASP
                  by Charles Dewhurst
                  Email: dewhurst(at)ill.eu

                  Institut Laue Langevin
                  Grenoble
                  France

                  GRASP

                  • is freely available for use and user contribution for non-commercial purposes.
                  • has been developed at the Institut Laue-Langevin (ILL) and remains copyright of the ILL.
                  • is provided free of charge, "as is", and with no warranty.