Files
JFCalibration/CS_scan_multi_ROB.sh
carulla_m_ d87f148311 CS_scan_multi_ROB.sh, Current source scan for all the JFCalib ROB simultanously at half speed.
CS_scan_multi_ROB_bothspeeds.sh, Current source scan for all the JFCalib ROB simultanously at half and full speed.
2026-02-20 17:26:06 +01:00

293 lines
6.8 KiB
Bash

#!/bin/bash
# to run do: bash CS_scan.sh
# prerequisites:
# - setup_env.sh souced
# - the hostname is set
# - detector is on
# - fileneame script has been sourced
# - source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test)
# last file should have exactly 4194368000 byte in it.
KILLRCV0="killall ju_udp_receiver_3threads_2_0_jfcalib0"
KILLRCV1="killall ju_udp_receiver_3threads_2_0_jfcalib1"
KILLRCV2="killall ju_udp_receiver_3threads_2_0_jfcalib2"
KILLRCV3="killall ju_udp_receiver_3threads_2_0_jfcalib3"
KILLRCV4="killall ju_udp_receiver_3threads_2_0_jfcalib4"
KILLRCV5="killall ju_udp_receiver_3threads_2_0_jfcalib5"
$KILLRCV0
sleep 1
$KILLRCV1
sleep 1
$KILLRCV2
sleep 1
$KILLRCV3
sleep 1
$KILLRCV4
sleep 1
$KILLRCV5
sleep 1
if [[ "$0" == *"CS_scan_multi_ROB.sh"* ]]; then
echo "script changes env. variables: should be invoked with source, not sh "
exit
fi
if [ ! -v $6 ]; then
echo $0
echo "printing filenames for all modules " $1 $2 $3 $4 $5 $6
source Multi_filename_creator.sh $1 $2 $3 $4 $5 $6
sls_detector_put stop #just in case
sls_detector_put powerchip 1
sls_detector_put frames 640
sls_detector_put period 0.005
sls_detector_put exptime 0.000010
sls_detector_put highvoltage 200
# configure for receiver on pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test
# source pccalib.sh [pc] (pc-jungfrau-01/pc-jungfrau-02/pc-jungfrau-test)
sls_detector_put 0:udp_dstport 32411
sls_detector_put 1:udp_dstport 32412
sls_detector_put 2:udp_dstport 32413
sls_detector_put 3:udp_dstport 32414
sls_detector_put 4:udp_dstport 32415
sls_detector_put 5:udp_dstport 32416
sls_detector_put udp_dstip $DSTIP #10.1.4.105
sls_detector_put udp_dstmac $DSTMAC #3C:FD:FE:A2:14:D8
sls_detector_put 0:udp_srcip 10.1.1.9 #10.1.4.9
sls_detector_put 1:udp_srcip 10.1.1.10
sls_detector_put 2:udp_srcip 10.1.1.11
sls_detector_put 3:udp_srcip 10.1.1.12
sls_detector_put 4:udp_srcip 10.1.1.13
sls_detector_put 5:udp_srcip 10.1.1.14
sls_detector_put 0:udp_srcmac 00:ab:be:cc:dd:e2
sls_detector_put 1:udp_srcmac 00:ab:6b:03:5a:d5
sls_detector_put 2:udp_srcmac 00:ab:d9:ee:bc:bd
sls_detector_put 3:udp_srcmac 00:ab:1d:4f:bd:6a
sls_detector_put 4:udp_srcmac 00:ab:d3:ae:0f:1f
sls_detector_put 5:udp_srcmac 00:ab:f2:a5:c0:a2
sls_detector_put readoutspeed half_speed
#sls_detector_put readoutspeed full_speed
#sls_detector_put dbitphase 125
sls_detector_put 0:txdelay_frame 0
sls_detector_put 1:txdelay_frame 0
sls_detector_put 2:txdelay_frame 1
sls_detector_put 3:txdelay_frame 1
sls_detector_put 4:txdelay_frame 2
sls_detector_put 5:txdelay_frame 2
sls_detector_put 0:master 1
sls_detector_put sync 1
sls_detector_get master
sls_detector_get status
sleep 3
sls_detector_put currentsource 0
sleep 2
sls_detector_put frames 10000
sleep 2
sls_detector_put start
sleep 60
sls_detector_put stop
sleep 1
sls_detector_get status
sls_detector_put frames 640
$TKCSG0_0 &
sleep 3
$TKCSG0_1 &
sleep 3
$TKCSG0_2 &
sleep 3
$TKCSG0_3 &
sleep 3
$TKCSG0_4 &
sleep 3
$TKCSG0_5 &
sleep 3
echo "recording G0 pede"
sls_detector_acquire
sleep 1
echo "recording G1 pede"
sls_detector_put gainmode forceswitchg1
sleep 2
sls_detector_acquire
sleep 1
echo "recording G2 pede"
sls_detector_put gainmode forceswitchg2
sleep 2
sls_detector_acquire
sleep 1
sls_detector_put gainmode dynamic
sleep 1
# turn on current source
# bit 16 high bit 17 low = automatic cal col sweep
# bit 16 high bit 17 high = cal col selected with bits 26-20
sls_detector_put currentsource 1 nofix 0
sleep 5
# loop 1
for tint in {50..450..50} # 25 is too small here, 50 min
do
tint_sec=$(printf %.9f $(echo "$tint/1000000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 2a
for tint in {50..100..5}
do
tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 2b
for tint in {110..200..10}
do
tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 2c
for tint in {225..450..25}
do
tint_sec=$(printf %.8f $(echo "$tint/100000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 3a
for tint in {50..100..5}
do
tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 3b
for tint in {110..200..10}
do
tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l))
sleep 1
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 3c
for tint in {225..450..25}
do
tint_sec=$(printf %.7f $(echo "$tint/10000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 4a
for tint in {50..100..5}
do
tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_acquire
sleep 1
done
# loop 4b
for tint in {110..250..10}
do
tint_sec=$(printf %.7f $(echo "$tint/1000000" | bc -l))
echo "setting integration time to (s) " $tint_sec
sls_detector_put exptime $tint_sec
sleep 2
sls_detector_put acquire
sleep 1
done
echo "Finished scan at halfspeed"
sls_detector_put exptime 0.000010
sleep 1
$KILLRCV0
sleep 1
$KILLRCV1
sleep 1
$KILLRCV2
sleep 1
$KILLRCV3
sleep 1
$KILLRCV4
sleep 1
$KILLRCV5
sleep 1
sls_detector_put period 0.002
sleep 2
sls_detector_put frames 1000000
sleep 2
sls_detector_put currentsource 0
sleep 2
sls_detector_put highvoltage 0
sleep 2
sls_detector_put powerchip 0
echo "Script finished"
sleep 4
else
echo "Specify module number for each jfcalib board after firt argument"
echo "Script finished"
fi