abs_geo

When neutrons interact with a measured sample, scattering is one type of the interaction, while absorption is another type. However, for a scattering measurement, the absorption effect ‘steals’ part of the intensity that should belong to the scattering intensity. Therefore, without the correction for the absorption effect, the measured intensity is not a clean representation of the scattering interaction. To correct for the absorption effect, one has various methods – refer to the documentation in Ref. [1] for details. Here in this post, I will be talking about the numerical integration approach for the absorption effect correction. I will skip the theoretical part as it has been talked about in Ref. [1] and references therein. Instead, I will specifically focus on the technical part concerning the definition of sample and container geometry, which is critical for performing the numerical integration. The basic idea of the implementation is to divide the sample (and the container, if involved) into many pieces of little cuboids. Each of the cuboids will be taken as the scattering spot and the propogation length of neutrons within the sample (and the container) before and after the scattering needs to be calculated. This process relies on the definition of geometry.

Specifically for the implementation in the Mantid framework, the geometry definition is flexible – there are some pre-defined geometry in the code base which one can refer to with simple labels. For example, PAC06 refers to the standard vanadium container used at SNS, ORNL, with the diameter of ~6 mm. If needed, we can also define our own geometry, mainly through the SetSample algorithm [2]. The several examples given in the algorithm documentation page are very clear about the usage. There are several important aspects I want to note down here. First, the internally defined container geometry (within Mantid) puts the geometrical center of the container at (0, 0, 0) in the instrument Cartesian coordinate. This can be clearly seen from the geometry definition of those standard containers in the Mantid repository [3]. Taking the PAC06 as the example, the absolute value of the y-coordinate (0.0284 m) of the centre-of-bottom-base (i.e., the center of the container bottom base) is half of the container height 0.0568 m. Second, the definition of sample geometry is independent from that of the container. This means that Mantid does not force the sample to be bounded within the container, i.e., if not careful, it is possible that our defined sample geometry is going beyond the container. Third, when defining the sample geometry, if we only specify the height, Mantid will figure out where to put the sample in the container, like shown below,

sam_geo

However, if we specify the sample geometry in a more explicit way, e.g., specifying the shape, height, radius and center, the center of the sample will be put at (0, 0, 0) in the instrument Cartesian coordinate, so we will end up with having the following configuration if we define the center of the sample as (0, 0, 0),

sam_geo

Fourth, in the current implementation (as of writing), the absorption correction algorithm in Mantid assumes the beam size is the same as the defined sample height. There is an assumption with this regard, namely, the absorption of neutrons from the sample beyond the beam size is ignored. In the picture below, the absorption from the blue region of the sample is ignored,

sam_geo

It is, though, possible in Mantid that we can define the so-called gauge volume associated with the sample so that the size of the sample under the beam can be defined [4]. In this case, the absorption correction can be performed in a more rigorous way, without the assumption that beam size being the same as the sample size. However, in practice, the impact of such an assumption may not be significant, given the amount of sample beyond the beam. The picture below demonstrates the implementation of the gauge volume in Mantid.

N.B. In fact, the illustration presented below is not fully implemented as it will require the construction of the intersection area between the sample and the defined gauge volume. Here, we are only demonstrating the idea of defining the gauge volume.

ga_vol

The cuboid in the picture refers to the defined gauge volume and the intersection part with the sample (red cylinder) and container (green cylinder) is visible to the beam (see the attention note above). The arrows in the middle refers to the Cartesian coordinate axes – red for \(x\)-axis, green for \(y\)-axis and blue for \(z\)-axis. The beam propogates following the blue arrow shown in the right. Follwoing the Mantid way of defining the gauge volume (see the link below), the definition used here is as follows,

gauge_vol = '''<cuboid id="shape">
    <left-front-bottom-point x="0.02" y="-0.01" z="-0.02"  />
    <left-front-top-point  x="0.02" y="-0.01" z="0.02"  />
    <left-back-bottom-point  x="-0.02" y="-0.01" z="-0.02"  />
    <right-front-bottom-point  x="0.02" y="0.01" z="-0.02"  />
  </cuboid>'''

where the length unit is meter. The container geometry definition is given in Mantid framework as one of the pre-defined container types – see here. The several corner points that are used for defining the cuboid volume in Mantid are labeled out in the picture. To clarify the orientation, we will be facing the \(x\)-axis, with the red arrow pointing towards us. In this position, the blue arrow represents the direction from our feet to our head.


Some useful references to the geometry implementation in Mantid and MantidTotalScattering are listed below,


Some useful notes about sample and container geometry in Mantid,

  • In Mantid workbench, we can right click on a workspace and choose to view the sample geometry. This way, we can visualize the sample and container geometry in 3D view.


References

[1] https://powder.ornl.gov/total_scattering/data_reduction/mts_abs_ms.html

[2] https://docs.mantidproject.org/nightly/algorithms/SetSample-v1.html#algm-setsample

[3] https://github.com/mantidproject/mantid/blob/main/instrument/sampleenvironments/SNS/InAir.xml

[4] https://docs.mantidproject.org/nightly/algorithms/DefineGaugeVolume-v1.html