Pixel-ROD-Crate-Controller(Pxl-RCC) @ CPPM

Atlas

BOC Input/Output link scan with ROD

Atlas

Recipe for a ROD/BOC/PP0 link scan

output [fmt] links by Paolo; September 30th, 2004, completed by private communications
input [cmd] links by Andreas and Dirk; November/December, 2004

This page contains two tools for doing almost the same thing, in increasing order of complexity (i. e. decreasing in simplicity), thus being justified for this and only this reason. Another aspect is the pedagogical effect of the availibility of some relatively simple pieces of code for beginners (- talking for myself, DH).

LinkScan

by Andreas and Dirk

You want to rudely send one identical configuration to one, several or all of the output links of your ROD board? With minimal overhead, no generation of root configuration files? This is the tool you need:

The ScanInput code is in Pxl-CVS:Users/hoffmann/, based on original files from Pxl-CVS:Users/akorn/EXPERIMENTAL/LinkScan/.

Options

  • -c <configDir>/config/<configFile>.cfg (mandatory) TurboDAQ-compatible configuration file and the corresponding directory (tree)*
  • -s <num> \ (mandatory, but can be given interactively if missing)
  • -m <hexval> LSB mask (0-31)
  • -M <hexval> MSB mask (32-47)
  • -l <intval> link number (0-47)
<hexval> is a hex number without leading 0x, e. g. 00FF0800, whereas <intval> can be an integer in any coding, but a non-decimal base must be specified: e. g. 18 = 0x12 = 0110.


* Can be copied from PPRDB or generated with ModuleAnalysis; a copy of a working TurboDAQ config directory is also a valid possibility.

Output link scan

by Paolo

I've added to CVS (PixLib/Examples) an application called OutputLinkScan which is sending 4 triggers (16 consecutive accepts) to the module(s) specified in the DB, capture the MCC out in the inmem, decode the specified channels and gives you the number of events found or the number of decoding errors (in this case the number is negative). You can also scan all the BOC delay values, so you can find the delay range giving well formatted output.

The numbers you see are ROD input lines. The conversion to the fmt:lnk needed for the OutputLink db parameter depends on the setting of the formatter registers. If the default value is used, then

ROD input line     fmt:lnk     OutputLink
---------------------------------------------- FMT 0
0
1
2                  0:0         0
3                  0:1         1
4                  0:2         2
5                  0:3         3
6
7
8
9
10 
11
----------------------------------------------- FMT 1
12
13
14                 1:0         16
15                 1:1         17
...
23
----------------------------------------------- FMT 2
24
25
26                 2:0         32
...
Examples:
./OutputLinkScan mydb.cfg.root
scan all the 96 output lines, no delay scan ./OutputLinkScan mydb.cfg.root -d
scan all the 96 output lines and the 25 delay values ./OutputLinkScan mydb.cfg.root -l 1 10
scan only output lines 1-10, no delay scan ./OutputLinkScan mydb.cfg.root -l 1 10 -l 30 35 -d
scan only output lines 1-10 and 30-35, delay 0-24

The configuration file (BaseConf.cfg.root) contents are not completely relevant for this scan tool!
The ROD/BOC link numbers will be changed anyway, according to the actual state of the scan, and all links/modules will be loaded/scanned with the same configuration file, which cannot be correct/optimal for more than one single module.

You can create a .cfg.root file to use with OutputLinkScan in this way:

  1. In Examples/BaseConf.cfg put the correct ROD slot number in the line
    FIELD general_Slot int xx
    and the correct names for the SDSP files in
    FIELD general_IPRAMFile string xxx
    FIELD general_IDRAMFile string yyy
    FIELD general_EXTFile string zzz
  2. make ModuleGroup_Wizard
  3. ./ModuleGroup.sh <config-name.cfg.root> <turboDAQ-config.cfg>
This will create a config-name.cfg.root file from your turboDAQ config file. If you want to produce a file usable for a scan (cf. next recipe), you have to modify Examples/rootDB1.0_2_2.cfg and put the correct input and output link numbers in the lines
FIELD general_InputLink int xx
FIELD general_OutputLink1 int yy
FIELD general_OutputLink2 int yy
FIELD general_OutputLink3 int yy
FIELD general_OutputLink4 int yy

Remarks, Comments

See above (under the corresponding items).
Let us know, if these recipes works or you want to suggest improvements.
()


Created: December 2004 last updated: January, 5th 2005