Commissioning and noise studies for single slabs

The commissioning procedure described here will be part of the calicoes/pyrame framework

For the moment, you will be able to find it here, branch features/calicoes3_commissioning

It relies in the conversion to root files of the raw binary files, using a macro. The procedure, step by step is:

First phase: noise studies with short spills of 2-4Hz, 2.5ms

  • A short noise run, with threshold values of 210 DAC (to assure that we have some data coming but we are not in the all noise regime)
    • After this run, the data is converted to root and the log file is checked. In this log file, the macro writes down the proportion of spills with non corrupted data that are saved. If the value is reasonable, we continue the test. Take in account that we can have very noisy cells filling up all the memory. If this happens for several chips the DAQ will don't have time to convert all data before next spill and the data will be corrupted.
  • If this test is passed, then we proceed to the masking of all ADC=4 channels
    • This is a specific feature of FEV10,11,12. A set of channels that is noisy in all slabs.
  • Run a standard findoisy. Some comments about this:
    • We run an iterative find noisy algorithm with several steps relying in a new FindNoisy set of scripts for both analysis and data taking.
    • We compare the noise levels with estimation of the cosmics rates per channel !! Before, we were comparing the number of trigger of one channel with respect the total number of triggers in the ASIC.
    • We will only mask the triggers --> no need to disable the preramps !
    • The outcome of this run is a list of masked channels --> i.e. masked channels
  • Threshold scan run --> scan of a reasonable range of DAC values with all 64 channels per chip enabled except all the ones masked before.
    • The outcome of this test is:
      • a cmd file with a list of chip-wise thresholds to be applied. They are calculated as the average of the 50% scurve (inverse error function) value + 6 times the average of sigmas of the scurve. To be updated to use weighted average/errors --> [[[list of thresholds]] Why 6 sigma? Because we assume S/N of ~20N, 6 sigma will be something ~ 0.3 MIP
      • two png files with the value of the 50% of the scurve (mean) and the sigma (width) for all channels in all chips. If the channel was masked, the graph shows a zero. See attachements scurve 50% value and scurve width

Second phase: signal studies (i.e. cosmics with long spills of 4Hz, 150ms)

  • Reconfigure all chips with the calculated thresholds (6 sigma of the mean value)
  • Short run and check the data integrity. If ok (more than 99% of spills okay), then continue.
  • If we are performing a cosmic ray data taking calibration run:
    • we take at least 2 runs of 30 minutes and calculate the MIP and S/N per chip and per channel (we need at least 8-10h of data taking to be able to do channel wise calibration).
    • at the end of the run, a root script calculates the pedestals values (chip/channel/sca wise) and the mip fit (landau gauss function) to the data. The MIP value is the MPV of the fitted function.
    • example of the results can be seen here:


      • S/N S/N values. The S/N is calculated by fitting the ADC-Pedestal / Pedestal width to a LandauGauss function as the MIP distribution.

Example of log file of a full commissioning run:

Slab Integrity and first commissioning summary
Commissioning/slab18_ref/20171123_165753, 20171123_165755
 *** TEST 1: Data Integrity 
THE SLAB passes the Data Integrity Checks
 *** TEST 2: Find Noisy channels 
   list of masked channels in: /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/MaskedChannels.cmd
 *** TEST 3: Scurves and noise determination 
 Thresholds determined chip-by-chip as ~ 0.3 MIP (~6 sigmas ahead of mean value of the scurve, assuming S/N=21)
 Results summarized in: /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/Scurves_PlaneEvThresh64_buff0_dif_1_1_1.root
 , /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/Scurves_PlaneEvThresh64_buff0_dif_1_1_1_scurves_mean.png
 , /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/Scurves_PlaneEvThresh64_buff0_dif_1_1_1_scurves_width.png
 , /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/Scurves_PlaneEvThresh64_buff0_dif_1_1_1.log
 and /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/Scurves_PlaneEvThresh64_buff0_dif_1_1_1_6sigma.cmd
 *** TEST 4: Data Integrity, after noisy masking and noise threshold optimization 
THE SLAB passes the Data Integrity Checks


  • Prepare your system Slab Operation including HV on.
  • Prepare your /opt/calicoes/standard/commissioning/slab_commissioning.xml file
  • cd /opt/calicoes/standard/commissioning/
  • if tpecal is not compiled, do it (instructions are in the /opt/calicoes/standard/commissioning/README file
  • source SLABNAME level= (where level is noise or all, for simple noise test or to include also a calibration run)
  • level ==
    • noise --> only mask noisy channels
    • noise_scurve --> find noisy + scurves & optimal threshold determination + find noisy with optimal thresholds
    • scurve --> scurve & optimal threshold determination
    • cosmic_scurve --> noise_scurves + do a scurve with cosmics (long run !!)
    • cosmic --> only perform a set of cosmic ray data taking runs
    • all --> noise_scurve + cosmic data taking (not including the scurves with cosmics)

TAKE CARE OF THIS : there is a hardcoded line in and in the slab_commissioning.xml files that sets the root path of the data in /home/data/testbenchLAL

The script does the following:

systemctl restart pyrame

sleep 3 /opt/calicoes/standard/commissioning/slab_commissioning.xml

./ "Commissioning/"SLABNAME level

All these steps can be done using the graphical interface of Calicoes except the restart of pyrame. Indeed this step is not necessary, it is just a safety measure.

The python script does all described in the first point of this twiki. You can see all arguments of this function in the screenshot of the Calicoes gui:


Passport files

The passport files should be a zipped file of:

  • The first three pages of this old passport document: Slab 16
  • All files created in the main run_group folder, i.e. all .cmd, .png, .txt .log files created in /home/data/testbenchLAL/Commissioning/slab18_ref/20171123_165753/

Remark the procedure assumes some defaults settings decided in the system (same than in For optimization of hold values, preamps etc, we should develop another specific procedure.

-- AdrianIrles - 2017-11-26

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Instructions.pdf r1 manage 5210.0 K 2018-06-18 - 11:56 AdrianIrles  
Texttxt MIP_chip_dif_1_1_1.txt r1 manage 0.7 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng MIP_summary_chip_dif_1_1_1.png r1 manage 54.1 K 2017-11-26 - 20:21 AdrianIrles  
MS-DOS batch filecmd MaskedChannels.cmd r1 manage 0.1 K 2017-11-26 - 20:21 AdrianIrles  
Texttxt Pedestal_dif_1_1_1.txt r1 manage 114.4 K 2017-11-26 - 20:21 AdrianIrles  
Texttxt SN_chip_dif_1_1_1.txt r1 manage 0.7 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng SN_summary_chip_dif_1_1_1.png r1 manage 50.4 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng Screenshot__2018-06-18_11-59-27.png r1 manage 63.9 K 2018-06-18 - 12:00 AdrianIrles  
MS-DOS batch filecmd Scurves_PlaneEvThresh64_buff0_dif_1_1_1_6sigma.cmd r1 manage 1.0 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng Scurves_PlaneEvThresh64_buff0_dif_1_1_1_scurves_mean.png r1 manage 27.2 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng Scurves_PlaneEvThresh64_buff0_dif_1_1_1_scurves_width.png r1 manage 30.2 K 2017-11-26 - 20:21 AdrianIrles  
PNGpng screenshot_calicoes_gui.png r1 manage 61.5 K 2017-11-27 - 18:41 AdrianIrles  
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2018-06-18 - AdrianIrles
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CALICE 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