-
Notifications
You must be signed in to change notification settings - Fork 20
Redefine the goal of testConnectivity.py #287
Description
Brief summary of issue
Last week, issues related to incorrectly setting the IREF values were discovered at QC7. After a more detailed study (thanks Nimantha!) and a code review different issues were found.
This issue aim at improving the correctness, robustness and efficiency of testConnectivity.py by redefining its purpose.
Types of issue
- Bug report (report an issue with the code)
- Feature request (request for change which adds functionality)
Issues found
- Incorrect
IREFconfiguration for the Scurves taken duringtestConnectivity.py confChamber.pyis not guaranteed to configure the chamber in the same way astestConnectivity.py- DB access mandatory; if VFAT without Reed-Muller encoded chipID are used, the calibration constants can be retrieved for the wrong VFAT in case of bitflip
- VFATs missing in DB seems not to be properly reported
- The analysis of the Scurves taken during
testConnectivity.pydoes not produce any output; they must be analyzed a second time to get the plots
Expected Behavior/Proposal
Historically, testConnectivity.py was designed to make the pass/failed decision about on the quality control of a chamber during QC7. However, the QC7 tests were improved and complexed over time leading to other scripts doQC7.sh and doQC7_complete.sh, both using testConnectivity.py.
Considering this, below is a list of changes we agreed on with Nimantha. They would fulfill all the requirements of QC7 and remote tests stands without VFAT3 hybrid v3 and/or DB access.
In summary, testConnectivity.py must be able to completely prepare a new chamber on every test stands while ensuring that confChamber.py correctly configure the chamber. After the chamber configuration, all acquisitions must run in the best conditions.
- Whenever the DAC scans are successful, all DAC values - including
IREFso - must be written to the CTP7. - Instead of modifying the chamber configuration on the fly,
testConnectivity.pyshould warn that the VFAT configuration does not use the recommended values. This should ensure thatconfChamber.pywill configure the chamber in the same way astestConnectivity.pywhile allowing for experimentation with different parameters.
vfatqc-python-scripts/testConnectivity.py
Lines 964 to 975 in 49d1b6a
| try: | |
| args.run = False # will be placed into run mode by the call of launchSCurve below | |
| configure(args, vfatBoard) | |
| # Ensure Gain is Medium | |
| vfatBoard.parentOH.broadcastWrite("CFG_RES_PRE",0x2,dict_vfatMask[ohN]) | |
| vfatBoard.parentOH.broadcastWrite("CFG_CAP_PRE",0x1,dict_vfatMask[ohN]) | |
| # Ensure Comp Mode is CFD | |
| vfatBoard.parentOH.broadcastWrite("CFG_PT",0xf,dict_vfatMask[ohN]) | |
| vfatBoard.parentOH.broadcastWrite("CFG_FP_FE",0x7,dict_vfatMask[ohN]) | |
| vfatBoard.parentOH.broadcastWrite("CFG_SEL_COMP_MODE",0x0,dict_vfatMask[ohN]) | |
| vfatBoard.parentOH.broadcastWrite("CFG_FORCE_EN_ZCC",0x0,dict_vfatMask[ohN]) |
- Provide a DB (default) and non-DB mode (
--noDBflag):
- In non-DB mode, zero DB access is made. The the information must have been retrieved from the DB before launching (through a first call to
testConnectivity.pyor throughgetCalInfoFromDB.py) or manually (for experimentation and/or VFAT3 hybrid v2). - In DB mode, all the information is always retrieved from the DB. No missing VFAT is allowed. If it was to happen, the user can use
getCalInfoFromDB.pyfirst.
- Remove the Scurve acquisition from the
testConnectivity.pyscript. The acquisition and analysis can be added todoQC7.shor todoQC7_complete.sh(only on the the QC7 DAQ machine) for easy QC7 operation.
Your Environment
- Version used: 49d1b6a