projects

Dark matter search with ultracold neutrons

In this joint venture with many collaborators we analysed the time series of the measurements of the electric dipole moment of the neutron. We looked specifically for oscillations that could be induced by Dark Matter.

We used the Least-Squares Spectral Analysis, so that we could estimate a spectrum of a time series, which is unevenly spaced.

The results have been published.

It is part of my work in the Precision Physics at Low Energy group at ETH.


Next generation active magnetic field stabilisation

When it comes to stabilising magnetic field, passive methods, notably μ-metal, work best in the high-frequency regime. In very low frequencies, below 1Hz, and especially DC, μ-metal is susceptible to become magnetised and produce magnetic disturbance itself. In this regime active magnetic field stabilisation shines.

The idea is to put in the volume where the field is to be stable with magnetic field sensors and around the volume build a large coil system. Then connect the sensors and the coils in a feedback loop such, that the coils dynamically produce a field counteracting any detected disturbance.

This is not unlike the active noise cancellation in headphones. Physical barrier, like over-ear headphones or ear plugs, works good for high-pitch noise, but the low murmur gets through. Like with the μ-metal. Headphones with an active sound cancellation detect noise and play one exactly counteracting it, which works for the low frequencies very well.

The distinct feature of this project is a novel way to construct the coils. It allows the volume where the field is effectively stabilised to be only a bit smaller then the coils themselves.

Fluxgates are used as magnetic field sensors. DAQ is based on EtherCAT system with IgH's EtherCAT Master for Linux. The programming was done in julia.

It is part of my work in the Precision Physics at Low Energy group at ETH.


A novel method of coil design

Calculating the magnetic field a coil produces is a standard textbook problem. The inverse one, to find a coild that would produce a desired field, is surprisingly difficult. I tackled it with the emphasis put on simplicity. In particular I wanted to be able to easily build the designs in a laboratory.

I design coils producing an arbitrarily shaped magnetic field by restricting the path of the coil’s wires to a regular grid. The solution is then found by a simple least squares minimum. The grid restriction makes it easy to build systems of many coils.

The method has been published.

The code can be found on github, including an example notebook.


Room-scale magnetic field mapper

In precision magnetometry knowing the surroundings magnetically is of paramount importance. Ideally, one would like to have a map of the magnetic field in the laboratory. This project is a rig to do exactly that.

There is a 2.5m high movable tower with ten vector magnetic field sensors - fluxgates, read out continuously. There is also a fixed, L-shaped part with three 15m long string potentiometers mounted. The strings are connected to the tower. The length of the strings is also measured continuously and trilateration is used to determine the location and orientation of the tower.

It is enough to sweep a room with the tower to collect a vector map of the magnetic field, with a reproducibility down to 0.2μT (in the magnetic field of the Earth ≈50μT).

DAQ is based on a PXI crate, written in LabVIEW. Data analysis in Python.

It is part of my work in the Precision Physics at Low Energy group at ETH. I am grateful to the students who helped to pioneer this as part of their semester projects.


Distributed remote magnetometers

SenseHAT is an add-on to the ubiquitous RasperryPi single-board computer. SenseHAT features a number of sensors, among them an Inertial Measurement Unit (IMU), part of which is a magnetometer. Measurements sensitive to magnetic disturbance can benefit from a perimeter of magnetometers set around them in a way, that an external disturbance can be distinguished from an internal one.

One patch cable is used for data transfer (TCP), timing synchronisation (PTP) and power supply (PoE).

The modules are programmed in Python.

It is part of my work in the Precision Physics at Low Energy group at ETH. I am grateful to the students who did large part of the work as part of their semester projects.


PXI μTimer

The neutron electric dipole moment experiment at PSI, Switzerland works in automatically executed cycles. Cycles are initiated with a hardware trigger, signalising that a pulse of ultracold neutrons is about to come. The apparatus needs then to rearrange itself so that the incoming neutrons are directed straight into the measurement chamber. Then the measurment procedure is performed, manipulating the spins of the neutrons. Finally, the pneumatically operated shutter opens, allowing the neutrons to drop into the detector.

The timing accuracy needs to be on the microsecond level. The solution is to synchronise the systems with a NI PXI-6683 card. PXI is an extension of a PCI bus, adding advanced timing and synchronisation, dedicated for measurements and instrumentation.

The project was to program, in LabVIEW, the PXI controller. The programmed controller supports fully flexible scheduling, which can be programmed via a SCPI interface over TCP/IP.

It is part of my Master's Thesis.


Precision FID signal analysis

In the neutron electric dipole moment experiment at PSI, Switzerland the most accurate measurement of the magnetic field is done with the mercury comagnetometer. Polarised Hg-199 atoms precess coherently in the magnetic field, the frequency directly proportional to the field's strength. A polarised light shines through the atoms, the absorption dependent on the phase of the precession. The intensity of the light on the other side, measured with a photomultiplier, oscillates with the frequency of the atoms' precession. During the measurement the atoms loose coherence, causing the amplitude of the oscillation to decline. A signal of this type is called a Free Induction Decay (FID).

The task is to estimate the frequency of the signal measured by the photomultiplier as accurately as possible. The challenge is that the strength of the magnetic field, and thus frequency of the signal, varies during the precession.

One solution is to estimate the phase at the beginning and the end of the signal (the frequency is the phase difference divided by the length of the signal), assuming the frequency being constant only over a limited time. The project was to find out how big can the regions be without the estimation becoming sensitive to the fluctuations in the frequency.

It is part of my Master's Thesis.


Portable Environmental Radiation Mapper

Components:

The battery-powered device measures the radiation intensity (the count rate) together with position. Intended to be carried around and collect data to create a map of the background radiation.

Below are maps of the Cracow and Upper Silesia Area in Poland. The colour corresponds to counts per minute.


dummy WASA simulator

WASA-at-COSY was a close to 4π detector at the COSY synchrotron in Forschungszentrum Jülich. It featured a deuteron pellet target - droplets of deuterium dripping through the proton beam, right in the centre of the WASA detector.

All modern particle detectors have corresponding detailed simulations. These are, however, computationally expensive. The project was to create a program that given the products of the proton-deuteron collision would with a low computational cost assess a sensible reaction of the detector.


An AI study

A simple game written to study AI. The goal to move around the board with obstacles, collect fruits and gather more points than the opponent guided by the computer. The code is available on github.


Typing simulation

A visual study of the efficiency of typing on different keyboard layouts. Written in Python with Cairo. The code is available on github.


Parallel park geometry study in Python

An interactive study of the geometry of a car during parallel parking. Written in Python with OpenGL. The code is available on github.