MJOLNIR: A Software Package for Multiplexing Neutron Spectrometers
MMJOLNIR: A Software Package for MultiplexingNeutron Spectrometers
Jakob Lass a,b,1 , Henrik Jacobsen a , Daniel G. Mazzone a , Kim Lefmann b a Laboratory for Neutron Scattering and Imaging, Paul Scherrer Institut, CH-5232Villigen, Switzerland b Nanoscience Center, Niels Bohr Institute, University of Copenhagen, DK-2100Copenhagen Ø, Denmark
Abstract
Novel multiplexing triple-axis neutron scattering spectrometers yield signif-icant improvements of the common triple-axis instruments. While the pla-nar scattering geometry keeps ensuring compatibility with complex sampleenvironments, a simultaneous detection of scattered neutrons at various an-gles and energies leads to tremendous improvements in the data acquisitionrate. Here we report on the software package
MJOLNIR that we have devel-oped to handle the resulting enhancement in data complexity. Using datafrom the new CAMEA spectrometer of the Swiss Spallation Neutron Sourceat the Paul Scherrer Institut, we show how the software reduces, visualisesand treats observables measured on multiplexing spectrometers. The soft-ware package has been generalised to a uniformed framework, allowing forcollaborations across multiplexing instruments at different facilities, furtherfacilitating new developments in data treatment, such as fitting routines andmodelling of multi-dimensional data.
Keywords:
Inelastic Neutron Scattering, Three-axis Spectroscopy,Visualization Tool
1. Introduction
Inelastic neutron scattering instruments allow detailed studies of the dy-namical structure factor, S ( Q , ω ) , where Q is a scattering vector in reciprocalspace and ¯ hω = ∆ E an energy transfer. One of the work horses of modernneutron scattering are triple-axis instruments (see Fig. 1), because they typ-ically have a high neutron flux and good energy resolution [1]. ∗ Correspondence to : 5232 Villigen PSI, Switzerland.
E-mail address : [email protected]
Preprint submitted to SoftwareX July 30, 2020 a r X i v : . [ phy s i c s . d a t a - a n ] J u l nfortunately, standard triple-axis instruments cover only a single ( Q , ¯ hω )-position per acquisition time, which leads to isolated cuts along linesof ω or Q during experiments. Multiplexing triple-axis instruments extendthe triple-axis concept by employing multiple analysers and detectors. Thisallows for simultaneous measurement of large S ( Q , ω ) areas, while preservingthe high flux. This is in contrast to direct geometry time-of-flight mappinginstruments, which have an even larger coverage of reciprocal space, butwhich pay the price in form of a significant reduction in incoming flux.Examples of multiplexing triple-axis instruments are RITA-II [2], Flat-CONE [3], UFO [4], MultiFLEXX [5], PUMA [6], Bambus [7], SPINS, MACS[8], and CAMEA [9]. The point clouds measured on these spectrometers haveto be treated in a fundamentally new fashion, therefore pushing the data re-duction onto a new complexity level. In some sense the usage of these instru-ments are simplified through the reduction of movable parts and parameterswhile the post processing of data increases significantly in complexity, verysimilar to the case of direct-geometry time-of-flight spectrometers.Here, we present the software package MJOLNIR , which has been primar-ily developed for the new secondary neutron spectrometer CAMEA at thePaul Scherrer Institut (PSI), Switzerland. However, the software can han-dle data from every multiplexing triple-axis neutron spectrometer, enablingutility across facilities.
MJOLNIR offers tools to quickly convert data fromdetector counts to reciprocal space, and to visualise the data in 1, 2 and3 dimensions. The software has been written with focus on being user-friendly, offering a scripting, a command line, and a graphical interface.The software was successfully used during the commissioning phase of theCAMEA spectrometer[9] and subsequently for the data treatment of acquireddata[10, 11].
MJOLNIR has been coded in the open source language Python and can bedownloaded at PSI website[12].
MJOLNIR makes use of renowned Pythonpackages, such as matplotlib[13], scipy[14], numpy, and Pandas[15], andas such is radially distributable and compatible across platforms throughPython’s PyPi interface. We mention that a trend for academic software to-wards Python is currently recognisable. In fact, well-established Matlab[16]programs such as SpinW[17] are being rewritten to allow for Python bind-ings. New large scale facilities including the European Spallation Source [18]plan to run with Python-based systems[19].In this article we present the main features of
MJOLNIR . The full docu-mentation including extensive tutorials is available at the PSI website[12].Before presenting
MJOLNIR we first explain, standard triple axis spectrome-ters and their differences to multiplexing instruments. We then describe thedifferent coordinate systems used for in the data treatment. Subsequently,2e describe the structure of
MJOLNIR , followed by examples of some of itsfeatures.
Figure 1a shows a sketch of a typical triple-axis spectrometer with the sixrelevant rotation axes, A - A . The monochromator is rotated with respect tothe direct beam by A . Through the Bragg scattering condition the sampleis positioned at A = 2 A , such that a single incoming neutron wavevector, k i (and thereby the energy E i ) is selected. The sample rotation is denoted A , while A is the angle between the incident beam on the sample andthe analyser. Similarly to the monochromator, the analyser is rotated by A and the detector is placed at A = 2 A to select a single final neutronwavevector, k f (and thereby the energy E f ). The momentum and energytransfer between the neutron and the sample are given by Q = k i − k f and ∆ E = E i − E f , which can be calculated from A − A and knowing theproperties of the monochromator and analyser. We refer to Ref. [1] for amore extensive description of triple-axis spectrometers.A multiplexing triple-axis instrument uses multiple analysers and detec-tors which leads to simultaneous measurements of the neutron scatteringintensity at multiple A − A positions (see Fig. 1b). In some instrumentsposition sensitive detectors collect neutrons from multiple analysers. In ad-dition, on most multiplexing instruments (including CAMEA) the scatteringdirection off the analyzers is rotated by 90 ◦ when compared to standardtriple-axis instruments, thus scattering neutrons onto detectors that are out-of-plane. This impacts the resolution with which particular ( Q , ∆ E )-pointsare measured, but is mostly employed for practical reasons to allow for a max-imal density of analyzer-detector pairs. The rotation out of plane changesthe resolution calculation and renders current schemes inapplicable. Work isongoing to account for this change. In MJOLNIR , the data treatment of multiplexing instruments is facilitatedby defining several related coordinate systems that describe the scatteringvector, Q , illustrated in Fig. 2.The instrument coordinate system is an orthonormal coordinate systemthat is sample independent. It is defined by C instr = ( Q x , Q y , Q z , ∆ E ) , where Q y is parallel to k i and orthogonal to Q x within the scattering plane. Theout-of-plane component Q z is zero in all cases.The sample coordinate system shares the axes of instrument coordinatesystem, but is rotated so that the first axis points along a reciprocal latticevector of the sample: C sample = ( ˜ Q x , ˜ Q y , ˜ Q z , ∆ E ) .3 MonochromatorSample AnalyserGuide Detector A A A A A A k i k f k i k f Q b Sample A A (cid:48) A A A (cid:48) A (cid:48) A A A (cid:48) A (cid:48) Figure 1: a : Sketch of a standard triple-axis instrument depicting the six angles, A - A . b : Zoom on multiplexing secondary spectrometer with two scattering angles and two finalenergies measured simultaneously. The reciprocal lattice coordinate system is defined by two reciprocal lat-tice vectors in the scattering plane, C RLU = ( P , P , ∆ E ) , which is often cho-sen to be along high symmetry directions. For samples with cubic, tetragonal,or orthorhombic symmetry, the reciprocal lattice coordinate system overlapswith the sample coordinate system, such as illustrated in Fig. 2a. In con-trast, the reciprocal lattice vectors are not orthorgonal in hexagonal, trigonal,monoclinic or triclinic systems, see Fig. 2b.A typical measurement on CAMEA consists of rotating A while keepingall other angles constant. This generates data points as shown in Fig. 2 bythe red lines.
2. The Scope of
MJOLNIRMJOLNIR is designed to provide tools for three purposes: 1) conversion ofdata into the reciprocal lattice coordinate system or the sample coordinatesystem. 2) Normalisation and visualisation of the data in 1, 2 and 3 dimen-sions, and 3) analysis of the data. We now describe the scope of
MJOLNIR inthese three aspects.
Conversion of data to the reciprocal lattice coordinate system requires de-tailed knowledge of the specific instrument setup.
MJOLNIR has initially beendeveloped for CAMEA, and thus includes an accurate description of this4 , , [ R L U ] −1.25−1.00−0.75−0.50−0.250.000.250.500.751.00 Q x Q y a Q InstrumentQ SampleRLUA3 ScanA4 Scan Q x Q y −1.0 −0.5 0.0 0.5 1.01, 0, 0 [RLU]1.0 1.5 2.0 2.5−1.5−1.0−0.50.00.51.0 , , [ R L U ] −1.5−1.0−0.50.00.51.0 Q x Q y b Q InstrumentQ SampleRLUA3 ScanA4 Scan Q x Q y Figure 2: Overview of coordinate axes used for projection and RLU axes for a : tetragonalMnF and b : hexagonal YMnO . The A scan lines cover 90 ◦ and have constant A values between -16 ◦ and -72 ◦ covered by a single instrument setting by CAMEA. instrument. We, however, aim for MJOLNIR to be used across many multi-plexing spectrometers such as MultiFLEXX[20], FlatCone[3] and Bambus[7].We have thus developed tools to model any multiplexing triple-axis type in-strument in
MJOLNIR . We note that MultiFLEXX is being moved to the HeinzMaier-Leibnitz Zentrum due to limited activities at the Helmholtz-Zentrumin Berlin.There are two methods by which the required instrument parameters canbe extracted for the data conversion, which are explained in detail in Ref. [9].The parameters can either be calculated from the instrument design directly,assuming a perfect setup, or measured through an experiment allowing forsmall deviations. A direct measurement yields more accurate results, butrequires some extra modelling. At CAMEA, the scattering angles are cal-culated, while final energies are measured directly. At MultiFLEXX bothparameters are calculated[20].
MJOLNIR supports both options.Further differences among various multiplexing instruments arise fromthe fact that some of them employ a prismatic analyser concept of severalenergies scattered from one analyzer [21], while others do not. However, byimplementing the prismatic concept, the standard setup will be a limitingcase of just a single energy, and is thus also supported.Along these lines, the requirements for the upcoming indirect time-of-flight spectrometer BIFROST at the European Spallation Source are worthnoting [22, 23]. The instrument shares many similarities with CAMEA; both5ossess multiplexing secondary spectrometers, utilising the prismatic conceptin combination with position sensitive detectors. However, their primaryspectrometers differ. CAMEA is situated at a quasi-continuous source usinga monochromator to determine the incoming energy. BIFROST, on the otherhand, will be situated on a pulsed source, determining the incoming energyby time-of-flight. In effect, BIFROST performs a scan over incoming ener-gies within a defined window, whereas CAMEA employs one fixed incomingenergy only. In practice this extends BIFROST data by an additional di-mension when compared to CAMEA. We expect that extensions of
MJOLNIR will be suitable for handling data from BIFROST.
MJOLNIR is designed to work directly with raw data, where each datapoint consists of a neutron count, a monitor count, and normalization value,as well as a position in reciprocal space. Acquiring multiple scans at almostidentical positions will increase the likelihood that multiple points are in closevicinity of each other. One may argue that if their difference is smaller thanthe expected instrumental uncertainty they should be binned. The approach,however, imposes a resolution estimate reducing the transparency of the dataprocess, as two points within a given distance in a certain parameter spacemight be binned in some part of the measurement volume but not in otherparts. This is due to the fact that the instrument resolution changes acrossthe probed volume of reciprocal space. Instead, we prefer to treat all datapoints separate as long as no user-defined tolerance is provided.
MJOLNIR provides tools for visualising data from any multiplexing instru-ment in 1, 2 and 3 dimensions in the reciprocal lattice coordinate system andin the sample coordinate system. For these purposes, the user defines thesize of the bins as well as the directions of the desired cuts.
MJOLNIR thenbins and normalises the raw data to the monitor count, and plots the binneddata. The tools are described in detail in the documentation[12].We note that
MJOLNIR has been written for multiplexing triple-axis instru-ments specifically. The software is not suitable for data acquired on standardtriple-axis instruments where only a one-dimensional sub-space of reciprocalspace is measured. Conversely, direct geometry time-of-flight spectrometersproduce 4-dimensional data sets, whose handeling is outside the scope of
MJOLNIR . Because all data is kept in the original un-tampered form throughoutthe data treatment process, different fitting algorithms and methods canbe employed. This is important for non-standard Poisson and Multinomial6tting routines[24], where it is important to keep integer neutron countsas opposed to normalized counts. Currently, fitting is supported through aseries of 1D cuts in reciprocal space for constant energy, or constant Q . Atpresent, interface tools with the uFit[25] program is under development andwill in the long run also interface with analysis software, such as SpinW[17].
3. Program Structure
The
MJOLNIR package is composed of several modules, each dedicated toa specific task. A virtual model of the instrument is generated using the
Geometry module. The actual data processing and visualization objects arelocated in the
DataSet module. The data fitting process is kept separatefrom the data objects in the
Statistics module in an effort to clearly sep-arate data conversion and data analysis, and to be also able to switch fittingroutines and software. At the time of writing this module is being mergedwith the capabilities of uFit[25], although these efforts are not reported inthe following. General functions and repeatedly used subroutines are locatedin the _tools module. One of them is a collection of triple-axis conversioncommands called
TasUBLibDEG , which was translated from the C ++ libraryTasUBlib based on Lumsden et. al. [26]. In the following sections, we high-light some key features of the different modules. The objects and methods in the
Geometry module have two principalpurposes; the first is the virtual representation of the instruments, the secondis to facilitate the generation of normalisation tables in which the calibratedpixel efficiency, final energy, and scattering angles of the detectors are stored.The normalisation has been separated from the implementation of the datastructure in an effort of generalisation, and to signify its connection with theinstrument as opposed to the data treatment. A virtual representation of theinstrument will be particularly useful in foreseen future features of the datatreatment such as calculations of the resolution function.
Virtual Instrument.
The creation of a virtual instrument is done using the
Instrument object and the subsequent
Wedge , Analyser , and
Detector ob-jects. These encode their real world counterparts, containing informationabout instrument relevant positions, directions, and d -spacings. The simula-tion of an instrument is implemented either via a script that adds the objectsto the instrument structure, or by means of an XML file.Different instruments feature varying setups. In the simplest case, there isa one-to-one correspondence between detectors and analyser. This is the case7or MultiFLEXX as each detector corresponds to a single analyser. The sit-uation is more involved at CAMEA as the instrument consists of 13 positionsensitive detectors inside a 8 ◦ wide wedge. Each detector detects neutronsscattered from 8 different analysers, typically corresponding to 24 to 64 dif-ferent energies, when the prismatic analyzer concept is employed. In suchcases where a detector receives neutrons from different analysers, a positionsensitive detector with a defined pixel numbering is simulated. This allowssplitting of detectors into sub-parts, identifying neutrons from the differentanalysers. All code that is connected to the data conversion and data treatmentis grouped in the
Data module. This includes the
DataFile and
Sample objects, which refer to instrument and sample parameters of individual scanfiles. This, for instance, enables masking options for specified data regionsin individual data files or across an entire data set.Experiments on multiplexing instruments often produce a number of datafiles with similar parameters that can be combined into a single data set. Forthis reason we created the
DataSet object that deals with multiple data filessimultaneously. It represents an abstraction of a list containing
DataFile objects, and hosts a number of methods and helper functions to performcuts and plots.
Conversion.
Once the experimental geometry and all instrument settings areknown, the conversion from the detector positions to reciprocal lattice unitshappens in two steps. Fist, the A angles and final energies of the instrumentreference frame are transformed into the instrument coordinate system, andthen to the reciprocal lattice unit system of the sample. Both conversionsare based on the formalism of TasUBlib [26].Most often, a data file arises by scanning one or more instruments set-tings, typically the incoming energy, the sample rotation, or the rotationangle of the analyzer-detector tank that impacts the scattering angle of alldetectors. However, MJOLNIR allows for the most general case of multiplechanging parameters, which happens when scanning both the sample rota-tion and scattering angle simultaneously.Data from each file is converted to a structure of shape n p × n detectors × n pixels , where n p , n detectors and n pixels is the number of scan points, detectorsand pixels per detector, respectively. One such object is created for A , A , ∆ E , qx , qy , H , K , L , the normalisation, monitor and neutron count I . Here,normalization refers to the combined analyzer and detector efficiency, whilethe monitor count keeps track of the neutron count in the guide monitor.8he converted data are the basis for any further process. We note that thenormalisation, monitor and I are not combined, but kept separately. Performing cuts.
Directly visualizing a complete scan file as a point cloudin 3D reciprocal space is often disadvantageous. Instead, cuts along specificlines or planes in reciprocal space are performed to highlight specific features.Due to the usual scarcity of regions of interest it may also be preferable toavoid cuts where only low scattering areas are present. Multiple cutting andcorresponding plotting methods have been implemented in
MJOLNIR . Theseinclude 1D cuts along a constant energy or momentum transfer line and 2Dintensity maps connecting multiple scattering points. These cuts are usefulto visualise the data, and are also the basis for further data processing suchas fitting. Further information on the visualising routine is given below.
Masking.
As CAMEA measures a large region in reciprocal space during asingle scan, additional unintended signals are sometimes detected. Thesemay be extrinsic features such as spurious peaks or additional phonons ormagnetic contributions that do not concern the addressed scientific question.It may be preferential to mask these contributions, before cuts or fits are pre-formed. In
MJOLNIR , this is supported by the
Mask module where different op-tions are available. They can be combined using standard Boolean algebraicoperations, which are described in detail in the
MJOLNIR documentation[12].
The main goal of any neutron scattering experiment is to gain deeperinsight into microscopic parameters of the studied material. This happenseither through direct determination of microscopic properties or indirectlythrough a comparison with theoretical models. In both cases some kind offitting is needed.
MJOLNIR provides a statistical tool, which allows for differ-ent statistical approaches. In particular when dealing with Poisson statistics,the normalisation and neutron intensity at each measured reciprocal latticeneeds to be taken into account [24]. An accurate fitting routine of such data iscurrently developed by merging
MJOLNIR with the existing software packageof uFit. We refer to the documentation of that uFit for details[25].
Three different interfaces have been created which serve different pur-poses, also providing different levels of control. The main interface is thescripting interface of
MJOLNIR which is imported in a python script. It sup-ports all features of the software and allows creating new virtual instruments,normalization tables, and to convert and visualise the data. The scripting9nterface is the backbone of the software. A limited command line interfacecan be used to shortcut some of the key functions. These include reporting,conversion and visualization functions, serving as a quick way of checkingdata during experiments. Third, we have also developed a graphical user in-terface meant to both allow quick figure generation through a point-and-clickinterface and to also guide users towards the scripting interface.
Command Line Interface.
Four commands have been created that act as ashort list for
MJOLNIR scripts. These are the
MJOLNIR3DView -method plottingthe interactive View3D window, the
MJOLNIRConvert -method convertingdata sets from HDF to NXS using a specified binning, the
MJOLNIRCalibrationInspector -method that displays the current normalization options, A values and finalenergies, and the MJOLNIRHistory -method that reports the data set content.In each case the respective data files are entered directly or through a filedialog. Further variables or input parameters can be attached to controlproperties such as the bin sizes used in conversion or the type of plot that isgenerated. An example of the
MJOLNIRHistory -method is shown in Fig. 3.
Figure 3: Output of
MJOLNIRHistory for data files 494 to 500 taken in 2018, showing scancommand and title ("MnF2 MV=80 Ei=10 2t=-20 10 K").
Graphical User Interface.
A user-friendly interface has been created for usersthat prefer to avoid using Python in a scripting-based environment. The in-terface is built directly on top of the
MJOLNIR package and provides accessto a variety of its key features. The tool can generate different plots andinspect experimental data on the fly. We also implemented the possibility todirectly generate Python scripts from the GUI interface. This is useful if theuser prefers to add customary modifications to figures, for instance. Adher-ing to the desire of being usable across many operating systems, we wrote
MJOLNIRGui using the python bindings of Qt[27]. In combination with FBSpackage[28] it allows for the creation of installers across different operatingsystems.
4. Using
MJOLNIR
In this section we show examples of how
MJOLNIR can be used duringan experiment. The data and a tutorial replicating the figures produced10 igure 4: Overview of the graphical user interface of
MJOLNIR denoted
MJOLNIRGui , whereblue coloured buttons suggest next steps of the data treatment. Selecting a data file in adata set shows its properties in the right upper-most window. here can be found in the documentation of
MJOLNIR [12]. The presented spinwaves were acquired on a large MnF single crystal at T = 10 K acquired atthe CAMEA instrument at PSI. Further details are found in the CAMEAcommissioning article[9]. 11 .1. Loading and converting data Using the
MJOLNIRGui , we first create a new Data set, then add the datafiles, load them into
MJOLNIR , and finally convert the data to the recipro-cal lattice space. These steps are completed within the GUI, or using thescripting interface.
For a quick overview of the data, the Viewer3D method is particularlyuseful. The method bins and plots the data in the instrument coordinate sys-tem ( Q x , Q y , ∆ E ) or the reciprocal lattice coordinate system, ( P , P , ∆ E ).The data is binned via the SciPy HistogramDD into equi-sized voxels, whosesize can be specified by the user. The main reason for utilising a constantbinning is rapid processing time. We chose to perform the binning in the or-thonormal sample coordinate system to truthfully visualise the data, whichwould not be the case if it was performed in a geometry where the recipro-cal lattice basis vectors had different lengths. Alternatively, one could plotconstant energy planes where in a polar coordinate system. This is becausean A rotation represents a rotation around the origin, which yields almostequally distributed data points as a function of | Q | . We implemented thisoption into the plotQPlane method.The View3D module comes with an interactive GUI that allows the userto step through the data, plane by plane, along three different directions, i.e. ,along the two projection vectors and the energy. It is possible to perform cutsalong arbitrary directions, for which more computational power is required.Examples of the output of View3D are shown in Fig. 5, and the script neededto produce this figure is given in appendix Appendix A, as generated by theGui interface.
The data may be understood deeper when plotting the intensity as func-tion of energy and Q along a path in reciprocal space. The plotCutQELine -module has been developed for this purpose. The code is composed ofsmaller building blocks, ensuring a successful visualisation of arbitrary two-dimensional cuts with different binning sizes and relative distances in recip-rocal space.Each cut unifies a collection of one-dimensional cuts of a certain Q-widthand constant energy window. An example is shown in Fig. 6a using 5 different Q points of MnF . A mouse-over function displays the normalized intensity,the central relative lattice position, the normalization, monitor and the num-ber of binning points to create the shown pixel intensity.12 igure 5: Series of pictures from Viewer3D showing data from MnF for 2 differentconstant- E planes in Figs. a and b and two ( q, E ) cuts along the principal directionsin Figs. c and d. The plotting method also allows to display 2D planes embedded in athree-dimensional figure as shown in Fig. 6b. The plots have been combinedwith constant energy plots generated by the plotQPlane method, and thecolour map is chosen such that low intensity points are transparent.13 igure 6: a : Intensity plotted as function of energy and Q for MnF using plotCutQELine and 5 Q points. b : 3D visualisation of scattering intensity for MnF . Transparent partssignify low intensity.
5. Conclusion
We have developed the
MJOLNIR software package to convert, visualizeand analyse data from multiplexing triple-axis instruments. It has alreadybeen successfully used during the commissioning of CAMEA at PSI, and theanalysis of the collected data thereof. The package will be further extendedin the future to include direct support of other multiplexing instruments,prediction of spurions, experimental planning tools, advanced fitting tools,and resolution and absorption calculations. We anticipate
MJOLNIR to greatlybenefit users of multiplexing triple-axis instruments.
6. Conflict of Interest
We wish to confirm that there are no known conflicts of interest associatedwith this publication.
7. Funding
This research was founded by the Danish Agency for Research and Innova-tion through DanScatt grant 7055-00007B. J.L. was supported by Nordforskproject 81695: NNSP School, and by the Paul Scherrer Institut.HJ was supported by the European Union’s Horizon 2020 research andinnovation program under the Marie Skłodowska-Curie grant agreement No701647. 14 cknowledgements
Many people have partaken in discussion concerning the software require-ments and development. We would especially like to thank Christof Nieder-mayer and Jonas Okkels Birk for many discussion early in the developmentprocess. This laid much of the foundation for its formulation. Also PaulSteffens and Siqin Ming have participated in many fruitful discussions. Weespecially acknowledge them for their insights into Voronoi methods andadaptive binning. We also thank the people standing in as guinea-pigs forthe first versions of the software. This includes Sofie Janas, Morten LunnHaubro, Virgile Favre, Luc Testa, and Stephan Allenspach.
References doi:10.1016/j.physb.2006.05.371 .[4] W. Schmidt, M. Ohl, IN12-UFO: new frontiers for cold triple-axisspectroscopy, Physica B: Condensed Matter 385-386 (2006) 1073–1076. doi:10.1016/j.physb.2006.05.343 .[5] F. Groitl, D. Graf, J. O. Birk, M. Markó, M. Bartkowiak, U. Filges,C. Niedermayer, C. Rüegg, H. M. Rønnow, CAMEA - a novel multiplex-ing analyzer for neutron spectroscopy, Review of Scientific Instruments87 (2016) 035109. doi:10.1063/1.4943208 .[6] O. Soboeov, J. T. Park, Puma: Thermal three axes spectrometer,Journal of large-scale research facilities JLSRF 1 (2015) A13. doi:10.17815/jlsrf-1-36 .URL http://jlsrf.org/index.php/lsf/article/view/36 [7] J. A. Lim, K. Siemensmeyer, P. Čermák, B. Lake, A. Schneidewind, D. S.Inosov, BAMBUS: A new inelastic multiplexed neutron spectrometer forPANDA, Journal of Physics: Conference Series 592 (1) (2014) 012145. doi:10.1088/1742-6596/592/1/012145 .158] J. A. Rodriguez, D. M. Adler, P. C. Brand, C. Broholm, J. C. Cook,C. Brocker, R. Hammond, Z. Huang, P. Hundertmark, J. W. Lynn, N. C.Maliszewskyj, J. Moyer, J. Orndorff, D. Pierce, T. D. Pike, G. Scharf-stein, S. A. Smee, R. Vilaseca, MACS - a new high intensity cold neutronspectrometer at NIST, Measurement Science and Technology 19 (2008)034023.[9] J. Lass, D. Graf, F. Groitl, C. Kägi, R. Müller, R. Bürge, M. Schild,M. S. Lehmann, A. Bollhalder, P. Keller, M. Bartkowiak, U. Filges,F. Herzog, U. Greuter, G. Theidel, L. Testa, V. Favre, H. M. Rønnow,C. Niedermayer, Design and performance of the multiplexing spectrom-eter CAMEA, To be Accepted (2020) 1–12.[10] S. Janas, J. Lass, A.-E. Tutueanu, M. L. Haubro, C. Niedermayer,U. Stuhr, G. Xu, D. Prabhakaran, P. P. Deen, S. Holm-Dahlin, K. Lef-mann, Classical spin liquid or extended critical range in h-YMnO , Tobe Accepted 1 (2020) 3–8.[11] S. Allenspach, P. Puphal, N. Laflorencie, B. Normand, F. Mila,C. Rüegg, E. Pomjakushina, C. Krellner, G. S. Tucker, J. Lass, C. Nie-dermayer, s. Imajo, Y. Kohama, M. Jaime, J. Link, I. Heinmaa,S. Krämer, M. Horvatić, R. Stern, F. Weickert, Three dimensional crit-icality in the quasi two-dimensional quantum magnetba . sr . cusi o doi:10.1109/MCSE.2007.55 .[14] P. Virtanen, R. Gommers, T. E. Oliphant, M. Haberland, T. Reddy,D. Cournapeau, E. Burovski, P. Peterson, W. Weckesser, J. Bright,S. J. van der Walt, M. Brett, J. Wilson, K. Jarrod Millman, N. May-orov, A. R. J. Nelson, E. Jones, R. Kern, E. Larson, C. Carey, İ. Polat,Y. Feng, E. W. Moore, J. Vand erPlas, D. Laxalde, J. Perktold, R. Cim-rman, I. Henriksen, E. A. Quintero, C. R. Harris, A. M. Archibald,A. H. Ribeiro, F. Pedregosa, P. van Mulbregt, S. . . Contributors,SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python,Nature Methods 17 (2020) 261–272. doi:https://doi.org/10.1038/s41592-019-0686-2 . 1615] The pandas development team, pandas-dev/pandas: Pandas (Feb.2020). doi:10.5281/zenodo.3509134 .URL https://doi.org/10.5281/zenodo.3509134 [16] MATLAB, 9.7.0.1190202 (R2019b), The MathWorks Inc., Natick, Mas-sachusetts, 2018.[17] S. Toth, B. Lake, Linear spin wave theory for single-Q incommensu-rate magnetic structures, Journal of Physics Condensed Matter 27 (16)(2015) 166002. doi:10.1088/0953-8984/27/16/166002 .[18] K. H. Andersen, et al., The instrument suite of the european spallationsource, Nucl. Instr. Meth. A 957 (2020) 163402.[19] O. Arnold, J. C. Bilheux, J. M. Borreguero, A. Buts, S. I. Camp-bell, L. Chapon, M. Doucet, N. Draper, R. Ferraz Leal, M. A. Gigg,V. E. Lynch, A. Markvardsen, D. J. Mikkelson, R. L. Mikkelson,R. Miller, K. Palmen, P. Parker, G. Passos, T. G. Perring, P. F. Pe-terson, S. Ren, M. A. Reuter, A. T. Savici, J. W. Taylor, R. J. Taylor,R. Tolchenov, W. Zhou, J. Zikovsky, Mantid - Data analysis and visu-alization package for neutron scattering and µ SR experiments, NuclearInstruments and Methods in Physics Research, Section A: Accelerators,Spectrometers, Detectors and Associated Equipment 764 (2014) 156–166. doi:10.1016/j.nima.2014.07.029 .[20] F. Groitl, R. Toft-Petersen, D. L. Quintero-Castro, S. Meng, Z. Lu,Z. Huesges, M. D. Le, S. Alimov, T. Wilpert, K. Kiefer, S. Gerischer,A. Bertin, K. Habicht, MultiFLEXX - The new multi-analyzer at thecold triple-axis spectrometer FLEXX, Scientific Reports 7 (1) (2017)1–12. doi:10.1038/s41598-017-14046-z .[21] J. O. Birk, M. Markó, P. G. Freeman, J. Jacobsen, R. L. Hansen, N. B.Christensen, C. Niedermayer, M. Månsson, H. M. Rønnow, K. Lef-mann, Prismatic analyser concept for neutron spectrometers, Reviewof Scientific Instruments 85 (11) (2014) 113908. arXiv:1408.0551 , doi:10.1063/1.4901160 .[22] H. M. Rønnow, K. Lefmann, N. Christensen, C. Niedermayer, F. Ju-rányi, M. Markó, J. Birk, M. Bertelsen, J. Larsen, P. Freeman, ESSInstrument Construction Proposal CAMEA (2014).[23] P. Freeman, J. Birk, M. Marko, M. Bertelsen, J. Larsen, N. Chris-tensen, K. Lefmann, J. Jacobsen, C. Niedermayer, F. Juranyi, H. Røn-now, Camea ess - the continuous angle multi-energy analysis indirect17eometry spectrometer for the european spallation source, EPJ Web ofConferences 83 (2015) 03005.[24] J. Lass, M. E. Bøggild, P. Hedegård, K. Lefmann, Multinomial, Pois-son and Gaussian statistics in count data analysis, Journal of neutronResearch, accepted (2020) –.[25] G. Brandl, ufit:index [mlz - wiki], https://wiki.mlz-garching.de/ufit:index, Accessed: 2020-06-04 (2018).[26] M. D. Lumsden, J. L. Robertson, M. Yethiraj, UB matrix im-plementation for inelastic neutron scattering experiments, Journalof Applied Crystallography 38 (3) (2005) 405–411. doi:10.1107/S0021889805004875 .[27] Qt | cross-platform software development for embedded & desktop.[28] M. Herrmann, Python and qt simplified. create a python gui in minutes,https://build-system.fman.io/, Accessed: 2020-05-04 (2020).18 ppendix A. Viewer3D script The following script was generated by
MJOLNIRGui using the MnF data. import m a t p l o t l i b . pyplot as p l t try : import IPythons h e l l = IPython . get_ipython ( )s h e l l . enable_matplotlib ( gui= ’ qt ’ ) except : passfrom MJOLNIR import _tools from
MJOLNIR. Data import
DataSet import numpy as np from os import pathd a t a F i l e s = _tools . f i l e L i s t G e n e r a t o r ( "483 −
489 ,494 − − f i l e ( s ) . MnF2. c o n v e r t D a t a F i l e ( binning = 8 , s a v e F i l e=F a l s e ) − s i z e d v o x e l s can be done by Viewer = MnF2. View3D ( 0 . 0 5 , 0 . 0 5 , 0 . 0 5 , g r i d=True )
Viewer . c a x i s =(0 ,5 e − p l t . show ( )p l t . show ( )