MaltaTestbeamSPS2022

Introduction

This page contains information concerning the CERN ATLAS Team Tracker group (EP-ADE-TK) Test-beam campaign in SPS in 2022. A MALTA telescope is installed in the North Area SPS H6A beamline location PPE146 during the whole beam time of 2022. The goal is to demonstrate radiation hardness and timing performance of post-processed MALTA2 samples.

Contact People

Run coordinator Milou van Rijnbach Milou.van.Rijnbach@cernNOSPAMPLEASE.ch +41 75 411 0942
Contact person Valerio Dao Valerio.Dao@cernNOSPAMPLEASE.ch +41 75 411 6323
Contact person Carlos Solans Carlos.Solans@cernNOSPAMPLEASE.ch +41 75 411 5518
ATLAS test-beam coordinator Andre Rummler andre.rummler@cernNOSPAMPLEASE.ch +41 75 411 2448
H6 Beamline Physicist Dipanwita Barenjee Dipanwita.Barenjee@cernNOSPAMPLEASE.ch +41 75 411 4065
SPS Desk in the CCC Operator on call   77500 or 70475
Nitrogen system expert David Jaillet David.Jaillet@cernNOSPAMPLEASE.ch +41 75 411 7151

Links

Telescope Setup

The EP-ADE telescope is a MALTA based multi-plane tracking and read-out system composed of 6 reference planes.

Each of the planes is connected to a Kintex7 KC705 evaluation board that provides a fast trigger signal to a Trigger Logic Unit (TLU), and receives a L1A signal to enable the recording of hits inside a predefined time window. The evaluation boards have a static local IP address assigned by the position of the DIP switches on the board. They are connected through USB to a DAQ PC, and trough RJ45 patch cords to an Ethernet Switch of a local network. The power supplies are controlled through RS232 via USB-to-RS232 adapters connected to the DAQ PC. The DAQ PC is connected to an Ethernet Switch of the CERN network. There is a router connected to the local network switch on the LAN side and to the CERN network on the WAN side.

TO BE ADJUSTED

Port Local IP address Plane Type
50000 192.168.200.20 TLU None
50001 192.168.200.1 1 EPI
50002 192.168.200.10 2 EPI
50003 192.168.200.11 3 Cz
50004 192.168.200.12 4 Cz
50005 192.168.200.13 5 EPI
50006 192.168.200.14 6 EPI
50007 192.168.200.15 7 DUT1
50008 192.168.200.16 8 DUT2

To flash the FPGA from the command line use :

 python fpgacliprogrammer.py -h 

Trigger Logic Unit

A Trigger Logic Unit (TLU) is responsible for providing a common trigger for the Data Acquisition (DAQ) and the synchronization of the telescope elements including the DUT(s). It requires one or more input fast signals from the trigger detectors, processes the signals and using a combination logic, it ignores or propagates the trigger to the read-out planes as a single accept signal (L1A). The hits which are not associated with a L1A signal are not recorded. The MALTA TLU is based on a Kintex-7 KC05 evaluation board to process the combination logic and provide on-line monitoring. The TLU is interfaced using (1.5 m long) SMA cables and connectors to the planes and a scintillator through two custom SMA to FMC converter cards. An ethernet port is connected to the network for configuration and monitoring. An USB port is used for firmware programming onto the FPGA.

The scintillator allows the TLU for precise timing measurements. The coincidence of MALTA planes has a time resolution of several ns but basing the timing reference on a scintillator ensures a sub ns precision. The coincidence of the signal from the telescope planes is used to create an enable window and such signal is logically summed (AND) with the scintillator signal and directly sent to the output to preserve the scintillator timing.

Telescope network

The telescope network can be rebooted remotely. The main router (ep-ade-gw-02) power can be controlled using the PDU control page: https://pcatlitkpdu02.cern.ch (Currently IP address 128.141.41.214)

The username is apc! Currently the router is using outlet 1. It can be controlled from Status > RPDU > Outlet and selecting the router.

The PDU uses an independent access to the network, meaning rebooting the router will not affect the PDU.

Data taking procedures

Open the VNC connection

The DAQ is done from PS11, however we connect first to PS12 and ssh into PS11.

  1. If you are at CERN you can simply connect to PS12 by using:
     open vnc://pcatlidps12 
  2. If you are outside CERN you have to create an ssh tunnel. Be aware that running remotely implies that there is from time to time a delay in the PC interface, so be patient and don’t start clicking like a maniac. However, when the delay is very large, it might help to disconnect and reconnect again.
    1. Create a tunel from PS12 to your computer with:
       ssh -L 10002:pcatlidps12:5900 <username>@lxplus.cern.ch 
      Alternatively you can use:
       ssh -L 10002:pcatlidps12.cern.ch:5900 <username>@lxtunnel.cern.ch
    2. On a Mac, open another terminal and type:
      open vnc://localhost:10002
      In TigerVNC you can connect to:
      localhost:10002

Power up the telescope

Before starting a run, make sure MALTA is ON and DUT is ON. This can be verified by using the following command “monitorPSU”. This command can be run from any folder.

  1. With “MALTAON” the Epi Telescope-planes are ramped to SUB=6 V. The Cz Telescope-planes are ramped to SUB=30 V.
  2. The DUT is ramped separately with “DUTONMALTA2” to 6 V. Depending on which SUB you want to run your tests with, you can ramp this voltage further with the command below. Note that these commands are only used for MALTA2. When one uses a MALTA as a DUT, use "DUTON".
    MALTA_PSU.py -c rampVoltage DUT1_SUB  <target_voltage> <ramping time> 
    MALTA_PSU.py -c rampVoltage DUT2_SUB  <target_voltage> <ramping time> 
  3. When the voltage step is large, make sure to increase the ramping time (for instance 30). This is required when you take the data “manually” otherwise this will be done automatically with the automaticRun_desync(explained later).
  4. In case the voltage of the Cz planes needs to be lowered you can use
    MALTA_PSU.py -c rampVoltage SUBH  <target_voltage> <ramping time> 

Start the TLU

The TLU GUI allows the configuration of the telescope setup to select the number of planes, scintillator and DUT(s). It provides full control over the telescope run and adjustable settings are: connection parameters, control of the telescope run (stop, start, pause), enable or disable input and output planes, set veto duration and width of each plane signal as well as maximum trigger rate. It displays the trigger rate and counters for input plans and L1A trigger. Start the Trigger Logic Unit (TLU) with the command:

python MaltaSW/MaltaTLU/share/TLU_GUIv3.py --hgtd

  1. The TLU can trigger on 4 planes and a scintillator. The trigger planes are plane 2, 3, 5 and 6. Usually a max trigger rate of 50000 Hz and trigger length 120 ns is used. If anything changes in this configuration this will be communicated. The settings for the trigger logic should be documented in the SPS testbeam spreadsheet (see link at the top of this document).
  2. Check router hostname and port (ep-ade-gw-02 and 50000). To connect the TLU, simply click “connect”
  3. Options that can be passed to the TLU_GUIv3.py
     
       Verbose: -v
       Online plot rate: -p 
       Save to root file: -s
       Refresh rate in ms (default 100) : -r 
       

Starting a Run

There exist two ways to launch a run.

  1. You can do it manually by using the following command in MaltaDAQ:
    MaltaMultiDAQ -c <configs/configurationfile> -r <runnumber>
  2. Or you can use in MaltaDAQ:
    automaticRun_desynctest.py
This has to be modified to include : the configuration files, the substrate voltages, and the number of events per point.

minutes = 2000000  #triggers in real life !!!
SUB_values  = [[6,6]]#,[7,7],[8,8],[9,9],[10,10],[11,11]]#, [15,15], [20,20], [25,25], [30,30]]
#SUB_values  = [6,9,12,15,18,21]
config_files = [
    "configs/config_SPS_W5R10_IDB80_ITHR120__W18R19_IDB80_ITHR120.txt",
    "configs/config_SPS_W5R10_IDB50_ITHR50__W18R19_IDB40_ITHR20.txt",
    "configs/config_SPS_W5R10_IDB40_ITHR20__W18R19_IDB40_ITHR20.txt"
]

The manual option is interesting if you want to look at the noise rate or do a quick check. For both options it is important to use the correct configuration file (in automatic run this is edited in the script, for the manual run this is parsed as an argument).

  1. The configuration file contains the configuration for the telescope planes and the DUT. This means that this file contains the values for ITH/IDB/ICASN/IBIAS/IRESET/VCASN/VRESET_P/VRESET_D/VCLIP, of most interest are ITH and IDB. Furthermore, the file contains the pixels that should be masked for every plane for the corresponding configuration.
  2. In case you do the manual run, you parse the run number as an argument. The last used run number should be listed in the spreadsheet, but the data of the latest run can also be found in MaltaDAQ/TelescopeData.
  3. The automatic run requires editing the amount of events you want to run with (now this is called “minutes”), the sub value(s), and the configuration file. This script launches the run automatically and provides a print out in the terminal with some useful information such as the rate etc. The run will be closed automatically and all the important parameters (efficiency / configuration / cluster size ) are written into a SQL database.

Procedures for manual data taking

Now follow some instructions on how to proceed with the manual data taking through the MaltaMultiDAQ script.

  1. To start the run, make sure the monitoring GUI with the 8 planes (6x telescope + 2x DUT) pops up and then click run in the TLU GUI (after setting up the TLU as described before).
  2. Depending on how many events you require (shown in the plot as “nTrigger”), you can terminate a run by clicking “stop run” in the TLU. The remote connection is sometimes slow, so make sure to click only once and wait for it to respond (by clicking multiple times you might be ending/starting/ending etc. the run). Finally turn back to the terminal and terminate the run (use the tab where you launched the run, not the TLU) by using ctrl + c. You can double check to kill the run by ctrl + z and use kill %. The TLU does not need to be closed at this point (nor disconnected), you can keep it open for the next run. If you really have trouble terminating the run, you can also use a separate terminal and ssh into the PC and use “top” and kill the appropriate jobID.
  3. To be sure the power supplies aren’t in compliance, you can monitor the currents with the script mentioned before (monitorPSU)
  4. Make sure to log all information in the spreadsheet (# of events / run # / configuration etc.)
  5. When launching a new run, make sure to ramp the DUT to the desired voltage level, change the run number, and make sure to use the correct configuration file (you might need to change the DUT configuration for instance).
  6. In case you use this “manual” procedure, to check the noise rate and you would like to mask additional pixels, you can use the script xray plotting to see which noisy pixels need to be masked additionally in the configuration file. You can run
    python MaltaDAQ/xrayPlotting.py -f TelescopeData/<root file of plane of interest>
    This will provide a printout on the terminal with the noisy pixels and you can copy these and provide them additionally in the configuration file for the corresponding plane.
  7. While your new run is running, you can launch the analysis script of the run. The analysis is done on PS16, which reads in the data from PS11.
    1. One can run
      python MaltaSW/MaltaTbAnalysis/SPS_2022/MaltaDQ_SPS.py -r <run number> -a -t -p -m -c 
  8. In case you are required to shut off the DAQ completely, you should make sure that the run is terminated as described before and following you can disconnect the TLU and use DUTOFF and MALTAOFF.

Additional monitoring scripts

Environmental monitoring Arduino setup (if Arduino is set-up, jump to step 6)

  1. Check USB port number to which the Arduino is connected to. This should be ttyAMCX (currently is ttyAMC2, and the monitoring script hast 2 hardcoded, change it if necessary)
  2. Flash firwmare to Arduino
  3. Open Arduino IDE
            su
            cd /home/sbmuser/Downloads/arduino-1.8.19
            source arduino
  4. Open .ino file (if not already open)
    1. .ino file (and necessary libraries) is in
      /home/sbmuser/MaltaDAQ/Temperature_Control/Arduino_fw
    2. (In case of new installation, if other libraries are needed, they can be installed in the IDE using the menu Tools > Manage Libraries > Search and install
  5. Compile and Upload fw to arduino
    1. If error: "avrdude: stk500v2_ReceiveMessage(): timeout" -> Change the port in the IDE, it's probably wrong number
  6. Run temperature monitor script, which opens a GUI that displays from top to bottom Environmental temperature / environmental humidity / dew point / temp NTC 1 / temp NTC 2 / temp MALTA 1.
    source MaltaSW/setup.sh
    cd MaltaSW/MaltaDAQ/Temperature_Control/
    python envmonitoringTB_andrea.py -h 
  7. If it fails (blank plot) check if the ttyAMC port number is correct, if not change it since it's hardcoded.

How to move the telescope (big linear stage)

The telescope has a linear stage that can move in X and Y direction. The linear stage is added to PySerialComm and is compiled each time MaltaSW is compiled. To retrieve which arguments can be parsed one can use the following command:

MoveIselLinearStage.py -h 

The following command will provide the current position of the linear stage in both X and Y.

MoveIselLinearStage.py

To calibrate the linear stage (in Y and X) one can run the following command.

MoveIselLinearStage.py -Y Y 
MoveIselLinearStage.py -X X 

In order to move the linear stage to an absolute point (in Y or X), one can run:

MoveIselLinearStage.py -ax [value] 

In order to move the telescope with respect to the beam, the following actions can be undertaken. (INCLUDE IMAGE TO EXPLAIN)

1. In order to move the beam to the right, the telescope needs to be lowered, this implies that Y needs to be increased ("ay").

2. In order to move the beam upwards, the telescope needs to move into the direction of the table, this implies that X needs to be increased ("ax").

How to move the DUT (small linear stage)

The cold box has an independent linear stage that can move in X and Z. Independent package has been developed by Tobias, see

/home/sbmuser/StageControlCpp/standa2/x86_64-centos7-gcc8-opt/
and modifications have been made by Carlos and Florian H. The small linear stage is added to PySerialComm and is compiled each time MaltaSW is compiled.

1. Know the arguments you can parse for the small linear stage (to make sure which units (-u) to use, check with the axis info command the units used):

StandaXAxisCtrl.py -h 

2. Know the position of the axis:

StandaAxisInfo.py 

3. Move the X axis by a given amount:

StandaXAxisCtrl.py  -m [abs|rel] -u mm -d [distance]

4. Move the Z axis by a given amount:

StandaZAxisCtrl.py  -m [abs|rel] -u mm -d [distance]

Clients of MALTA Telescope

BCM Prime

BCM prime is hosted as a DUT inside the telescope. The read-out is done with DRS. The trigger mode is acknowledged. For each coincidence Triggered by the TLU, there is a signal sent to the DRS, that is returned to the TLU. The TLU then distributes a L1A to all the MALTA planes and other DUTs connected to it.

The TLU firmware capable of doing it is: TLUCore_v2_20210908_da86f96a.bit

HGTD

TO BE UPDATED


Major updates: Carlos Solans, Milou van Rijnbach, Igancio Asensi

Responsible: CarlosSolans
Last reviewed by: Never reviewed

Edit | Attach | Watch | Print version | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r14 - 2022-06-02 - MilouVanRijnbach
No permission to view Atlas.WebLeftBar
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Atlas All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback