Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page provides an overview of the status and inner workings of the TES Readout development and eventual implementation.

Table of Contents

Description of TES

 

TESMap.pdf

 

PDF
nameTESMap.pdf

Configuration Steps

The following are an overview of the main configuration steps for the TES-SMURF detector to go from turn the system on and start collecting data.

To be completed as more information becomes available.

  1. Configure the main registers of the SMURF board (to be detailed)
  2. Set the bias of the cryogenic amplifiers. The bias are provided by the manufacturer. 
  3. Find the resonator frequencies - 
    1. Each multiplexed line must be scanned in frequency. The resonators are situated where the amplitude of the signal drops and there is a phase discontinuity. The phase discontinuity is used to determine the most precise frequency of the resonators. If 2 resonators are too close, one needs to be turned off to avoid crosstalk.
  4. SetupNotches - Find the transformation η(I,Q) = (I', Q') where η is a complex transformation. We want to move the operation point so that we are at the (I', Q') = (1,0) point and that all variations maximized their projection on Q'. 

...

Description of TES

 

 

  1. Image Added
  2. Setup the flux ramp. The Squids are connected to the flux generators in large groups. Each group can have a different flux ramp.
    1. Flux amplitude
    2. Ramp amplitude
  3. At this point it is possible to track the phase of the carrier frequency and collect data but the TES still need to be configured.
  4. The voltage for the TES is selected by tracing the IV curve, from which we get the RTES curve. We wish to be as close as possible to the bottom part of the transition without hitting instability effects.

 

IV curve and RI curve of TS when a current ramp is appliedImage Added

 

 

...

 

 

Benchmarks

This table lists the latest benchmarks.

Currently, it evaluates the average time rate (over 1e6 iterations) to complete the number of products indicated as well as the sum of the resulting vector. The length of the vector varies according to the number of samples.The code currently uses a simple decision tree which directly indicates how many filters to use. In the future this tree will determine the case to use depending on which windows have a hit.one linear transformation and two inner products. Each pixel has its own ring buffer of 10 windows, each window has 100 data samples of uint_16. The buffers are refilled as the reader nears the empty flag from Random data. The buffers are implemented using Eigen Matrix library.

These benchmarks were obtained os psanagpu116, using O3 and vectored optimization. As a reference, 10 kHz operation gives a time window of 100 µs.

Code Block
languagebash
titleCompile flags
g++ -std=c++11 -O3 -DNDEBUG -march=native -IEigen main.cpp

 

All values are in μs.

Number of products

Number of samples

12345
1000.0610.0740.091  
2000.1130.1450.176  
3000.1500.1900.241  
4000.2000.2660.329  
5000.2390.321   
6000.2790.378   
7000.3180.435   

 

 

The following graph shows the calculation rate per pixel as a function of the density of hits. While the data generation is not in the scope of the timer, it may still affect the start and stop of said timer. Clemens algorithm pre generates all data and thus times one continuous loop. Thus if there are no events, the loop is very very efficient. However, the Eigen library used in the most recent version of the code does accelerate the calculation of the inner products, as shown by the better performance at higher hit rates. 

Image Added

 

Latest code :

Latest integration iteration (Working copy)

 

Original codes before combinations.

Code with Eigen (Audrey)

Code with switch case (Clemens)

References

Ullom and Bennet. Review of superconducting transition sensors for X-ray and gamma-ray spectroscopy

Irwin and Hilton. Transition-edge sensors.

 

Tasks

TaskStatusComment
Create fake data vectors
Status
titleNot started
Using random number vectors
Implement event detection algorithm
Status
titleNot started
 
Program arguments for benchmarking
Status
colourGreen
titleDone

Arguments for the size of the vectors and the number of array products used

Preprocessor arguments

Decision tree for event cases
Status
colourGreen
titleDone
Switch case tree for given number of filters - reusable for different cases
Input data from simulation
Status
titleNot started
 
Create circular buffer
Status
colourGreen
titleDone
 
Optimize loop behavior
Status
colourYellow
titlein progress
 

...