A Mass Toy - The Documentation


The Masstoy applet is now in test use. This applet allows you to make theoretical experiments with neutrino mass matrices. Especially, you can explore the consequences of non-trivial many-flavour mixing scenarios. Presently it serves as an educational toy - the results do not meet the requirements of scientific rigor.

Mass Toy has been written with the Java 1.1 specification, and compiled with JDK 1.1.6. Java 1.0 is no longer supported, the last version compliant with 1.02, Mass Toy 0.41 is available as a zip file.


Features that work:

Some explanations

Laboratory experiments: Solar neutrinos: Atmospheric neutrinos: Dark Matter: Supernova: Early universe: completely mishandled so far.


In my machine (PP180), the diagonalization of the mass matrix is immediate, as are all the other tasks, except the MSW conversions for solar neutrinos. The matter conversions typically give useful results in a few seconds, to study all 500 points takes usually less than a minute. For very complicated mass matrices more time is needed. On the other hand, with my home machine (486/33) diagonalization takes several seconds, and the MSW conversions takes minutes.

The code is designed to be loadable class by class. It should start running when the first class is loaded, and the rest of the classes may be loaded on demand. Nevertheless, many systems load all classes upon initiation of the program, even if those classes are never needed (Probably this feature is related to Just In Time compilers). At best, this improves the performance, since new classes are already loaded. At worst the loading of unnecessary classes takes lots of time before the execution can start.

Description of the code

User interface

Uses a Frame class to display the input and output panels. Actions and options are chosen from the menu.

Diagonalisation of the matrix

The matrix is diagonalized by Jacobi rotations. The routine is fast and accurate, and usually converges by less than ten rotations.

Inside the integration of the neutrino wave penetrating a star, a lighter first order diagonalization routine is used. Although it does not diagonalize the matrix completely, there will not be any accumulated error due to that.

Solar neutrinos

Vacuum oscillations are treated by the usual oscillation formula, taking the average for rapid oscillations.

Matter effect is modeled by a numerical integration over the Sun. The code has been optimized for speed rather than accuracy. It has been designed for a numerical accuracy of 2 %, and at least for solar neutrinos its accuracy is better than 5 %, for most parameters.

In the integration, the neutrino wave functions is divided to the absolute value and the phase. This allows to treat the absolute value accurately enough, while the evolutions of the phases can be computed by lighter accuracy.

The many component neutrino wave is always taken to be in the local eigenbasis of the medium. While the eigenbasis changes, the effective hamilton operator acquires non-diagonal components proportional to the derivative of the mixing matrix. Compared to the straight-forward integration in a fixed basis, the eigenbasis method provides better accuracy, since there is no unnecessary oscillation among the integration variables. Most runs require O(100) steps, though the penalty is that tediuos matrix multiplications have to be done at each step. Peculiarly, the code is fastest for full adiabatic conversions, while it is very slow for very non-adiabatic conversions by rapid change of the potential. As such cases lead to very small conversions, the code tries to detect abrupt crossing of the resonance, to pass it smoothly.

The MSW routine is run as a separate thread. The plotting is also its own thread. Unless you have a multiprocessor mahcine, the threads are not run concurrently. However, this provides the essential benefit of seeing how the integration proceeds, until all about 144 runs have been computed. Often the first points are enough to give an image what is going on. Later points add accuracy. Sometimed the solar screen is not updated regularly. To force the update, repress the solar neutrino button, or minimize and maximize the browser window, or do something similar, depenping on the platform.

The finite size of the neutrino production region is accounted for by taking an average of 17 different initial points. Angular distribution is still incomplete.

For the Sun and the solar neutrinos the models and data by John Bahcall is used. (BP 98)

The predictions for the experiments are calculated by computing the expected neutrino fluxes within the sensitivity of the experiments. The code uses tabulated cross sections and solar fluxes, sums over the energy spectrum, and takes the neutral currents into account in water detectors.

Other parts of the code

Nothing special, all straight forward.

Hardware and software requirements

The applet has been designed to be run with the following minimal configuration: It probably works for less than minimal machines, but then I cannot guarantee that it is useful for anything. (I do not guarantee it anyway, so never mind). More power is desirable for excessive studies of complicated matter conversion scenarios. A PC with Pentium Pro, or a risc-based workstation is recommended.
Note that a good software is essential to run the Java code. Outdated Java browser without a good JIT compiler can freeze even a supercomputer.
Power users may load the classes on their disk and run them directly. A good java applet viewer may perform better than web browser, and some systems allow a compilation to machine code.

The program runs also as a standalone application. Load masstoy.zip, unzip it into a directory MassToy and try
java MassToy.Masstoy, (in the parent directory). This procedure may be machine dependent, consult the documentation of your system.

Known bugs, misfeatures or limitations

Bugs: Limitations: If you get an error message on your Java console that is not listed above, please send me a message explaining the conditions in which the error occurred.

The applet has been tested in the following platforms (not necessarily the newest version):

The applet looks very ugly now. The ugliness is a way to get around of bugs or features in some systems. (Do not believe the marketmen who claim that Java is a platform-independent language. Nothing is idependent on the platform, nothing, believe me.)

Some tips and hints

If the program does not run, check the following:

Release notes

The history : The future:


I would appreciate receiving feedback how this applet performs in different platforms. If it runs or not in your host, send me mail.
Back to the Ultimate Neutrino Page
10-August-1998 Juha Peltoniemi