SciFi Module Assembly and Quality Assurance tests

Access and Contacts

Grey Room in LHCB Hall

ask for key's LHCb secretariat.

Valery Zhukov Office: +41 (0)22 76 78188 Cell(CERN): +41 76 487 6537
Andreas Guth Office: +41 (0)22 76 75750 Cell(CERN):
Michal Dziewiecki Office: Cell(CERN): +48 791 221 186

Info and Links

ELOG:SciFi:Module elog


03.12.2018 SciFi General M.Dziewiecki

31.012019 SciFIiGeneral V.Zhukov

04.03.2019 SciFi General S.Bachmann

11.04.2019 SciFi General A.Guth

16.05.2019 SciFi General M.Dziewiecki

Module Assembly

GasTightness Test

Module Testing in Cosmic Bench

Cosmic bench PC(ask for pass):




General workflow

One must proceed with all the paragraphs below with their order, so:

  1. Initialize directory structure
  2. Set Spiroc DACs
  3. Perform connectivity test
  4. Tune LIS
  5. Copy config files and run QA for >= 6 hours
  6. Post-process data and put it into archive using relevant scripts
  7. Put data into the database

Initialising directory structure for measurements

There's a script for creating a directory structure (and some further helpful scripts) for each new measurement session (one side of a module pair).

  1. Open terminal. Go to moduleTest/cern_data
  2. Type ./start
  3. Answer all questions given by the script
  4. If there are problems with accessing database, probably you're not logged in. Break the script and type ./dblogin
Currently, the following directories/files are created:


  • .../config.txt - a summary file with entered module data
  • .../config.root - the same as root tree
  • .../vbd/ - a directory for all breakdown-related stuff
    • .../vbd/mod_up/
    • .../vbd/mod_dn/
  • .../lis/ - a directory for LIS tuning results
  • .../QA/ - a directory for cosmic data and results
  • .../test/ - a directory for debug cosmic runs
  • .../sum/ - a directory for cosmic data analysis
  • .../tune_lis - a convenience script for running LIS tuning procedure
  • .../tune_lis_advanced - the same, but allowing for modifying of bias currents. Use with care
  • .../dacfiles_from_db - copy DAC files from local database to working directory
  • .../dac_from_db - run dacfiles_from_db and then set Spiroc DACs
  • .../copy_cfgfiles - copy module config files from USBBOARDPATH to QA and test directories
  • .../run_QA - run modqacern from QA directory (must copy_cfgfiles first!)
  • .../test_QA - run modqacern from test directory (must copy_cfgfiles first!)
  • .../sum_QA - post-process QA data
  • .../check_LT - query light tightness result and write them to a file
  • .../db_login - a helper for logging into the production database (produces Michal's name on output as a side effect)
  • .../update_db - upload all possible data into the production database
  • .../copy_results - copy most important files to the data/FAM directory
  • .../restart - re-create directory structure, config files and/or local scripts

Attention: backup script
Important: In most cases, running some scripts twice would delete old data. To avoid it, a backup script can be used. To backup a dir, simply go into it and type backup_me. This will create a new folder with a general name of BACKUP_yyyymmdd_hhmmss and copy or move all files there. The script is interactive and will ask for a short comment (then saved to a backup_info file) and whether to delete old data. It can be used anywhere (even outside the created directory structure).

Further comments on the script:

#The name of this subdirectory is always BACKUP_yyyymmdd_hhmmss.
#Additionally, a text file in this directory (backup_info) will be created with a user-given information.
#All files specified in .backup_ignore will be SKIPPED when archiving.
#All files specified in .backup_blind will be archived, but not relevant for the initial decision: do backup or do not.
#Currently, only files from top-level directory can be specified, i.e. any subdirectory is treated as a single file. 
#Both files use regular expressions.

The following scripts make backups automatically if target directories are not empty:

  • tune_lis
  • tune_lis_advanced
  • run_QA

Downloading Vdb info and setting Spiroc DACs

Automated procedure: (use it!)

  1. Ensure that HV is off, both LV on
  2. Run ./dac_from_db

Manual procedure: (only in troubles)

  1. Copy DAC files: type ./dacfiles_from_db
    Currently, programing DAC must be done manually:
  2. Ensure that HV is off, both LV on
  3. Switch upper PS on, lower PS off
  4. Type setSpirocDac $USBBOARDPATH/cfgFiles ./vbd/mod_up/dacfile_from_db.txt to program Spiroc chips for upper system
  5. Switch upper PS off, lower PS on
  6. Type setSpirocDac $USBBOARDPATH/cfgFiles ./vbd/mod_dn/dacfile_from_db.txt to program Spiroc chips for lower system
  7. Switch both PS back on

Installation and connectivity test

  1. Ensure that both LV and HV power supplies are off!
  2. Remove previous modules from the bench. Move hodoscope beneath the modules on the shell, carefully (with HV on)
  3. Install a new module on down position, ensure module position and flatness.
  4. Ground yourself!
  5. Mount spiroc readout to the module usng two M8 screws
  6. Connect SiPM flexes. Handle them with care. Ensure that all connectors are fully pushed in.
  7. Connect LIS flex cables.
  8. Install hodoscope on top, close to the centre of the module
  9. Repeat points 3-6 for upper module
  10. Switch on both LV PS and HV PS (58.0V)
  11. run copy_cfgfiles and then test_QA script and collect some data to ensure that the system seems to work properly

Light Tightness Tests

Use check_LT script for saving data on the PC!
  1. Connect multimeter (uA input) to banana cables from HV distribution box.
  2. Distribution box: all switches DOWN
  3. Spiroc cards: all switches DOWN
  4. Power Spiroc (LV on)
  5. Start a run with test_QA script to initialize Spiroc chips. Run may be stopped after LIS phase. This step is not needed, if the LV for both modules was not switched off since connectivity test
  6. Distribution box: Ch1 DOWN, Ch2 in CENTRAL position
  7. Switch on HV PS, V=58.0V
  8. Wait until readout stabilises, then write down current from multimeter
  9. Switch multimeter to relative mode
  10. Switch on bright lamp, 'scan' coldbox and connections to the module, write down highest current
    < 5 uA: OK
    5-15 uA: Not critical, but try to locate the leak and leave a comment
    > 15uA: locate and repair the leak, leave a comment
  11. Switch off lamp, switch off HV, meter back from relative to normal mode
  12. Distribution box: Ch1 in CENTRAL position, Ch2 DOWN
  13. Repeat 6-11
  15. Distribution box: all switches UP
  16. Spiroc cards: all switches UP
Ready for cosmic tests

LIS tuning

INITIAL STATE: both USB-Box PS ON, HV PS ON, V=58V. Vbd must be calibrated and deltaV=3.5V.

  1. Open terminal, go to right moduleTest/cern_data/FAMxxxxxxX_FAMxxxxxxX directory
  2. Type =./tune_lis=
    The configuration will be fetched from a root file generated by initialisation script. You don't need to enter it again.
    Use tune_lis_advanced if there's a need to modify bias currents. This is really an advanced option, so don't use it without understanding.
  3. It takes about 30min to calibrate both modules
  4. Text files with report will be generated at the end (module_name.lis.txt) and put into lis subdirectory.
  5. Config files will be configured for the last tuned setting and stored in the $USBBOARDPATH/cfgFiles.

HV scan (Vbd optimization) - optional

Currently, this step can be performed only manually. However, it shouldn't be performed at all;)


Use copy_cfgfiles script to copy board36.cfg and board37.cfg to working folders (QA and test).

Use run_QA script for starting DAQ software.

setup the prefix for saved root files and click start. Use QA prefix for regular runs.

Each run consists of 3 parts: Pedestal 1000triggers LIS run 8000triggers Cosmic 30min

During the run 3 trees are filled in the corresponding root file with the name prefix_unixtime_data_time.root Also the selected tree for events with only 1 hit in one module is stored in the dualtree_unixtime.root file.

Then new run is started automatically. The running can be stopped by clicking stop. Then slick save to save the Summary file.

Data post-processing

To post-process the data collected in the QA run, simply type ./sum_QA from the FAM directory.
Attention: post-processing might take a significant amount of time (> few s).
The following files will be generated in the .../sum_QA directory:

  • BTCxxxxx_Vbd.root (x2) - a file with breakdown voltages copied from data/BTC
  • mod_FSMxxxxx_X.root (x2) - a file with HD/Nikhef QA data for a module, copied from data/FSM
  • dual_FAMxxxxx_X.root (x2) - an intermediate file with Cern cosmic data processed
  • modcb_FAMxxxxx_X.root (x2) - another file of this kind
  • sum_FAMxxxxx_X.root (x2) - the main output file with data
  • sum_FAM_xxxxx_X.root (x2) - a pdf summary of the above
  • sumbadch_FAM_xxxxx_X.txt - a text file with a summary of bad channels
  • sumgaps_FAM_xxxxx_X.txt - a text file with a summary of mat-SiPM gap calculation

Archiving results locally

To make a local copy in data/FAM/, type ./copy_results.
See the example code below to see which files are copied:

		mkdir -p $DATAPATH/FAM/FAM00019 
 		mkdir $DATAPATH/FAM/FAM00019/sideA 
 		cp ./config.txt $DATAPATH/FAM/FAM00019/sideA/ 
 		cp ./config.root $DATAPATH/FAM/FAM00019/sideA/ 
 		mkdir $DATAPATH/FAM/FAM00019/sideA/sum 
 		cp ./sum/sum_FAM00019_A.root $DATAPATH/FAM/FAM00019/sideA/sum/ 
 		cp ./sum/sumgaps_FAM00019_A.txt $DATAPATH/FAM/FAM00019/sideA/sum/ 
 		cp ./sum/sumbadch_FAM00019_A.txt $DATAPATH/FAM/FAM00019/sideA/sum/ 
 		cp ./sum/sum_FAM00019_A.pdf $DATAPATH/FAM/FAM00019/sideA/sum/ 
 		mkdir $DATAPATH/FAM/FAM00019/sideA/lis 
 		cp ./lis/FAM00019A.lis.txt $DATAPATH/FAM/FAM00019/sideA/lis/ 
 		mkdir $DATAPATH/FAM/FAM00019/sideA/LT 
 		cp ./LT/lt.txt $DATAPATH/FAM/FAM00019/sideA/LT/ 

Putting results into production database

Remark: Putting data into database is a SEMI-automated process and needs an active supervision of the operator. Depending on the current state of the database and results, some data may remain not uploaded. One of these cases is when some relevant data already exists in the database.

To start, go to FAM directory and type ./update_db. Entering DB credentials might be necessary.

Please read carefully every line of script's output and follow ALL weblinks. Even if annoying, it's still way better than putting all the data manually!


* pdf_15-62019

-- ValeryZhukov - 2019-01-28

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Modassembly_v3.pdf r1 manage 93.9 K 2019-01-28 - 18:42 ValeryZhukov ModuleAssembly check list
PDFpdf Modassembly_v4.pdf r1 manage 96.9 K 2019-01-29 - 16:55 ValeryZhukov ModuleAssembly check list v4
PDFpdf Modtest_v2.pdf r1 manage 73.1 K 2019-02-13 - 14:04 ValeryZhukov  
PDFpdf Modtest_v3.pdf r1 manage 74.7 K 2019-02-21 - 14:20 ValeryZhukov  
Compressed Zip archivezip r1 manage 20707.5 K 2019-06-15 - 22:28 ValeryZhukov pdf_15-62019
PDFpdf scifi17062019.pdf r1 manage 7653.0 K 2019-06-16 - 13:54 ValeryZhukov  
Edit | Attach | Watch | Print version | History: r28 < r27 < r26 < r25 < r24 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r28 - 2019-06-16 - ValeryZhukov
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

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