Skip to content
Snippets Groups Projects
Commit ece8d705 authored by Laurent Petre's avatar Laurent Petre
Browse files

Remove some more outdated information from the electronics guide

parent 9c4c5439
No related branches found
No related tags found
No related merge requests found
Pipeline #3280908 passed
......@@ -367,29 +367,6 @@ eagle26:~$ cat /mnt/image-persist/build_id
CTP7-GENERIC-20180529T153916-0500-4935611
```
##### Restarting `syslogd`
In some weird cases `syslogd` will not be running after the CTP7 boots. This will cause the log file:
```
/var/log/messages
```
To not be created or written to. To resolve this ask your sysadmin to execute:
```bash
/sbin/syslogd -R 192.168.0.180 -L -s 1024 -b 8
```
And they should see the process running, e.g.
```bash
root@eagle63:~# ps l | grep syslog
S 0 9161 1 2792 64 0:0 13:31 00:00:00 /sbin/syslogd -R
192.168.0.180 -L -s 1024 -b 8
S 0 9163 9146 2796 288 pts4 13:32 00:00:00 grep syslog
```
#### Using `gem_reg.py`
The `gem_reg.py` tool is a command line interface which allows you to perform several actions on GEM hardware:
......@@ -1488,113 +1465,3 @@ With these settings a call of `confChamber.py` will overwrite the values of:
- `CFG_CAP_PRE`
registers in the [Configuration File on CTP7](#configuration-file-on-ctp7) for all VFATs for optohybrids 0 through 2.
## Taking Calibration & Commissioning Data
Calibration and commissioning scans can be taken with the `run_scans.py` interface. Unlike the v2b case the OH FPGA is no longer controlling the taking of calibration scans, nor is it generating a TTC stream. The CTP7 generates the TTC stream or forwards a TTC stream from the AMC13. This means that all optohybrids on a given CTP7 receive a common TTC stream. This means you cannot be taking data with routine A with OHX and simultaneously take data with routine B with OHY.
Additionally the scan routines rely on several blocks of the CTP7 FW:
- `SBIT_MONITOR`
- `VFAT_DAQ_MONITOR`,
- etc...
These blocks can only receive information from one optohybrid at a time and thus almost all scans presently have to be run in series; they *cannot* be run in parallel. This will change as the SW tools develop.
### Getting the VFAT Mask: `getVFATMask.py`
In some cases you may not have a fully instrumented setup (e.g. less than 24 VFATs) or you may not be able to communicate with all 24 VFATs for one reason or another. In this case you will need to mask either the non-responsive VFATs or those that are not physically present (otherwise scan applications will crash). "Newer" scan applications will automatically determine which VFATs are good or bad for you; however older scans will require you to provide a VFAT mask, a 24 bit number where the N^th bit corresponds to the N^th VFAT and a value of 1 indicates the VFAT should be skipped.
However to make things simplier, especially for newer users a tool has been provided to determine the VFAT mask for you:
```bash
getVFATMask.py -c eagleXX -gY
Open pickled address table if available /opt/cmsgemos/etc/maps/amc_address_table_top.pickle...
Initializing AMC eagleXX
The VFAT Mask you should use for OHY is: <some hex number>
```
Here the `getVFATMask.py` tool was given `eagleXX` `OHY` and returns `some hex number` that is the VFAT mask for this optohybrid.
### The Mapping File: `chamberInfo.py`
The `chamberInfo.py` file is either a system installed file or installed under your python `virtualenv` which loads the required python dictionaries from your setup's `system_specific_constants.py` file (found under `$PYTHONPATH`) at runtime. You never have to change the `chamberInfo.py` file and you should only ever edit the `system_specific_constants.py` file via the `editConfig` alias on the user account, e.g. call:
```bash
$ editConfig
```
Once the `chamberInfo.py` file has loaded the information from `system_specific_constants.py` at runtime the python API will have a set of dictionaries:
1. `chamber_config`,
2. `GEBtype`, and
1. `chamber_vfatDACSettings` dictionary (see [Using `chamber_vfatDACSettings` to write common register values](#using-chamber_vfatdacsettings-to-write-common-register-values)),
These dictionaries will:
- define which detectors are connected,
- provide the mapping between detector serial numbers and geographic addresses,
- possible DAC values to use to overwrite values stored in the [VFAT3 configuration files on the CTP7](https://github.com/cms-gem-daq-project/sw_utils/blob/develop/v3ElectronicsUserGuide.md#configuration-file-on-ctp7),
- the appropriate data paths to write output data too, and
- the chamber type.
The key values of the `chamber_config` and `GEBtype` are the geographic address (e.g. `ohKey`)-a tuple `(shelf,slot,link)` which specifices uTCA shelf number, AMC slot number, and optohybrid number-and enable you to define your test stand by specifying which detector is on which geographic address and what its detector type is, i.e. "long", "short", "m1", etc...
### Taking Data: `run_scans.py`
Once the dictionaries in `chamberInfo.py` are correctly configured, see:
- [Using `chamber_vfatDACSettings` to write common register values](#using-chamber_vfatdacsettings-to-write-common-register-values), and
- [The Mapping File: `chamberInfo.py](#the-mapping-file-chamberinfopy)
You're now able to use the command line interface tool `run_scans.py` for automatically launching scan applications for your test stand. The `run_scan.py` will for each uncommented link (optohybrid number) in `chamber_config` dictionary:
- Create a scandate directory in the correct data path under: `$DATA_PATH/chamber_config[ohN]`,
- Set the permissions on this directory so anyone in the `gemuser` group can `write` or `read`,
- Call the scan application and configure it with the correct inputs,
- Create a log file of the scan, and
- Set the permissions on the output files so anyone in the `gemuser` group can read them.
The `run_scans.py` tool accepts different commands, each command represents a different scan application and has it's own positional (mandatory) and optional arguments. You can calling the help menu of `run_scans.py` via:
```bash
run_scans.py -h
```
Will display each of the possible input commands and provide a brief description of them. You can call the help menu of each of the commands in `run_scans.py` by calling:
```bash
run_scans.py COMMAND -h
```
For example calling the help menu for the scurve command would look like:
```bash
run_scans.py scurve -h
usage: run_scans.py scurve [-h] [--chMax CHMAX] [--chMin CHMIN] [-l LATENCY]
[-m MSPL] [-n NEVTS] [--vfatmask VFATMASK]
cardName ohMask
positional arguments:
cardName hostname of the AMC you are connecting too, e.g.
'eagle64'
ohMask ohMask to apply, a 1 in the n^th bit indicates the
n^th OH should be considered
optional arguments:
-h, --help show this help message and exit
--chMax CHMAX Specify maximum channel number to scan
--chMin CHMIN Specify minimum channel number to scan
-l LATENCY, --latency LATENCY
Setting of CFG_LATENCY register
-m MSPL, --mspl MSPL Setting of CFG_PULSE_STRETCH register
-n NEVTS, --nevts NEVTS
Number of events for each scan position
--vfatmask VFATMASK If specified this will use this VFAT mask for all
unmasked OH's in ohMask. Here this is a 24 bit number,
where a 1 in the N^th bit means ignore the N^th VFAT.
If this argument is not specified VFAT masks are taken
from chamber_vfatMask of chamberInfo.py
```
Happy calibrating and commissioning!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment