From b054f2dffb6cca393b9c2a23f3e86f84affce7b5 Mon Sep 17 00:00:00 2001 From: carulla_m_ Date: Wed, 25 Feb 2026 11:43:03 +0100 Subject: [PATCH] Update to include the BP_scan_both_speeds.sh, BP_scan_new_board.sh, CS_scan_both_speeds.sh, CS_scan_multi_ROB.sh, Fluo_exposure_Ti-In.sh and the updates in the old files. --- README.md | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ef89422..7dae43a 100644 --- a/README.md +++ b/README.md @@ -6,23 +6,29 @@ This project details the JUNGFRAU calibration procedure. Provides an absolute calibration of high gain. Copper fluorescence is used to illuminate the sensor. The resulting noise and Kalpha peaks are fit with a gaussian and charge sharing model. The gain for 8 keV is the distance between the two peaks. Scripts are: -- `CuFluo_exposure.sh` to perform the exposure in the X-ray box +- `CuFluo_exposure.sh <#> ` to perform the exposure in the X-ray box. It requires the module number as a first argument and the readout speed: full_speed or half_speed, as a second argument. +- `CuFluo_exposure_both_speeds.sh <#>` to perform the exposure in the X-ray box at half and full readout speed. It requires the module number as a first argument. - `CuFluo_analysis.cpp` to measure the peak-to-peak distance - Legacy: `CuFluo_Ka_KaKb_Comp.cpp` to quantify the difference between different fit models For calibration of storage cells: -- `CuFluo_exposure_sc.sh` to perform the exposure in the X-ray box +- `CuFluo_exposure_sc.sh <#> ` to perform the exposure in the X-ray box. It requires the module number as a first argument and the readout speed: full_speed or half_speed, as a second argument. - `CuFluo_analysis_sc_singlethread_data.cpp` to read pixel spectra from a single storage cell into .root - `CuFluo_analysis_sc_singlethread_fits.cpp` to measure the peak-to-peak distance for a single storage cell Not written multithreaded, but can be launched for multiple storage cells on multiple cores in parallel. ## Backplane pulsing -Provides a relative calibration between high and medium gains. A seperate circuit board is used to pulse the voltage on the backplane of the sensor. By varying the size of the pulse, the response of high and medium gains can be measured and fit with linear functions. The ratio of the two gains is the ratio of fitted gradients. +Provides a relative calibration between high and medium gains. A separate circuit board is used to pulse the voltage on the backplane of the sensor. By varying the size of the pulse, the response of high and medium gains can be measured and fit with linear functions. The ratio of the two gains is the ratio of fitted gradients. Scripts are: -- `BP_scan.sh` to perform the scan -- `BP_analysis.cpp` to calculate the response, fit the gradients and measure the ratio +- `BP_scan.sh <#> ` to perform the scan with old amplifier board. The module number and readout: half_speed or full_speed, have to be specified as a first and second argument. +- `BP_scan_both_speeds.sh <#>` to perform the scan with old amplifier board. The module number has to be specified as a first argument. +- `BP_scan_thinSensor.sh` to perform the scan with old amplifier board at 150um sensors. The filename_creator.sh has to be sorced before. +- `BP_scan_new_board.sh <#> ` to perform the scan with new amplifier board. The module number and readout: half_speed or full_speed, have to be specified as a first and second argument. +- `BP_analysis.cpp` to calculate the response of the old amplifier board, fit the gradients and measure the ratio +- `BP_analysis_thinSensors.cpp` to calculate the response of the old amplifier board of 150um sensors, fit the gradients and measure the ratio. +- `BP_analysis_new_board_30V.cpp` to calculate the response of the new amplifier board, fit the gradients and measure the ratio. - Legacy: `BP_DB_Comp.cpp` to quantify the difference between the two methods For calibration of storage cells, we assume that the relative gains behave the same for all storage cells and no extra data are taken or analysis performed. @@ -31,7 +37,10 @@ For calibration of storage cells, we assume that the relative gains behave the s Provides a relative calibration between medium and low gains. An internal current source is used to inject charge into the ASIC one column at a time. By varying the integration time, the amound of collected charge is varied and the response of medium and low gain can be measured. The ratio of the two gains is the ratio of fitted gradients. Scripts are: -- `CS_scan.sh` to perform the scan +- `CS_scan.sh <#> ` to perform the current source scan. It requires the module number as a first argument and the readout speed: full_speed or half_speed, as a second argument. +- `CS_scan_both_speeds.sh <#>` to perform the current source scan at half and full speed. It requires the module number as a first argument. +- `CS_scan_multi_ROB.sh <#jfcalib-0> <#jfcalib-1> <#jfcalib-2> <#jfcalib-3> <#jfcalib-4> <#jfcalib-5>` to perform the current source scan for all the calibration ROB simultaneously. It requires to pass the module numbers in the correct order. +- `CS_scan_multi_ROB_bothspeeds.sh <#jfcalib-0> <#jfcalib-1> <#jfcalib-2> <#jfcalib-3> <#jfcalib-4> <#jfcalib-5>` to perform the current source scan for all the calibration ROB simultaneously, first at half_speed and finally at full_speed. It requires to pass the module numbers in the correct order. - `CS_analysis.cpp` to calculate the response, fit the gradients and measure the ratio - Legacy: `CS_BaselineTest.cpp` to check that increasing the integratio time doesn't change the baseline @@ -53,8 +62,8 @@ For calibration of storage cells: ## Workflow to perform the calibration Data taking: - Set up environment variables: `source setup_env.sh` -- Set receiver PC: `source pccalib.sh ` (either mpc2012 or pc-jungfrau-test) -- Create receiver commands: `source filename_creator.sh ` (without preceeding M) +- Set receiver PC: `source pccalib.sh ` (pc-jungfrau-02, pc-jungfrau-01(mpc2012 is also valid) or pc-jungfrau-test) +- Create receiver commands: `source filename_creator.sh ` (without preceeding M. It is not necessary anymore to source filename_creator.sh) - Make sure the client version `slsDetector_bin` points to is in line with the jungfrauDetectorServer on the readout board. - `sls_detector_put hostname jfcalib_x` (x=0..5) - If required: Set up pulse generator serial connection on pc8830 (BP_scan) @@ -84,4 +93,4 @@ Scripts are: ## References - Calibration status and plans for the charge integrating JUNGFRAU pixel detector for SwissFEL, S. Redford et al 2016 JINST 11 C11013 -- First full dynamic range calibration of the JUNGFRAU photon detector, S. Redford et al 2018 JINST 13 C01027 \ No newline at end of file +- First full dynamic range calibration of the JUNGFRAU photon detector, S. Redford et al 2018 JINST 13 C01027