<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pct.wiki.uib.no/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vei046</id>
	<title>pCT - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://pct.wiki.uib.no/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vei046"/>
	<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/Special:Contributions/Vei046"/>
	<updated>2026-05-04T19:10:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=984</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=984"/>
		<updated>2022-02-08T12:50:05Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout production-test-v2.0&lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
==Calibration Curves==&lt;br /&gt;
The threshold of the analog front-end can be altered by changing certain DAC settings in the config files. Calibration curves for the relevant settings are linked below.&lt;br /&gt;
&lt;br /&gt;
[[Media: vresetd.png | VRESETD]]&lt;br /&gt;
&lt;br /&gt;
[[Media: vcasn.png | VCASN]]&lt;br /&gt;
&lt;br /&gt;
[[Media: ithr.png | ITHR]]&lt;br /&gt;
&lt;br /&gt;
[[Media: idb.png | IDB]]&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have issues with the offload. Make sure that you don&#039;t have any readout clients running in the background. This can be checked by using the top command anywhere in the terminal.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               &lt;br /&gt;
36449 vei046    20   0  618664 114944  80376 S  99.7  0.2   0:51.09 run-pdtp-pru-parser&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=983</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=983"/>
		<updated>2022-01-26T09:08:01Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
==Calibration Curves==&lt;br /&gt;
The threshold of the analog front-end can be altered by changing certain DAC settings in the config files. Calibration curves for the relevant settings are linked below.&lt;br /&gt;
&lt;br /&gt;
[[Media: vresetd.png | VRESETD]]&lt;br /&gt;
&lt;br /&gt;
[[Media: vcasn.png | VCASN]]&lt;br /&gt;
&lt;br /&gt;
[[Media: ithr.png | ITHR]]&lt;br /&gt;
&lt;br /&gt;
[[Media: idb.png | IDB]]&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have issues with the offload. Make sure that you don&#039;t have any readout clients running in the background. This can be checked by using the top command anywhere in the terminal.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               &lt;br /&gt;
36449 vei046    20   0  618664 114944  80376 S  99.7  0.2   0:51.09 run-pdtp-pru-parser&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Data_Taking&amp;diff=981</id>
		<title>Data Taking</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Data_Taking&amp;diff=981"/>
		<updated>2022-01-25T13:56:00Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;==Usage==   The data taking script is used for data taking. It can also be utilized to perform a fake hit rate test and to provide a masking pattern for data runs. The ALPIDE...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage== &lt;br /&gt;
&lt;br /&gt;
The data taking script is used for data taking. It can also be utilized to perform a fake hit rate test and to provide a masking pattern for data runs. The ALPIDE is configured to receive triggers from the Readout Unit.&lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
To run the test navigate to the test folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd tests&lt;br /&gt;
&lt;br /&gt;
$ python3 datataking.py --board=BOARD --chips=CHIPS --num_triggers=NUM_TRIGGERS --trigger_delay=TRIGGER_DELAY--strobe_duration=STROBE_DURATION --masking=MASKING --trains=TRAINS --trains_delay=TRAINS_DELAY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test outputs a time-and-date.root file located in &#039;&#039;production_tests/results/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An integrated hit map with all chips involved is automatically provided when you run the datataking.py script. The analysis script is located in&lt;br /&gt;
&#039;&#039;production_tests/plot/&#039;&#039;. A plot with the results from the test is provided and stored in &#039;&#039;production_tests/results/plots/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A masking pattern can be provided by running the masking.py script located in &#039;&#039;production_tests/plot/&#039;&#039; you can provide a masking pattern for further data taking by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ python3 masking.py ../results/datafile.root number_of_triggers_issued desired_masking_level(%) chip_id&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output of the analysis script is located in &#039;&#039;production_tests/config/masking.txt&#039;&#039; and contains a list of chip id, x and y coordinates of the noisy pixels. &lt;br /&gt;
&lt;br /&gt;
The config file for the test is located in &#039;&#039;production_tests/config/&#039;&#039;. The DAC Settings section can be edited in order to alter the performance of the ALPIDE. It is mainly the following settings that are of interest for the test: VCASN, ITHR, IDB, VRESETD.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=980</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=980"/>
		<updated>2022-01-25T10:51:55Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
==Calibration Curves==&lt;br /&gt;
The threshold of the analog front-end can be altered by changing certain DAC settings in the config files. Calibration curves for the relevant settings are linked below.&lt;br /&gt;
&lt;br /&gt;
[[Media: vresetd.png | VRESETD]]&lt;br /&gt;
&lt;br /&gt;
[[Media: vcasn.png | VCASN]]&lt;br /&gt;
&lt;br /&gt;
[[Media: ithr.png | ITHR]]&lt;br /&gt;
&lt;br /&gt;
[[Media: idb.png | IDB]]&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have issues with the offload. Make sure that you don&#039;t have any readout clients running in the background. This can be checked by using the top command anywhere in the terminal.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               &lt;br /&gt;
36449 vei046    20   0  618664 114944  80376 S  99.7  0.2   0:51.09 run-pdtp-pru-parser&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Vcasn.png&amp;diff=979</id>
		<title>File:Vcasn.png</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Vcasn.png&amp;diff=979"/>
		<updated>2022-01-25T10:51:03Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Calibration curve for VCASN&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Idb.png&amp;diff=978</id>
		<title>File:Idb.png</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Idb.png&amp;diff=978"/>
		<updated>2022-01-25T10:50:43Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Calibration curve for IDB&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Ithr.png&amp;diff=977</id>
		<title>File:Ithr.png</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Ithr.png&amp;diff=977"/>
		<updated>2022-01-25T10:50:21Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Calibration curve for ITHR&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Vresetd.png&amp;diff=976</id>
		<title>File:Vresetd.png</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Vresetd.png&amp;diff=976"/>
		<updated>2022-01-25T10:48:42Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Calibration curve for VRESETD&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Main_Page&amp;diff=975</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Main_Page&amp;diff=975"/>
		<updated>2022-01-24T15:03:12Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Wiki for the proton CT project&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation and Howto&#039;s ==&lt;br /&gt;
&lt;br /&gt;
* [[Documentation|Software Documentation]] on how to install and use the involved software packages, how to use the GitLab service, and about the development workflow, etc.&lt;br /&gt;
&lt;br /&gt;
* [[Hardware Documentation and Howto&#039;s]]&lt;br /&gt;
&lt;br /&gt;
* [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]]&lt;br /&gt;
&lt;br /&gt;
* [[ALPIDE Documentation and Papers]]&lt;br /&gt;
&lt;br /&gt;
== [[Publications]] ==&lt;br /&gt;
List of publications from the project.&lt;br /&gt;
&lt;br /&gt;
==== Workpackage Reports ====&lt;br /&gt;
* [[Media:pCT-WP1-1-Rev2 design recommendations.pdf | pCT-WP1-01-Rev2 Detector design specifications]] (Rev2: Added carrier board thickness recommendations) --- See also submitted article on design optimization&lt;br /&gt;
* [[:File:pCT-WP1-02-Rev3 (Radiation environment and electronics).pdf | pCT-WP1-02-Rev3 Radiation environment and placement of electronics]] (Rev2: Updated results and assumptions, Rev3: Updated with 1-10cm results) (Please feel free to contact [mailto:jars@hvl.no Jarle Rambo Sølie] if there are any questions regarding the contents of this document.&lt;br /&gt;
&lt;br /&gt;
==== Theses ====&lt;br /&gt;
* Daniel Aadnevik - MSc - 2014 - Extremely high-granularity digital tracking calorimeter for the detection of scattered protons in pCT&lt;br /&gt;
* [http://bora.uib.no/bitstream/handle/1956/10412/135279255.pdf?sequence=1&amp;amp;isAllowed=y Kristian Austreim - MSc - 2015 - Proton computed tomography readout testing and detector design]&lt;br /&gt;
* [http://bora.uib.no/bitstream/handle/1956/16041/thesis_final.pdf?sequence=1&amp;amp;isAllowed=y Ola Grøttvik - MSc - 2017 - Design of High-Speed Digital Readout System for Use in Proton Computed Tomography]&lt;br /&gt;
* [http://bora.uib.no/bitstream/handle/1956/16758/PCT_readout_testing_and_detector_HSchaug.pdf?sequence=1&amp;amp;isAllowed=y Håkon Schaug - MSc - 2017 - Proton Beam Test Of A High Granularity Calorimeter For Proton Computed Tomography]&lt;br /&gt;
* [https://brage.bibsys.no/xmlui/bitstream/handle/11250/2434108/16246_FULLTEXT.pdf?sequence=1&amp;amp;isAllowed=y Even Hansen - MSc - 2017 - Charge Diffusion Modelling for a Monolithic Active Pixel Sensor Detector with Application to Proton CT]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/17757 Helge Pettersen - PhD - 2018 - A Digital Tracking Calorimeter for Proton Computed Tomography]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/18748 Simon Kristian Huiberts - MSc - 2018 - Characterization of the ALPIDE chip using He ions (Data from Australian Micro beam, cluster size characteristics). ]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/18058 Viljar Nilsen Ekeland - MSc - 2018 - Characterization of the ALPIDE chip using protons (Data from Oslo beam test, cluster size and LET correlation with different bias voltages).]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/18057 Susmita Afroz - MSc - 2018 - Noise and Cluster Size Studies of ALPIDE-CMOS Pixel Sensor for pCT]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/918/ H&amp;amp;aring;kon Andreas Underdal - MSc (HVL) - 2019 - Data Acquisition and Testing Software for a Proton Computed Tomography System  ]&lt;br /&gt;
* [http://bora.uib.no/handle/1956/20857  Silje Grimstad - MSc (HVL) - 2019 - ALPIDE Cluster simulations (Building database of cluster characteristics, simulation of clusters using said database. Position and cluster separation algorithms)].&lt;br /&gt;
* [http://resolver.tudelft.nl/uuid:e8d3f687-43ff-4d5f-a594-2e7d805f146b Alba Garcia Santos - MSc (Utrecht) - 2019 - Improvements of track reconstruction algorithms in pixel-based pCT calorimeters]&lt;br /&gt;
* [https://hdl.handle.net/1956/21101 Aleksei Kuleshov - MSc - 2019 - Proton CT monitoring and ALPIDE control (MQTT protocol server, System workflow, GUI implementation).]&lt;br /&gt;
* [https://bora.uib.no/bora-xmlui/handle/1956/24109 Øistein Jelmert Skjolddal - MSc (HVL) - 2020 Scalable Readout for Proton CT - pRU parser and Root interface.]&lt;br /&gt;
* [https://bora.uib.no/bora-xmlui/handle/11250/2716854 Jarle Rambo Sølie - PhD (HVL/UiB) - 2020 A Monte Carlo simulation framework for performance evaluation of a proton imaging system without front trackers.]&lt;br /&gt;
* [https://hdl.handle.net/11250/2725567 Ola Grøttvik - PhD (UiB) - 2021 Design and Implementation of a High-Speed Readout and Control System for a Digital Tracking Calorimeter for proton CT.]&lt;br /&gt;
* [https://hdl.handle.net/11250/2770399 Alf Kristoffer Herland - MSc (HVL) - 2021 Development and implementation of data acquisition software for proton computed tomography.]&lt;br /&gt;
&lt;br /&gt;
==== Journal Articles ====&lt;br /&gt;
* Alme, J., Barnaföldi, G.G., Barthel, R., Borshchov, V., Bodova, T., van den Brink, A., et al. &amp;lt;b&amp;gt;A High-Granularity Digital Tracking Calorimeter Optimized for Proton CT. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;Frontiers in Physics.&amp;lt;/i&amp;gt;  2020;8(460). &lt;br /&gt;
** Published manuscript: [[Media:10.3389_fphy.2020.568243.pdf | PDF]]&lt;br /&gt;
** Frontiers link: [https://www.frontiersin.org/article/10.3389/fphy.2020.568243 doi:10.3389/fphy.2020.568243]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, H.E.S., Volz, L., Sølie, J. R., Alme, J., Barnaföldi, G.G., Barthel, R. et al. &amp;lt;b&amp;gt;Helium Radiography with a Digital Tracking Calorimeter-a Monte Carlo Study for Secondary Track Rejection. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt; Phys. Med. Biol.&amp;lt;/i&amp;gt; 2021;66(3):035004. &lt;br /&gt;
** Published manuscript: [[Media: Pettersen_2021_Phys._Med._Biol._66_035004.pdf | PDF]]&lt;br /&gt;
** IOP Science link: [https://iopscience.iop.org/article/10.1088/1361-6560/abca03 doi:10.1088/1361-6560/abca03]&lt;br /&gt;
&lt;br /&gt;
* Sølie, J.R., Volz, L., Pettersen H.E.S., Piersimoni, P., Odland, O.H., Röhrich, D., et al. &amp;lt;b&amp;gt;Image quality of list-mode proton imaging without front trackers. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt; Phys. Med. Biol.&amp;lt;/i&amp;gt; 2020;65(13):135012. &lt;br /&gt;
** Published manuscript: [[Media: 10.1088_1361-6560_ab8.pdf | PDF]]&lt;br /&gt;
** IOP Science link: [https://iopscience.iop.org/article/10.1088/1361-6560/ab8ddb doi:10.1088/1361-6560/ab8ddb]&lt;br /&gt;
&lt;br /&gt;
* Tambave, G., Alme, J., Barnaföldi, G.G., Barthel, R., Van Den Brink, A., Brons, S., et al.&amp;lt;b&amp;gt; Characterization of monolithic CMOS pixel sensor chip with ion beams for application in particle computed tomography. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt; Nuclear Instruments and Methods in Physics Research Section A&amp;lt;/i&amp;gt; 2020;958:162626. &lt;br /&gt;
** Published manuscript: [[Media: Tambave-2020-Characterization-of-monolithic-cm.pdf| PDF]]&lt;br /&gt;
** Elsevier link: [https://www.sciencedirect.com/science/article/pii/S0168900219311258?via%3Dihub doi:10.1016/j.nima.2019.162626]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, H.E.S., J. Alme, A. van den Brink, M. Chaar, D. Fehlker, I. Meric, O.H. Odland, et al. &amp;lt;b&amp;gt;Proton Tracking in a High-Granularity Digital Tracking Calorimeter for Proton CT Purposes&amp;lt;/b&amp;gt;.  &amp;lt;i&amp;gt;Nuclear Instruments and Methods in Physics Research A 860C, 51–61. doi:10.1016/j.nima.2017.02.007.&amp;lt;/i&amp;gt;&lt;br /&gt;
** Published manuscript: [[Media: 1-s2.0-S0168900217301882-main.pdf | PDF]]&lt;br /&gt;
** Elsevier link: [http://www.sciencedirect.com/science/article/pii/S0168900217301882 doi:10.1016/j.nima.2017.02.007]&lt;br /&gt;
** arXiv link: [https://arxiv.org/abs/1611.02031 arXiv:1611.02031]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, H.E.S., Chaar, M., Meric, I., Odland, O.H., Sølie, J., Röhrich, D. &amp;lt;b&amp;gt;Accuracy of parameterized proton range models; a comparison&amp;lt;/b&amp;gt;. &amp;lt;i&amp;gt;Radiation Physics and Chemistry, 144 (C): 295-297 (2018). doi:10.1016/j.radphyschem.2017.08.02&amp;lt;/i&amp;gt;&lt;br /&gt;
** Published manuscript: [[Media: Comparison of different calculation methods of proton ranges.pdf | PDF]]&lt;br /&gt;
** Elsevier link: [http://www.sciencedirect.com/science/article/pii/S0969806X17303869?via%3Dihub 10.1016/j.radphyschem.2017.08.028]&lt;br /&gt;
** arXiv link: [https://arxiv.org/abs/1704.08854  arXiv:1704.08854]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, H. E. S., and D. Röhrich. 2017. &amp;lt;b&amp;gt;Kreftbehandling Med Protonterapi Og Proton CT.&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;Fra Fysikkens Verden, December 2017.&amp;lt;/i&amp;gt;&lt;br /&gt;
** Published article: [[Media: FFV-proton-CT-ensidig.pdf | PDF]]&lt;br /&gt;
** [http://norskfysisk.no/filer/FFV/2017/FFV-2017-4.pdf Magazine at norskfysisk.no]&lt;br /&gt;
&lt;br /&gt;
==== In review ====&lt;br /&gt;
* Pettersen, H.E.S., Meric, I., Odland, O.H., Shafiee, H., Sølie, J., Röhrich, D. &amp;lt;b&amp;gt;Proton Tracking Algorithm for Pixel Based Range Telescopes for Proton Computed Tomography&amp;lt;/b&amp;gt;. &amp;lt;i&amp;gt;Revision submitted to Web of Conferences after the &amp;quot;Connecting the Dots&amp;quot; conference.&amp;lt;/i&amp;gt;&lt;br /&gt;
** Revised manuscript: [[Media: detector-proton-tracking.pdf | PDF]]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, Helge Egil Seime, Lennart Volz, Jarle Sølie, Dieter Rohrich, and Joao Seco. &amp;lt;b&amp;gt;A Linear Projection Model to Estimate a Proton’s Position in a Pencil Beam For Single Sided Proton Imaging,&amp;lt;/b&amp;gt;. &amp;lt;i&amp;gt;Submitted to Physics in Medicine and Biology.&amp;lt;/i&amp;gt;&lt;br /&gt;
** Submitted manuscript: [[Media: Authors manuscript.pdf | PDF]]&lt;br /&gt;
&lt;br /&gt;
* Pettersen, Helge Egil Seime, Johan Alme, Gergely Gabor Barnafoldi, Alba Garcıa-Santos, Ola Grøttvik, Håvard Helstrup, Kristin Fanebust Hetland, Ilker Meric, Odd Harald Odland, Gabor Papp, Thomas Peitzmann, Dieter Röhrich, Joao Seco, Hesam Shafiee, Eivind Vågslid Skjæveland, Ganesh Tambave, Kjetil Ullaland, Monika Varga-Kofarago, Lennart Volz, Boris Wagner and Shiming Yang. &amp;lt;b&amp;gt;Design Optimization of a Pixel Based Range Telescope for Proton Computed Tomography.&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;Submitted to Physica Medica Special Issue: Advances in Geant4 for medicine.&amp;lt;/i&amp;gt;&lt;br /&gt;
** Submitted manuscript: [[Media: Pettersen et al. - Design Optimization of a Pixel Based Range Telesco.pdf| PDF]]&lt;br /&gt;
&lt;br /&gt;
* Eikeland, Viljar Nilsen et al. &amp;lt;b&amp;gt; Bergen Proton CT System. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt; Submitted as proceedings for the 12th Position Sensitive Detectors conference. &amp;lt;/i&amp;gt;&lt;br /&gt;
** Submitted manuscript: [[Media: psd_proceedings.pdf | PDF]]&lt;br /&gt;
&lt;br /&gt;
==== Posters ====&lt;br /&gt;
* Eikeland, Viljar Nilsen. &amp;lt;b&amp;gt; Bergen proton CT system. &amp;lt;/b&amp;gt; &amp;lt;i&amp;gt; Presented at the 12th Position Sensitive Detectors conference.&amp;lt;/i&amp;gt; &lt;br /&gt;
** Submitted poster [[Media: poster_PSD12.pdf | PDF]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Work in Progress ====&lt;br /&gt;
* J. Sølie, H. E. S. Pettersen, I. Meric, O. H. Odland, H. Helstrup and D. Röhrich: &amp;lt;b&amp;gt;A comparison of longitudinal and lateral range for protons traversing complex media using GATE, MCNP6 and FLUKA Monte Carlo simulations.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Hosted on Indico  https://indico.cern.ch/category/13882.&lt;br /&gt;
&lt;br /&gt;
The old pages on the wiki can be found here: [[Meetings]]&lt;br /&gt;
&lt;br /&gt;
Slides from the project [[Workshops | workshops in 2016]]&lt;br /&gt;
&lt;br /&gt;
== [[Commissioning]] ==&lt;br /&gt;
Planning and information on [[Commissioning | commissioning, beam tests, etc]].&lt;br /&gt;
&lt;br /&gt;
== [[Workpackages]] ==&lt;br /&gt;
Sections for the different [[Workpackages | work packages]]&lt;br /&gt;
&lt;br /&gt;
== [[People]] ==&lt;br /&gt;
Contact info of involved people &lt;br /&gt;
&lt;br /&gt;
== [[Links]] ==&lt;br /&gt;
Link collection of topics regarding the project&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* Note: ASK is a placeholder that marks questions &lt;br /&gt;
* Note: Search function is not ideal. It doesn&#039;t find all occurences of the search term, e.g. aries finds libraries but not aries.bccs&lt;br /&gt;
&lt;br /&gt;
* Consult the [//meta.wikimedia.org/wiki/Help:Contents User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Psd_proceedings.pdf&amp;diff=974</id>
		<title>File:Psd proceedings.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Psd_proceedings.pdf&amp;diff=974"/>
		<updated>2022-01-24T14:59:49Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proceedings submitted for the 12th PSD conference&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Poster_PSD12.pdf&amp;diff=973</id>
		<title>File:Poster PSD12.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Poster_PSD12.pdf&amp;diff=973"/>
		<updated>2022-01-24T14:49:09Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Poster presented at the PSD12 conference&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Register_Test&amp;diff=972</id>
		<title>Register Test</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Register_Test&amp;diff=972"/>
		<updated>2022-01-24T14:21:27Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;==Usage==   The Register Test is used to evaluate the communication with the ALPIDE Sensor. All registers on the ALPIDE is written to and read back to confirm that the write p...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage== &lt;br /&gt;
&lt;br /&gt;
The Register Test is used to evaluate the communication with the ALPIDE Sensor. All registers on the ALPIDE is written to and read back to confirm that the write process was successful. &lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
To run the test navigate to the test folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd tests&lt;br /&gt;
&lt;br /&gt;
$ python3 registertest.py --board=BOARD --tctype=TCTYPE --chips=CHIPS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This file is automatically analyzed when you run the registertest.py script. &lt;br /&gt;
The result and classification is provided in the terminal. The ALPIDE sensor can get &#039;&#039;&#039;GOLD&#039;&#039;&#039; or &#039;&#039;&#039;NOK&#039;&#039;&#039; as a classification based on the result of the test.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Threshold_Scan&amp;diff=971</id>
		<title>Threshold Scan</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Threshold_Scan&amp;diff=971"/>
		<updated>2022-01-24T14:19:16Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;==Usage==   The Threshold Scan is used to evaluate the threshold of the analog front-end of the ALPIDE Sensor. It configure the ALPIDE to have a threshold &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;. It then inj...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage== &lt;br /&gt;
&lt;br /&gt;
The Threshold Scan is used to evaluate the threshold of the analog front-end of the ALPIDE Sensor. It configure the ALPIDE to have a threshold &#039;&#039;&#039;X&#039;&#039;&#039;. It then injects a charge &#039;&#039;&#039;C1&#039;&#039;&#039; ranging from 0-50 DAC units to see the response in the pixel-matrix. The threshold of a pixel is determined by when it starts to respond to the injected charge. The result is presented for the entire pixel-matrix, where the average of the pixel thresholds are calculated.&lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
To run the test navigate to the test folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd tests&lt;br /&gt;
&lt;br /&gt;
$ python3 threholdscan.py --board=BOARD --tctype=TCTYPE --chips=CHIPS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test outputs a time-and-date.root file located in &#039;&#039;production_tests/results/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This file is automatically analyzed when you run the thresholdscan.py script. The analysis script is located in &#039;&#039;production_tests/plot/&#039;&#039;. A plot with the results from the test is provided and stored in &#039;&#039;production_tests/results/plots/&#039;&#039;. The plot will have the following name threshold_scan_chip_id_{}.png&lt;br /&gt;
The result and classification is also provided in the terminal. The ALPIDE sensor can get &#039;&#039;&#039;GOLD, SILVER, BRONZE&#039;&#039;&#039; or &#039;&#039;&#039;NOK&#039;&#039;&#039; as a classification based on the result of the test. &lt;br /&gt;
&lt;br /&gt;
The config file for the test is located in &#039;&#039;production_tests/config/&#039;&#039;. The DAC Settings section can be edited in order to alter the performance of the ALPIDE. It is mainly the following settings which are of interest for the test: VCASN, ITHR, IDB, VRESETD.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Digital_Scan&amp;diff=970</id>
		<title>Digital Scan</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Digital_Scan&amp;diff=970"/>
		<updated>2022-01-24T14:15:39Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;==Usage==   The Digital Scan is used to evaluate the digital part of the ALPIDE Sensor. It checks the pixel-matrix for unmaskable pixels, unpulsable pixels and stuck pixels. O...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage== &lt;br /&gt;
&lt;br /&gt;
The Digital Scan is used to evaluate the digital part of the ALPIDE Sensor. It checks the pixel-matrix for unmaskable pixels, unpulsable pixels and stuck pixels. One trigger is sent per mask setting and the entire pixel matrix is tested in the procedure. &lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
To run the test navigate to the test folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd tests&lt;br /&gt;
&lt;br /&gt;
$ python3 digitalscan.py --board=BOARD --tctype=TCTYPE --chips=CHIPS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test outputs a time-and-date.root file located in &#039;&#039;production_tests/results/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This file is automatically analyzed when you run the digitalscan.py script. The analysis script is located in&lt;br /&gt;
&#039;&#039;production_tests/plot/&#039;&#039;. The result and classification is provided in the terminal. The ALPIDE sensor can get &#039;&#039;&#039;GOLD, SILVER, BRONZE&#039;&#039;&#039; or &#039;&#039;&#039;NOK&#039;&#039;&#039; as a classification based on the result of the test.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=969</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=969"/>
		<updated>2022-01-24T11:43:53Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have issues with the offload. Make sure that you don&#039;t have any readout clients running in the background. This can be checked by using the top command anywhere in the terminal.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               &lt;br /&gt;
36449 vei046    20   0  618664 114944  80376 S  99.7  0.2   0:51.09 run-pdtp-pru-parser&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=968</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=968"/>
		<updated>2022-01-24T11:40:16Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have issues with the offload. Make sure that you don&#039;t have any readout clients running in the background. This can be checked by using the top command anywhere in the terminal.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=967</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=967"/>
		<updated>2022-01-24T11:38:56Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trouble Shooting==&lt;br /&gt;
If it is difficult to establish communication with the board/alpides the following error message may be displayed when running a text:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$  File &amp;quot;registertest.py&amp;quot;, line 276, in &amp;lt;module&amp;gt;&lt;br /&gt;
    register_test(args[&#039;--board&#039;], args[&#039;--tctype&#039;], args[&#039;--chips&#039;])&lt;br /&gt;
  File &amp;quot;registertest.py&amp;quot;, line 48, in register_test&lt;br /&gt;
    board = BoardPTB()&lt;br /&gt;
  File &amp;quot;../bsp/board_ptb.py&amp;quot;, line 43, in __init__&lt;br /&gt;
    super(BoardPTB, self).__init__(interface=MainSocket(49153, &amp;quot;192.168.1.10&amp;quot;, &amp;quot;SOCK_STREAM&amp;quot;))&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 29, in __init__&lt;br /&gt;
    self.open_socket(socket_type)&lt;br /&gt;
  File &amp;quot;../bsp/mainsocket.py&amp;quot;, line 55, in open_socket&lt;br /&gt;
    self.sock.connect((self.addr, self.port))&lt;br /&gt;
KeyboardInterrupt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that the necessary ports are open, this can be checked by the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -L&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to open a port, this can be done with the following command. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ sudo iptables -I INPUT -p udp --sport portnumber -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the VCU118 board, udp is used in communication. For the PTB tcp is used. You also need to specify if the port is source or destination. This is the --sport/--dport argument.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Analog_Scan&amp;diff=966</id>
		<title>Analog Scan</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Analog_Scan&amp;diff=966"/>
		<updated>2022-01-21T13:20:23Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;==Usage==   The Analog Scan is used to evaluate the analog front-end of the ALPIDE Sensor. It configure the ALPIDE to have a threshold &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;. It then injects a charge &amp;#039;&amp;#039;&amp;#039;C1&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Usage== &lt;br /&gt;
&lt;br /&gt;
The Analog Scan is used to evaluate the analog front-end of the ALPIDE Sensor. It configure the ALPIDE to have a threshold &#039;&#039;&#039;X&#039;&#039;&#039;. It then injects a charge &#039;&#039;&#039;C1&#039;&#039;&#039;&amp;lt;&amp;lt;&#039;&#039;&#039;X&#039;&#039;&#039; to look for noisy pixels in the pixel-matrix. If a pixel reports a hit when &#039;&#039;&#039;C1&#039;&#039;&#039; is low the pixel is deemed noisy. It then injects a charge &#039;&#039;&#039;C2&#039;&#039;&#039;&amp;gt;&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039; to look for dead pixels. If a pixel is not responding to the injected charge &#039;&#039;&#039;C2&#039;&#039;&#039; it is deemed to be dead. The test can be used to either test a subset of pixels or the entire pixel-matrix. &lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
To run the test navigate to the test folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd tests&lt;br /&gt;
&lt;br /&gt;
$ python3 analogscan.py --board=BOARD --tctype=TCTYPE --chips=CHIPS --matrix=MATRIX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test outputs a time-and-date.root file located in &#039;&#039;production_tests/results/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This file is automatically analyzed when you run the analogscan.py script. The analysis script is located in&lt;br /&gt;
&#039;&#039;production_tests/plot/&#039;&#039;. A plot with the results from the test is provided and stored in &#039;&#039;production_tests/results/plots/&#039;&#039;. The plot will have the following name analog_scan_chip_id_{}.png&lt;br /&gt;
The result and classification is also provided in the terminal. The ALPIDE sensor can get &#039;&#039;&#039;GOLD, SILVER, BRONZE&#039;&#039;&#039; or &#039;&#039;&#039;NOK&#039;&#039;&#039; as a classification based on the result of the test. &lt;br /&gt;
&lt;br /&gt;
The config file for the test is located in &#039;&#039;production_tests/config/&#039;&#039;. The DAC Settings section can be edited in order to alter the performance of the ALPIDE. It is mainly the following settings which are of interest for the test: VCASN, ITHR, IDB, VRESETD.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=965</id>
		<title>Running Test Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Test_Software&amp;diff=965"/>
		<updated>2022-01-21T13:04:02Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;Main Page -&amp;gt; Control &amp;amp; Readout Software Documentation and Howto&amp;#039;s -&amp;gt; Running Test Software  This is a guide for how to install and run the test software.  == Softw...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
This is a guide for how to install and run the test software.&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The test software consists of multiple tests which aims to provide a classification of the ALPIDE chip and scripts needed to run the ALPIDE in a beam environment. &lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires installation of the pct-online software. &lt;br /&gt;
&lt;br /&gt;
It also requires a working version of rootpy, the installation guide can be accessed at http://www.rootpy.org/install.html&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the Test software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/production_tests.git&lt;br /&gt;
&lt;br /&gt;
$ cd production_tests&lt;br /&gt;
&lt;br /&gt;
$ git checkout v2.0 &lt;br /&gt;
&lt;br /&gt;
$ pip3 install -r requirements.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to use the test software.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The How to and usage for individual tests are listed in their dedicated pages linked below:&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
*[[Analog Scan | Analog Scan]]&lt;br /&gt;
*[[Digital Scan | Digital Scan]]&lt;br /&gt;
*[[Threshold Scan | Threshold Scan]]&lt;br /&gt;
*[[DTU Scans | DTU Scans]]&lt;br /&gt;
*[[Register Test | Register Test]]&lt;br /&gt;
*[[High Speed Link Test | High Speed Link Test]]&lt;br /&gt;
*[[FIFO Test | FIFO Test]]&lt;br /&gt;
*[[Slow Control Test | Slow Control Test]]&lt;br /&gt;
*[[Power Test | Power Test]]&lt;br /&gt;
*[[PRBS Test | PRBS Test]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Data Taking==&lt;br /&gt;
The test software can also be used to perform data taking. This information can be accessed here *[[Data Taking | Data Taking]]&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=964</id>
		<title>Control &amp; Readout Software Documentation and Howto&#039;s</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=964"/>
		<updated>2022-01-21T13:03:42Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]]&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
*[[Media:Requirements.pdf | Requirements]]&lt;br /&gt;
*[[Building Boost | Building Boost]]&lt;br /&gt;
*[[Building IPBus Software | Building IPBus Software]]&lt;br /&gt;
*[[Building ROOT | Building ROOT]]&lt;br /&gt;
*[[Building pct-online software | Building pct-online software]]&lt;br /&gt;
*[[Using IPbus | Using IPbus]]&lt;br /&gt;
*[[Running pDTPClient | Running pDTPClient]]&lt;br /&gt;
*[[Running pRUParser | Running pRUParser]]&lt;br /&gt;
*[[Running Configuration Software | Running Configuration Software]]&lt;br /&gt;
*[[Running Test Software | Running Test Software]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
The test software communicates with the readout unit and the ALPIDE via a series of registers. Once the test is initiated, a communication link with the readout unit will be set up. The register values specified in the test will set up the readout board and the ALPIDE. Data is then transferred from the ALPIDE to the readout unit via a firefly cable and offload from the readout unit is done via a 10 Gb high speed link. &lt;br /&gt;
The data is transferred to the the pRU parser, which is responsible for debugging and writing the data to a .root format. This data can then be analyzed to verify the results of the test in question.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ALPIDE Registers ===&lt;br /&gt;
Alpide Registers are registers that can be set on the ALPIDE chip. &lt;br /&gt;
&lt;br /&gt;
This includes configuration registers to specify masking, pusling, strobe generation and configuration of the electrical part on the ALPIDE.    &lt;br /&gt;
&lt;br /&gt;
Specification on registers can be found in the ALPIDE manual&lt;br /&gt;
&lt;br /&gt;
=== Readout Unit Registers ===&lt;br /&gt;
Readout unit registers are registers that can be set on the readout board.&lt;br /&gt;
&lt;br /&gt;
This includes offload, triggering, global regs, alpide control and monitoring of different register via alpide data &lt;br /&gt;
&lt;br /&gt;
Specifications on registers can be found in their respective modules&lt;br /&gt;
&lt;br /&gt;
== Module Registers ==&lt;br /&gt;
*[[Media:Alpide control.pdf | Alpide control]]&lt;br /&gt;
*[[Media:Alpide data.pdf | Alpide data]]&lt;br /&gt;
*[[Media:Global regs.pdf | Global regs]]&lt;br /&gt;
*[[Media:Trigger manager.pdf | Trigger manager]]&lt;br /&gt;
*[[Media:Offload.pdf | Offload]]&lt;br /&gt;
&lt;br /&gt;
== ALPIDE Manual ==&lt;br /&gt;
*[[Media:ALPIDEmanual_v0_3.pdf | Alpide manual]]&lt;br /&gt;
&lt;br /&gt;
== .root format ==&lt;br /&gt;
* readout unit id&lt;br /&gt;
* stave id&lt;br /&gt;
* chip id&lt;br /&gt;
* frame id&lt;br /&gt;
* abs time (120 Mhz clock)&lt;br /&gt;
* bunch counter (40 Mhz clock)&lt;br /&gt;
* xy (hit coordinate)&lt;br /&gt;
&lt;br /&gt;
== Network Stack Tuning Guide ==&lt;br /&gt;
Disclaimer: This guide applies to the Linux distribution CentOS and the Intel X710-DA2 network card using the User Datagram Protocol (UDP). (There might be some small variations with other distributions and other network cards).&lt;br /&gt;
=== Intel X710-DA2 Considerations ===&lt;br /&gt;
The X710-DA2 needs to be installed in a 8.0 GT/s, x8 lanes PCIe slot, additionally the card needs to be on its own PCI-E bus (many physical PCI-E slots share the same bus)[https://www.intel.com/content/www/us/en/support/articles/000005811/network-and-io/ethernet-products.html]. To determine what PCIe slots your motherboard has, please refer to the documentation provided by the manufacturer of your hardware.&lt;br /&gt;
 &lt;br /&gt;
* To identify which bus your card is installed in and that it is alone on that bus on run the command: &lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo lshw -numeric&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Network card ring buffer ====&lt;br /&gt;
There is an HW buffer on the card itself, this buffer can be viewed with the command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -g &amp;lt;interface name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
and adjusted to the maximum size with the command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -G &amp;lt;interace name&amp;gt; rx 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS Considerations ===&lt;br /&gt;
* To list the relevant network settings in the kernel use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo sysctl -a | grep net.ipv4 and sudo sysctl -a | grep net.core&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identifying possible bottlenecks ===&lt;br /&gt;
* To list network statistics from the network card(s) use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -S &amp;lt;interface name&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
* To list UDP drops realtime every second use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ netstat -sune 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* To view package drops directly in the kernel use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo dropwatch -l kas&amp;lt;/code&amp;gt; and write start&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking the system ===&lt;br /&gt;
To run a benchmark on you fast the system is you can either set the test registers with test data via the DCS(IPBus) or a custom firmware can be obtained from the [https://git.app.uib.no/pct/pDTP pDTP repo] under CI/CD -&amp;gt; Pipelines -&amp;gt; Artifacts NOTE: This requires using Vivado to upload the firmware to the VCU118 board. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test code for a simple C++ client can be found here: [[client_benchmark.cpp]]. (Rename file type to CPP)&lt;br /&gt;
This client will send a stream request to hardware for 65535 packages, 15 times in the package size range from 2480 to 4080&lt;br /&gt;
&lt;br /&gt;
To build:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ g++ -O2 -Wno-narrowing client_benchmark.cpp -o client_executable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./client_executable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Building_pct-online_software&amp;diff=947</id>
		<title>Building pct-online software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Building_pct-online_software&amp;diff=947"/>
		<updated>2021-06-23T11:27:07Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
This is mainly a guide for how to install on a Ubuntu system, but could be used with other operating systems with minor to no changes.&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires a special installation of ROOT. The easiest way to install the correct version is to follow this guide https://wiki.uib.no/pct/index.php/Building_ROOT under Installation for pCT-Online on Ubuntu systems.&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
If everything above was done properly the rest of the steps below should result in a working version of the pct-online software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the pct-online software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone https://git.app.uib.no/pct/pct-online.git&lt;br /&gt;
&lt;br /&gt;
$ cd pct-online&lt;br /&gt;
&lt;br /&gt;
$ git checkout v1.0 &lt;br /&gt;
&lt;br /&gt;
$ mkdir build&lt;br /&gt;
&lt;br /&gt;
$ cd build&lt;br /&gt;
&lt;br /&gt;
$ scl enable devtoolset-8 bash&lt;br /&gt;
&lt;br /&gt;
$ cmake3 ..&lt;br /&gt;
&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Building_pct-online_software&amp;diff=946</id>
		<title>Building pct-online software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Building_pct-online_software&amp;diff=946"/>
		<updated>2021-06-23T08:05:15Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You need access to the project at https://git.app.uib.no/pct&lt;br /&gt;
&lt;br /&gt;
This is mainly a guide for how to install on a Ubuntu system, but could be used with other operating systems with minor to no changes.&lt;br /&gt;
&lt;br /&gt;
Requires devtoolset-7 or higher, gcc 7.3 or higher.&lt;br /&gt;
&lt;br /&gt;
The software requires a special installation of ROOT. The easiest way to install the correct version is to follow this guide https://wiki.uib.no/pct/index.php/Building_ROOT under Installation for pCT-Online on Ubuntu systems.&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed all other requirements: https://wiki.uib.no/pct/img_auth.php/d/d5/Requirements.pdf&lt;br /&gt;
&lt;br /&gt;
If everything above was done properly the rest of the steps below should result in a working version of the pct-online software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using a terminal in the location where you want to install the pct-online software:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone git@git.app.uib.no:pct/pct-online.git&lt;br /&gt;
&lt;br /&gt;
$ cd pct-online&lt;br /&gt;
&lt;br /&gt;
$ git checkout v1.0 &lt;br /&gt;
&lt;br /&gt;
$ mkdir build&lt;br /&gt;
&lt;br /&gt;
$ cd build&lt;br /&gt;
&lt;br /&gt;
$ scl enable devtoolset-8 bash&lt;br /&gt;
&lt;br /&gt;
$ cmake3 ..&lt;br /&gt;
&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Building_ROOT&amp;diff=945</id>
		<title>Building ROOT</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Building_ROOT&amp;diff=945"/>
		<updated>2021-06-21T11:22:58Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Building ROOT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the pCT project we need to use a version of ROOT which is compiled with c++17 in order to build packages with ROOT dependencies with c++17 standard. . &lt;br /&gt;
&lt;br /&gt;
ROOT implements a custom adaptor to &amp;lt;code&amp;gt;std::string_view&amp;lt;/code&amp;gt; if not compiled with c++17 and this conflicts with the real one if a packages uses c++17 standard and ROOT libraries/includes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo yum install git cmake gcc-c++ gcc binutils \&lt;br /&gt;
libX11-devel libXpm-devel libXft-devel libXext-devel \&lt;br /&gt;
gcc-gfortran openssl-devel pcre-devel \&lt;br /&gt;
mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel mysql-devel \&lt;br /&gt;
fftw-devel cfitsio-devel graphviz-devel \&lt;br /&gt;
avahi-compat-libdns_sd-devel libldap-dev python3-devel \&lt;br /&gt;
libxml2-devel gsl-static gsl-devel \&lt;br /&gt;
libAfterImage libAfterImage-devel \&lt;br /&gt;
centos-release-scl devtoolset-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo python3 -m pip install numpy&lt;br /&gt;
&lt;br /&gt;
# clone the repository and select version&lt;br /&gt;
git clone http://github.com/root-project/root.git&lt;br /&gt;
cd root&lt;br /&gt;
git checkout v6-20-00-rc1&lt;br /&gt;
&lt;br /&gt;
# choose a build directory&lt;br /&gt;
mkdir build_root; cd build_root&lt;br /&gt;
&lt;br /&gt;
scl enable devtoolset-8 bash&lt;br /&gt;
&lt;br /&gt;
# configure: choose install target, on the lab machine we need to disable asimage for some reason&lt;br /&gt;
# the important flag is the C++ standard&lt;br /&gt;
cmake3 -DCMAKE_INSTALL_PREFIX=/opt/root -DCMAKE_CXX_STANDARD=17 -DPYTHON_EXECUTABLE=/usr/bin/python3 ../&lt;br /&gt;
&lt;br /&gt;
#build and install&lt;br /&gt;
sudo cmake3 --build . --target install -- -j4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember to add root details to your environment, e.g. /etc/bashrc:&lt;br /&gt;
(LD_LIBRARY_PATH and PYTHONPATH must BOTH be set for pyroot to work)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export ROOTSYS=/opt/root&lt;br /&gt;
source $ROOTSYS/bin/thisroot.sh&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=/opt/root/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
export PYTHONPATH=/opt/root/lib:$PYTHONPATH&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation for pCT-Online on Ubuntu systems ==&lt;br /&gt;
&lt;br /&gt;
Install  dependencies: sudo  apt-get  install  dpkg-dev  binutils  libx11-devlibxpm-dev libxft-dev libxext-dev libpng-dev libjpeg-dev&lt;br /&gt;
&lt;br /&gt;
If you lack certain dependencies install everything listed in the above documentation before the &amp;quot;# clone the repository and select version&amp;quot; line. Disregard this if your installation works.&lt;br /&gt;
&lt;br /&gt;
In a terminal move to the folder where you want to install ROOT.&lt;br /&gt;
&lt;br /&gt;
Follow these commands:&lt;br /&gt;
&lt;br /&gt;
* git clone http://github.com/root-project/root.git&lt;br /&gt;
* cd root&lt;br /&gt;
* git checkout v6-20-00-rc1 (other releases might also work) IMPORTANT!&lt;br /&gt;
* cd ..&lt;br /&gt;
* mkdir build_root (root can not be built inside the source root folder!! The rest of the steps will assume the build_root folder is in the same directory as the source root folder)&lt;br /&gt;
* cd build_root&lt;br /&gt;
* cmake .. -DCMAKECXXSTANDARD=17 -DPYTHONEXECUTABLE=/usr/bin/python3&lt;br /&gt;
* make -jN (N is the number of CPU cores available for building, use N=4 if you don’t know)&lt;br /&gt;
* source bin/thisroot.sh&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_Configuration_Software&amp;diff=943</id>
		<title>Running Configuration Software</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_Configuration_Software&amp;diff=943"/>
		<updated>2021-06-08T09:20:10Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Created page with &amp;quot;My system:  Windows 10 WSL2: Distributor ID: Ubuntu Description:    Ubuntu 20.04.2 LTS Release:        20.04 Codename:       focal  Python 3.8.5 (default, Jan 27 2021, 15:41:1...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My system:&lt;br /&gt;
&lt;br /&gt;
Windows 10 WSL2:&lt;br /&gt;
Distributor ID: Ubuntu&lt;br /&gt;
Description:    Ubuntu 20.04.2 LTS&lt;br /&gt;
Release:        20.04&lt;br /&gt;
Codename:       focal&lt;br /&gt;
&lt;br /&gt;
Python 3.8.5 (default, Jan 27 2021, 15:41:15)&lt;br /&gt;
&lt;br /&gt;
Non-standard dependencies are:&lt;br /&gt;
uhal (from IPbus)&lt;br /&gt;
PyQt5&lt;br /&gt;
pymongo&lt;br /&gt;
&lt;br /&gt;
requires Ipbus and MongoDB&lt;br /&gt;
 &lt;br /&gt;
below are my steps to set it up for WSL2, and not tested for anything else. The general steps should be the same regardless. Terminal lines are marked with $.&lt;br /&gt;
&lt;br /&gt;
Installing dependencies:&lt;br /&gt;
&lt;br /&gt;
IPbus:&lt;br /&gt;
&lt;br /&gt;
following https://wiki.uib.no/pct/index.php/Using_IPbus:&lt;br /&gt;
Guide found under &amp;quot;Smart Dummy Hardware&amp;quot;&lt;br /&gt;
More step by step (Instructions partly copied from link above, order slightly changed):&lt;br /&gt;
&lt;br /&gt;
$ sudo apt update&lt;br /&gt;
$ sudo apt install git g++ make erlang python3 python-is-python3 libboost1.71-all-dev libpugixml-dev&lt;br /&gt;
&lt;br /&gt;
using the IPbus fork of Alf Herland&lt;br /&gt;
$ git clone https://github.com/alf000/ipbus-software.git&lt;br /&gt;
$ git checkout smartdummy&lt;br /&gt;
&lt;br /&gt;
In the directory where the repository have been downloaded:&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install prefix=/home/user/ipbus-install&lt;br /&gt;
&lt;br /&gt;
Adding paths to envirorment:&lt;br /&gt;
$ export LD_LIBRARY_PATH=/home/user/ipbus-install/lib:$LD_LIBRARY_PATH&lt;br /&gt;
$ export PYTHONPATH=/home/user/ipbus-install/lib/python3.8/site-packages:$PYTHONPATH&lt;br /&gt;
&lt;br /&gt;
Originally the second path was user/software-dev/ipbus-install, but i did not have the software-dev part, causing the path to be broken,&lt;br /&gt;
and the uhal module for python was not found.&lt;br /&gt;
&lt;br /&gt;
Qt5 designer:&lt;br /&gt;
&lt;br /&gt;
Following https://askubuntu.com/a/1294861&lt;br /&gt;
&lt;br /&gt;
$ sudo apt-get install qttools5-dev-tools (Not sure if needed)&lt;br /&gt;
$ sudo apt-get install qttools5-dev&lt;br /&gt;
&lt;br /&gt;
Then &#039;designer&#039; command worked for me.&lt;br /&gt;
&lt;br /&gt;
PyQt5:&lt;br /&gt;
&lt;br /&gt;
Install PyQt5 library with pip:&lt;br /&gt;
$ pip3 install PyQt5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MongoDB:&lt;br /&gt;
Using a fix for WSl from this https://stackoverflow.com/a/62496101&lt;br /&gt;
Could work for regular Ubuntu and perhaps others, but the important thing is to have the mongodb service open somehow. Did not need anything like this when running other pymongo code in Windows 10.&lt;br /&gt;
&lt;br /&gt;
$ mongodb-org&lt;br /&gt;
$ sudo nano /etc/init.d/mongod&lt;br /&gt;
Enter this text in the above file: https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d&lt;br /&gt;
&lt;br /&gt;
$ sudo chmod +x /etc/init.d/mongod&lt;br /&gt;
$ sudo service mongod start&lt;br /&gt;
&lt;br /&gt;
The last two reset after some time, consistent with new updates.&lt;br /&gt;
&lt;br /&gt;
Pymongo:&lt;br /&gt;
Simple.&lt;br /&gt;
pip install pymongo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the code:&lt;br /&gt;
&lt;br /&gt;
access the ipbus:&lt;br /&gt;
&lt;br /&gt;
go to ipbus-install. for me its /home/user/ipbus-install. To start it:&lt;br /&gt;
Go to bin and&lt;br /&gt;
$ ./controlhub_start&lt;br /&gt;
go to /uhal/tests/&lt;br /&gt;
$ ./DummyHardwareUdp.exe -p 50001 -v 2 -V&lt;br /&gt;
&lt;br /&gt;
Run program:&lt;br /&gt;
When IPbus is running, open a new terminal window, go to /production_tests/Config_gui/&lt;br /&gt;
$ python config_v1.py&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=942</id>
		<title>Control &amp; Readout Software Documentation and Howto&#039;s</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=942"/>
		<updated>2021-06-08T09:17:55Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]]&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
*[[Media:Requirements.pdf | Requirements]]&lt;br /&gt;
*[[Building Boost | Building Boost]]&lt;br /&gt;
*[[Building IPBus Software | Building IPBus Software]]&lt;br /&gt;
*[[Building ROOT | Building ROOT]]&lt;br /&gt;
*[[Building pct-online software | Building pct-online software]]&lt;br /&gt;
*[[Using IPbus | Using IPbus]]&lt;br /&gt;
*[[Running pDTPClient | Running pDTPClient]]&lt;br /&gt;
*[[Running pRUParser | Running pRUParser]]&lt;br /&gt;
*[[Running Configuration Software | Running Configuration Software]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
The test software communicates with the readout unit and the ALPIDE via a series of registers. Once the test is initiated, a communication link with the readout unit will be set up. The register values specified in the test will set up the readout board and the ALPIDE. Data is then transferred from the ALPIDE to the readout unit via a firefly cable and offload from the readout unit is done via a 10 Gb high speed link. &lt;br /&gt;
The data is transferred to the the pRU parser, which is responsible for debugging and writing the data to a .root format. This data can then be analyzed to verify the results of the test in question.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ALPIDE Registers ===&lt;br /&gt;
Alpide Registers are registers that can be set on the ALPIDE chip. &lt;br /&gt;
&lt;br /&gt;
This includes configuration registers to specify masking, pusling, strobe generation and configuration of the electrical part on the ALPIDE.    &lt;br /&gt;
&lt;br /&gt;
Specification on registers can be found in the ALPIDE manual&lt;br /&gt;
&lt;br /&gt;
=== Readout Unit Registers ===&lt;br /&gt;
Readout unit registers are registers that can be set on the readout board.&lt;br /&gt;
&lt;br /&gt;
This includes offload, triggering, global regs, alpide control and monitoring of different register via alpide data &lt;br /&gt;
&lt;br /&gt;
Specifications on registers can be found in their respective modules&lt;br /&gt;
&lt;br /&gt;
== Test examples ==&lt;br /&gt;
&lt;br /&gt;
*[[Media:Digital Scan.pdf | Digital Scan]]&lt;br /&gt;
*[[Media:Analog Scan.pdf | Analog Scan]]&lt;br /&gt;
*[[Media:Threshold Scan.pdf | Threshold Scan]]&lt;br /&gt;
*[[Media:Single Event.pdf | Single Event]]&lt;br /&gt;
&lt;br /&gt;
== Module Registers ==&lt;br /&gt;
*[[Media:Alpide control.pdf | Alpide control]]&lt;br /&gt;
*[[Media:Alpide data.pdf | Alpide data]]&lt;br /&gt;
*[[Media:Global regs.pdf | Global regs]]&lt;br /&gt;
*[[Media:Trigger manager.pdf | Trigger manager]]&lt;br /&gt;
*[[Media:Offload.pdf | Offload]]&lt;br /&gt;
&lt;br /&gt;
== ALPIDE Manual ==&lt;br /&gt;
*[[Media:ALPIDEmanual_v0_3.pdf | Alpide manual]]&lt;br /&gt;
&lt;br /&gt;
== .root format ==&lt;br /&gt;
* readout unit id&lt;br /&gt;
* stave id&lt;br /&gt;
* chip id&lt;br /&gt;
* frame id&lt;br /&gt;
* abs time (120 Mhz clock)&lt;br /&gt;
* bunch counter (40 Mhz clock)&lt;br /&gt;
* xy (hit coordinate)&lt;br /&gt;
&lt;br /&gt;
== Network Stack Tuning Guide ==&lt;br /&gt;
Disclaimer: This guide applies to the Linux distribution CentOS and the Intel X710-DA2 network card using the User Datagram Protocol (UDP). (There might be some small variations with other distributions and other network cards).&lt;br /&gt;
=== Intel X710-DA2 Considerations ===&lt;br /&gt;
The X710-DA2 needs to be installed in a 8.0 GT/s, x8 lanes PCIe slot, additionally the card needs to be on its own PCI-E bus (many physical PCI-E slots share the same bus)[https://www.intel.com/content/www/us/en/support/articles/000005811/network-and-io/ethernet-products.html]. To determine what PCIe slots your motherboard has, please refer to the documentation provided by the manufacturer of your hardware.&lt;br /&gt;
 &lt;br /&gt;
* To identify which bus your card is installed in and that it is alone on that bus on run the command: &lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo lshw -numeric&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Network card ring buffer ====&lt;br /&gt;
There is an HW buffer on the card itself, this buffer can be viewed with the command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -g &amp;lt;interface name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
and adjusted to the maximum size with the command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -G &amp;lt;interace name&amp;gt; rx 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CentOS Considerations ===&lt;br /&gt;
* To list the relevant network settings in the kernel use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo sysctl -a | grep net.ipv4 and sudo sysctl -a | grep net.core&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identifying possible bottlenecks ===&lt;br /&gt;
* To list network statistics from the network card(s) use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ ethtool -S &amp;lt;interface name&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
* To list UDP drops realtime every second use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ netstat -sune 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* To view package drops directly in the kernel use the command:&lt;br /&gt;
&amp;lt;code&amp;gt;$ sudo dropwatch -l kas&amp;lt;/code&amp;gt; and write start&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking the system ===&lt;br /&gt;
To run a benchmark on you fast the system is you can either set the test registers with test data via the DCS(IPBus) or a custom firmware can be obtained from the [https://git.app.uib.no/pct/pDTP pDTP repo] under CI/CD -&amp;gt; Pipelines -&amp;gt; Artifacts NOTE: This requires using Vivado to upload the firmware to the VCU118 board. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test code for a simple C++ client can be found here: [[client_benchmark.cpp]]. (Rename file type to CPP)&lt;br /&gt;
This client will send a stream request to hardware for 65535 packages, 15 times in the package size range from 2480 to 4080&lt;br /&gt;
&lt;br /&gt;
To build:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ g++ -O2 -Wno-narrowing client_benchmark.cpp -o client_executable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./client_executable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Commissioning&amp;diff=936</id>
		<title>Commissioning</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Commissioning&amp;diff=936"/>
		<updated>2021-05-03T10:14:48Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Commissioning]]&lt;br /&gt;
&lt;br /&gt;
= Beam test 2021 =&lt;br /&gt;
&lt;br /&gt;
== Dates ==&lt;br /&gt;
22 September - 6 October 2021 @ SPS&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
The current checklist can be found and edited here: [https://universityofbergen-my.sharepoint.com/:x:/g/personal/viljar_eikeland_uib_no/EWcbIUUzNhZJuWWOg1HhRVEBo2HxSJ37qlY-3kWdB8ZJ5Q?e=kq7bel Checklist SPS]&lt;br /&gt;
&lt;br /&gt;
The current global planning can be found and edited here: [https://universityofbergen-my.sharepoint.com/:x:/g/personal/viljar_eikeland_uib_no/EftvnGEYTd5Mr5w7mGY6SuQBn5BEBtPJI_7_aH78LVPOHg?e=H9qscW Global planning SPS]&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Commissioning&amp;diff=933</id>
		<title>Commissioning</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Commissioning&amp;diff=933"/>
		<updated>2021-04-26T10:34:24Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Commissioning]]&lt;br /&gt;
&lt;br /&gt;
= Beam test 2021 =&lt;br /&gt;
&lt;br /&gt;
The current checklist can be found and edited here: [https://universityofbergen-my.sharepoint.com/:x:/g/personal/viljar_eikeland_uib_no/EWcbIUUzNhZJuWWOg1HhRVEBo2HxSJ37qlY-3kWdB8ZJ5Q?e=kq7bel Checklist SPS]&lt;br /&gt;
&lt;br /&gt;
The current global planning can be found and edited here: [https://universityofbergen-my.sharepoint.com/:x:/g/personal/viljar_eikeland_uib_no/EftvnGEYTd5Mr5w7mGY6SuQBn5BEBtPJI_7_aH78LVPOHg?e=H9qscW Global planning SPS]&lt;br /&gt;
&lt;br /&gt;
== Dates ==&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Building_ROOT&amp;diff=889</id>
		<title>Building ROOT</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Building_ROOT&amp;diff=889"/>
		<updated>2021-03-01T14:36:45Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Building ROOT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the pCT project we need to use a version of ROOT which is compiled with c++17 in order to build packages with ROOT dependencies with c++17 standard. . &lt;br /&gt;
&lt;br /&gt;
ROOT implements a custom adaptor to &amp;lt;code&amp;gt;std::string_view&amp;lt;/code&amp;gt; if not compiled with c++17 and this conflicts with the real one if a packages uses c++17 standard and ROOT libraries/includes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo yum install git cmake gcc-c++ gcc binutils \&lt;br /&gt;
libX11-devel libXpm-devel libXft-devel libXext-devel \&lt;br /&gt;
gcc-gfortran openssl-devel pcre-devel \&lt;br /&gt;
mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel mysql-devel \&lt;br /&gt;
fftw-devel cfitsio-devel graphviz-devel \&lt;br /&gt;
avahi-compat-libdns_sd-devel libldap-dev python-devel \&lt;br /&gt;
libxml2-devel gsl-static gsl-devel \&lt;br /&gt;
libAfterImage libAfterImage-devel \&lt;br /&gt;
centos-release-scl devtoolset-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo python3 -m pip install numpy&lt;br /&gt;
&lt;br /&gt;
# clone the repository and select version&lt;br /&gt;
git clone http://github.com/root-project/root.git&lt;br /&gt;
cd root&lt;br /&gt;
git checkout v6-20-00-rc1&lt;br /&gt;
&lt;br /&gt;
# choose a build directory&lt;br /&gt;
mkdir build_root; cd build_root&lt;br /&gt;
&lt;br /&gt;
scl enable devtoolset-8 bash&lt;br /&gt;
&lt;br /&gt;
# configure: choose install target, on the lab machine we need to disable asimage for some reason&lt;br /&gt;
# the important flag is the C++ standard&lt;br /&gt;
cmake3 -DCMAKE_INSTALL_PREFIX=/opt/root -DCMAKE_CXX_STANDARD=17 -DPYTHON_EXECUTABLE=/usr/bin/python3 ../&lt;br /&gt;
&lt;br /&gt;
#build and install&lt;br /&gt;
sudo cmake3 --build . --target install -- -j4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember to add root details to your environment, e.g. /etc/bashrc:&lt;br /&gt;
(LD_LIBRARY_PATH and PYTHONPATH must BOTH be set for pyroot to work)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export ROOTSYS=/opt/root&lt;br /&gt;
source $ROOTSYS/bin/thisroot.sh&lt;br /&gt;
&lt;br /&gt;
export LD_LIBRARY_PATH=/opt/root/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
export PYTHONPATH=/opt/root/lib:$PYTHONPATH&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=763</id>
		<title>Running pRUParser</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=763"/>
		<updated>2020-09-01T09:23:12Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running pRUParser]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client.&lt;br /&gt;
It will sort, error check and prunes this in to a raw, binary, stream  and save this do disk for further prosessing. &lt;br /&gt;
It will lastly print a summary of any errors it detected.&lt;br /&gt;
&lt;br /&gt;
== Protocol Dependencies ==&lt;br /&gt;
The pRUParser uses the pRU Data Format Specification v0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039; add link to protocol document/page&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In the readout/ folder in your build directory:&lt;br /&gt;
For help run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -h &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To parse a file, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
During the parse, if verbosity is greater than 0, a status summaries will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Starting pipeline ... &lt;br /&gt;
Input policy  [File reader]: file readout/testDataX288.bin size kxcd&lt;br /&gt;
Filter policy [Forward]: buffer of kxcd byte(s)&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd&lt;br /&gt;
... done &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, only a the parse benchmark will be printed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then a summary is printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SUMMARY -------------&lt;br /&gt;
Total number of pRU frames parsed: n&lt;br /&gt;
Total number of pRU empty words found: n&lt;br /&gt;
Total number of pRU delimiter words found: n&lt;br /&gt;
Unfinished pRU words in buffer: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any pRU empty words are received a shot summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
EMPTY FRAMES FOUND: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are found, this will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
No errors found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise an error summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, &lt;br /&gt;
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, &lt;br /&gt;
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, &lt;br /&gt;
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, &lt;br /&gt;
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the non fatal alpide trailer flags has been detected, a summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ALPIDE Busy Transition: n&lt;br /&gt;
ALPIDE Strobe Extended: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parser specification ==&lt;br /&gt;
=== I/O formats ===&lt;br /&gt;
&lt;br /&gt;
=== Decoder ===&lt;br /&gt;
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Handling of format errors ===&lt;br /&gt;
* recovery&lt;br /&gt;
* fatal errors&lt;br /&gt;
* propagation/monitoring&lt;br /&gt;
&lt;br /&gt;
=== Generation of test data ===&lt;br /&gt;
&lt;br /&gt;
Clone into the WP3 repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd wp3/software/simulation&lt;br /&gt;
pip3 install -r requirements.txt&lt;br /&gt;
python3 test_cases.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd to the desired test case folder. The different test cases are described in test_cases.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xxd -r -p testcase_pruformat.txt outputfilename.bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Unable to analyze datastream if idle (FF) is thrown into the datastream, needs masking to handle this. (Testcase 5)&lt;br /&gt;
** idle is masked by the RU firmware in normal operation&lt;br /&gt;
** need to be handled as optional debug feature&lt;br /&gt;
** extended error checking if error occurred&lt;br /&gt;
&lt;br /&gt;
* Mistakenly throws missing region header error when we have a frame consisting of only alpide header+trailer with alpide trailer set to b8, which should be a busy violation.&lt;br /&gt;
&lt;br /&gt;
* Parser reports more pru frame errors than there are frames when busies are thrown in randomly. Reports missing trailer errors when all trailers are present. &lt;br /&gt;
&lt;br /&gt;
* All frames with errors are discarded, should be saved somewhere.&lt;br /&gt;
** currently all frames with errors are stored in a temporary internal buffer, needs to be saved to file&lt;br /&gt;
** consider an error descriptor struct to describe frames in the raw buffer&lt;br /&gt;
&lt;br /&gt;
* Need more detail on ALPIDE trailer flags, the different errors should be stored along with the frame id somewhere. (Additional fields in .root format)&lt;br /&gt;
&lt;br /&gt;
* Random empty frames with/without compression leads to missing region headers.&lt;br /&gt;
&lt;br /&gt;
* No specific check for fatal or data overrun in ALPIDE trailer, which should be a critical warning, and the frame should be saved.&lt;br /&gt;
&lt;br /&gt;
* Conversion of data to .root format is only started after all the data is read out. This should be parallelized so that the conversion may start once the first pru-trailer is received.&lt;br /&gt;
** implement after stable error handling is implemented&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=760</id>
		<title>Running pRUParser</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=760"/>
		<updated>2020-06-23T12:28:30Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running pRUParser]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client.&lt;br /&gt;
It will sort, error check and prunes this in to a raw, binary, stream  and save this do disk for further prosessing. &lt;br /&gt;
It will lastly print a summary of any errors it detected.&lt;br /&gt;
&lt;br /&gt;
== Protocol Dependencies ==&lt;br /&gt;
The pRUParser uses the pRU Data Format Specification v0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039; add link to protocol document/page&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In the readout/ folder in your build directory:&lt;br /&gt;
For help run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -h &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To parse a file, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
During the parse, if verbosity is greater than 0, a status summaries will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Starting pipeline ... &lt;br /&gt;
Input policy  [File reader]: file readout/testDataX288.bin size kxcd&lt;br /&gt;
Filter policy [Forward]: buffer of kxcd byte(s)&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd&lt;br /&gt;
... done &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, only a the parse benchmark will be printed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then a summary is printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SUMMARY -------------&lt;br /&gt;
Total number of pRU frames parsed: n&lt;br /&gt;
Total number of pRU empty words found: n&lt;br /&gt;
Total number of pRU delimiter words found: n&lt;br /&gt;
Unfinished pRU words in buffer: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any pRU empty words are received a shot summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
EMPTY FRAMES FOUND: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are found, this will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
No errors found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise an error summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, &lt;br /&gt;
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, &lt;br /&gt;
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, &lt;br /&gt;
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, &lt;br /&gt;
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the non fatal alpide trailer flags has been detected, a summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ALPIDE Busy Transition: n&lt;br /&gt;
ALPIDE Strobe Extended: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parser specification ==&lt;br /&gt;
=== I/O formats ===&lt;br /&gt;
&lt;br /&gt;
=== Decoder ===&lt;br /&gt;
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Handling of format errors ===&lt;br /&gt;
* recovery&lt;br /&gt;
* fatal errors&lt;br /&gt;
* propagation/monitoring&lt;br /&gt;
&lt;br /&gt;
=== Generation of test data ===&lt;br /&gt;
&lt;br /&gt;
Clone into the WP3 repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd wp3/software/simulation&lt;br /&gt;
pip3 install -r requirements.txt&lt;br /&gt;
python3 test_cases.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd to the desired test case folder. The different test cases are described in test_cases.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xxd -r -p testcase_pruformat.txt outputfilename.bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Unable to analyze datastream if idle (FF) is thrown into the datastream, needs masking to handle this. (Testcase 5)&lt;br /&gt;
&lt;br /&gt;
* Mistakenly throws missing region header error when we have a frame consisting of only header+trailer with alpide trailer set to b8, which should be a busy violation.&lt;br /&gt;
&lt;br /&gt;
* Parser reports more pru frame errors than there are frames when busies are thrown in randomly. Reports missing trailer errors when all trailers are present. &lt;br /&gt;
&lt;br /&gt;
* All frames with errors are thrown, should be saved somewhere. &lt;br /&gt;
&lt;br /&gt;
* Need more detail on ALPIDE trailer flags, the different errors should be stored along with the frame id somewhere. (Additional fields in .root format)&lt;br /&gt;
&lt;br /&gt;
* Random empty frames with/without compression leads to missing region headers. &lt;br /&gt;
&lt;br /&gt;
* Data long are sometimes not analyzed correctly leading to a different hit pattern from what was expected.&lt;br /&gt;
&lt;br /&gt;
* No specific check for fatal or data overrun in ALPIDE trailer, which should be a critical warning, and the frame should be saved.&lt;br /&gt;
&lt;br /&gt;
* Conversion of data to .root format is only started after all the data is read out. This should be parallelized so that the conversion may start once the first pru-trailer is received.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=759</id>
		<title>Running pRUParser</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=759"/>
		<updated>2020-06-23T12:25:11Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running pRUParser]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client.&lt;br /&gt;
It will sort, error check and prunes this in to a raw, binary, stream  and save this do disk for further prosessing. &lt;br /&gt;
It will lastly print a summary of any errors it detected.&lt;br /&gt;
&lt;br /&gt;
== Protocol Dependencies ==&lt;br /&gt;
The pRUParser uses the pRU Data Format Specification v0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039; add link to protocol document/page&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In the readout/ folder in your build directory:&lt;br /&gt;
For help run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -h &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To parse a file, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
During the parse, if verbosity is greater than 0, a status summaries will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Starting pipeline ... &lt;br /&gt;
Input policy  [File reader]: file readout/testDataX288.bin size kxcd&lt;br /&gt;
Filter policy [Forward]: buffer of kxcd byte(s)&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd&lt;br /&gt;
... done &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, only a the parse benchmark will be printed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then a summary is printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SUMMARY -------------&lt;br /&gt;
Total number of pRU frames parsed: n&lt;br /&gt;
Total number of pRU empty words found: n&lt;br /&gt;
Total number of pRU delimiter words found: n&lt;br /&gt;
Unfinished pRU words in buffer: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any pRU empty words are received a shot summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
EMPTY FRAMES FOUND: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are found, this will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
No errors found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise an error summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, &lt;br /&gt;
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, &lt;br /&gt;
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, &lt;br /&gt;
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, &lt;br /&gt;
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the non fatal alpide trailer flags has been detected, a summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ALPIDE Busy Transition: n&lt;br /&gt;
ALPIDE Strobe Extended: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parser specification ==&lt;br /&gt;
=== I/O formats ===&lt;br /&gt;
&lt;br /&gt;
=== Decoder ===&lt;br /&gt;
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Handling of format errors ===&lt;br /&gt;
* recovery&lt;br /&gt;
* fatal errors&lt;br /&gt;
* propagation/monitoring&lt;br /&gt;
&lt;br /&gt;
=== Generation of test data ===&lt;br /&gt;
&lt;br /&gt;
Clone into the WP3 repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd wp3/software/simulation&lt;br /&gt;
pip3 install -r requirements.txt&lt;br /&gt;
python3 test_cases.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd to the desired test case folder. The different test cases are described in test_cases.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xxd -r -p testcase_pruformat.txt outputfilename.bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Unable to analyze datastream if idle (FF) is thrown into the datastream, needs masking to handle this. (Testcase 5)&lt;br /&gt;
&lt;br /&gt;
* Mistakenly throws missing region header error when we have a frame consisting of only header+trailer with alpide trailer set to b8, which should be a busy violation.&lt;br /&gt;
&lt;br /&gt;
* Parser reports more pru frame errors than there are frames when busies are thrown in randomly. Reports missing trailer errors when all trailers are present. &lt;br /&gt;
&lt;br /&gt;
* All frames with errors are thrown, should be saved somewhere. &lt;br /&gt;
&lt;br /&gt;
* Need more detail on ALPIDE trailer flags, the different errors should be stored along with the frame id somewhere. (Additional fields in .root format)&lt;br /&gt;
&lt;br /&gt;
* Random empty frames with/without compression leads to missing region headers. &lt;br /&gt;
&lt;br /&gt;
* Data long are sometimes not analyzed correctly leading to a different hit pattern from what was expected.&lt;br /&gt;
&lt;br /&gt;
* No specific check for fatal or data overrun in ALPIDE trailer, which should be a critical warning, and the frame should be saved.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=757</id>
		<title>Running pRUParser</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=757"/>
		<updated>2020-06-23T12:22:18Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running pRUParser]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client.&lt;br /&gt;
It will sort, error check and prunes this in to a raw, binary, stream  and save this do disk for further prosessing. &lt;br /&gt;
It will lastly print a summary of any errors it detected.&lt;br /&gt;
&lt;br /&gt;
== Protocol Dependencies ==&lt;br /&gt;
The pRUParser uses the pRU Data Format Specification v0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039; add link to protocol document/page&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In the readout/ folder in your build directory:&lt;br /&gt;
For help run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -h &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To parse a file, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
During the parse, if verbosity is greater than 0, a status summaries will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Starting pipeline ... &lt;br /&gt;
Input policy  [File reader]: file readout/testDataX288.bin size kxcd&lt;br /&gt;
Filter policy [Forward]: buffer of kxcd byte(s)&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd&lt;br /&gt;
... done &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, only a the parse benchmark will be printed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then a summary is printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SUMMARY -------------&lt;br /&gt;
Total number of pRU frames parsed: n&lt;br /&gt;
Total number of pRU empty words found: n&lt;br /&gt;
Total number of pRU delimiter words found: n&lt;br /&gt;
Unfinished pRU words in buffer: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any pRU empty words are received a shot summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
EMPTY FRAMES FOUND: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are found, this will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
No errors found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise an error summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, &lt;br /&gt;
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, &lt;br /&gt;
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, &lt;br /&gt;
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, &lt;br /&gt;
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the non fatal alpide trailer flags has been detected, a summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ALPIDE Busy Transition: n&lt;br /&gt;
ALPIDE Strobe Extended: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parser specification ==&lt;br /&gt;
=== I/O formats ===&lt;br /&gt;
&lt;br /&gt;
=== Decoder ===&lt;br /&gt;
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Handling of format errors ===&lt;br /&gt;
* recovery&lt;br /&gt;
* fatal errors&lt;br /&gt;
* propagation/monitoring&lt;br /&gt;
&lt;br /&gt;
=== Generation of test data ===&lt;br /&gt;
&lt;br /&gt;
Clone into the WP3 repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd wp3/software/simulation&lt;br /&gt;
pip3 install -r requirements.txt&lt;br /&gt;
python3 test_cases.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd to the desired test case folder. The different test cases are described in test_cases.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xxd -r -p testcase_pruformat.txt outputfilename.bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* Unable to analyze datastream if idle (FF) is thrown into the datastream, needs masking to handle this. (Testcase 5)&lt;br /&gt;
&lt;br /&gt;
* Mistakenly throws missing region header error when we have a frame consisting of only header+trailer with alpide trailer set to b8, which should be a busy violation.&lt;br /&gt;
&lt;br /&gt;
* Parser reports more pru frame errors than there are frames when busies are thrown in randomly. Reports missing trailer errors when all trailers are present. &lt;br /&gt;
&lt;br /&gt;
* All frames with errors are thrown, should be saved somewhere. &lt;br /&gt;
&lt;br /&gt;
* Need more detail on ALPIDE trailer flags, the different errors should be stored along with the frame id somewhere. (Additional fields in .root format)&lt;br /&gt;
&lt;br /&gt;
* Random empty frames with/without compression leads to missing region headers. &lt;br /&gt;
&lt;br /&gt;
* Data long are sometimes not analyzed correctly leading to a different hit pattern from what was expected.&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=756</id>
		<title>Running pRUParser</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Running_pRUParser&amp;diff=756"/>
		<updated>2020-06-23T10:58:39Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] -&amp;gt; [[Control &amp;amp; Readout Software Documentation and Howto&#039;s]] -&amp;gt; [[Running pRUParser]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Function ==&lt;br /&gt;
The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client.&lt;br /&gt;
It will sort, error check and prunes this in to a raw, binary, stream  and save this do disk for further prosessing. &lt;br /&gt;
It will lastly print a summary of any errors it detected.&lt;br /&gt;
&lt;br /&gt;
== Protocol Dependencies ==&lt;br /&gt;
The pRUParser uses the pRU Data Format Specification v0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039; add link to protocol document/page&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In the readout/ folder in your build directory:&lt;br /&gt;
For help run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -h &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To parse a file, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
During the parse, if verbosity is greater than 0, a status summaries will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Starting pipeline ... &lt;br /&gt;
Input policy  [File reader]: file readout/testDataX288.bin size kxcd&lt;br /&gt;
Filter policy [Forward]: buffer of kxcd byte(s)&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd&lt;br /&gt;
... done &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, only a the parse benchmark will be printed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
This parse had a speed of: kx.cd Mb/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then a summary is printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SUMMARY -------------&lt;br /&gt;
Total number of pRU frames parsed: n&lt;br /&gt;
Total number of pRU empty words found: n&lt;br /&gt;
Total number of pRU delimiter words found: n&lt;br /&gt;
Unfinished pRU words in buffer: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any pRU empty words are received a shot summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
EMPTY FRAMES FOUND: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are found, this will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
No errors found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise an error summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, &lt;br /&gt;
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, &lt;br /&gt;
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, &lt;br /&gt;
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, &lt;br /&gt;
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the non fatal alpide trailer flags has been detected, a summary will be printed:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ALPIDE Busy Transition: n&lt;br /&gt;
ALPIDE Strobe Extended: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parser specification ==&lt;br /&gt;
=== I/O formats ===&lt;br /&gt;
&lt;br /&gt;
=== Decoder ===&lt;br /&gt;
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]&lt;br /&gt;
&lt;br /&gt;
=== Handling of format errors ===&lt;br /&gt;
* recovery&lt;br /&gt;
* fatal errors&lt;br /&gt;
* propagation/monitoring&lt;br /&gt;
&lt;br /&gt;
=== Generation of test data ===&lt;br /&gt;
&lt;br /&gt;
Clone into the WP3 repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd wp3/software/simulation&lt;br /&gt;
pip3 install -r requirements.txt&lt;br /&gt;
python3 test_cases.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd to the desired test case folder. The different test cases are described in test_cases.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
xxd -r -p testcase_pruformat.txt outputfilename.bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Getting_Started_PTB&amp;diff=717</id>
		<title>Getting Started PTB</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Getting_Started_PTB&amp;diff=717"/>
		<updated>2020-05-14T09:50:48Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Updated release version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Superfast flow ==&lt;br /&gt;
&lt;br /&gt;
The PTB stores the bitstream, embedded software and a bootloader on a flash memory. A power cycle will not reset this. Thus, one can use the PTB by simply turning in on.&lt;br /&gt;
By checking the serial debug output, one can check if the correct version is running.&lt;br /&gt;
&lt;br /&gt;
1. (Optional) Start debugging stream. Shows messages from embedded system once programmed.&lt;br /&gt;
&lt;br /&gt;
2. [[Media:power_on_board_ptb.jpg | Power on board]]&lt;br /&gt;
&lt;br /&gt;
The serial debug window should have something like the following output:&lt;br /&gt;
&lt;br /&gt;
[[File:PTB-boot.png|400 px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make serial&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
1. Fetch changes from  [https://git.app.uib.no/pct/wp3|wp3 upstream repo]&lt;br /&gt;
&lt;br /&gt;
2. Checkout tag of your select release. See [https://git.app.uib.no/pct/wp3/-/releases|latest releases]. This guide assumes PTB-v3.1-beta3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ git checkout PTB-v3.1-beta3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Make sure repo is clean&lt;br /&gt;
&lt;br /&gt;
4. Get pre-built bitstream.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make get_latest_bitstream TAG=PTB-v3.1-beta3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Build embedded software&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make sdk_gen_projects PRJ=PTB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. (Optional) Open a new terminal window and start debugging stream. Shows messages from embedded system once programmed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make serial&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. [[Media:power_on_board_ptb.jpg | Power on board]]&lt;br /&gt;
&lt;br /&gt;
8. Generate bootloader and program flash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make gen_bootimage&lt;br /&gt;
$ make program_flash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. [[Media:reset_ptb.jpg | Restart PTB]]&lt;br /&gt;
&lt;br /&gt;
The serial debug window should have something like the following output:&lt;br /&gt;
&lt;br /&gt;
[[File:PTB-boot.png|400 px]]&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=625</id>
		<title>Control &amp; Readout Software Documentation and Howto&#039;s</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=Control_%26_Readout_Software_Documentation_and_Howto%27s&amp;diff=625"/>
		<updated>2019-09-17T12:24:21Z</updated>

		<summary type="html">&lt;p&gt;Vei046: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
*[[Media:Requirements.pdf | Requirements]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
The test software communicates with the readout unit and the ALPIDE via a series of registers. Once the test is initiated, a communication link with the readout unit will be set up. The register values specified in the test will set up the readout board and the ALPIDE. Data is then transferred from the ALPIDE to the readout unit via a firefly cable and offload from the readout unit is done via a 10 Gb high speed link. &lt;br /&gt;
The data is transferred to the the pRU parser, which is responsible for debugging and writing the data to a .root format. This data can then be analyzed to verify the results of the test in question.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ALPIDE Registers ===&lt;br /&gt;
Alpide Registers are registers that can be set on the ALPIDE chip. &lt;br /&gt;
&lt;br /&gt;
This includes configuration registers to specify masking, pusling, strobe generation and configuration of the electrical part on the ALPIDE.    &lt;br /&gt;
&lt;br /&gt;
Specification on registers can be found in the ALPIDE manual&lt;br /&gt;
&lt;br /&gt;
=== Readout Unit Registers ===&lt;br /&gt;
Readout unit registers are registers that can be set on the readout board.&lt;br /&gt;
&lt;br /&gt;
This includes offload, triggering, global regs, alpide control and monitoring of different register via alpide data &lt;br /&gt;
&lt;br /&gt;
Specifications on registers can be found in their respective modules&lt;br /&gt;
&lt;br /&gt;
== Test examples ==&lt;br /&gt;
&lt;br /&gt;
*[[Media:Digital Scan.pdf | Digital Scan]]&lt;br /&gt;
*[[Media:Analog Scan.pdf | Analog Scan]]&lt;br /&gt;
*[[Media:Threshold Scan.pdf | Threshold Scan]]&lt;br /&gt;
*[[Media:Single Event.pdf | Single Event]]&lt;br /&gt;
&lt;br /&gt;
== Module Registers ==&lt;br /&gt;
*[[Media:Alpide control.pdf | Alpide control]]&lt;br /&gt;
*[[Media:Alpide data.pdf | Alpide data]]&lt;br /&gt;
*[[Media:Global regs.pdf | Global regs]]&lt;br /&gt;
*[[Media:Trigger manager.pdf | Trigger manager]]&lt;br /&gt;
*[[Media:Offload.pdf | Offload]]&lt;br /&gt;
&lt;br /&gt;
== ALPIDE Manual ==&lt;br /&gt;
*[[Media:ALPIDEmanual_v0_3.pdf | Alpide manual]]&lt;br /&gt;
&lt;br /&gt;
== .root format ==&lt;br /&gt;
* readout unit id&lt;br /&gt;
* stave id&lt;br /&gt;
* chip id&lt;br /&gt;
* frame id&lt;br /&gt;
* abs time (120 Mhz clock)&lt;br /&gt;
* bunch counter (40 Mhz clock)&lt;br /&gt;
* xy (hit coordinate)&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:ALPIDEmanual_v0_3.pdf&amp;diff=624</id>
		<title>File:ALPIDEmanual v0 3.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:ALPIDEmanual_v0_3.pdf&amp;diff=624"/>
		<updated>2019-09-17T12:01:41Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Requirements.pdf&amp;diff=623</id>
		<title>File:Requirements.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Requirements.pdf&amp;diff=623"/>
		<updated>2019-09-17T09:47:02Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Developer_Guide_v0_1_1_.pdf&amp;diff=622</id>
		<title>File:Developer Guide v0 1 1 .pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Developer_Guide_v0_1_1_.pdf&amp;diff=622"/>
		<updated>2019-09-17T09:46:16Z</updated>

		<summary type="html">&lt;p&gt;Vei046: Vei046 uploaded a new version of File:Developer Guide v0 1 1 .pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Developer_Guide_v0_1_1_.pdf&amp;diff=621</id>
		<title>File:Developer Guide v0 1 1 .pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Developer_Guide_v0_1_1_.pdf&amp;diff=621"/>
		<updated>2019-09-17T09:45:03Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Single_Event.pdf&amp;diff=620</id>
		<title>File:Single Event.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Single_Event.pdf&amp;diff=620"/>
		<updated>2019-09-17T09:43:48Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Threshold_Scan.pdf&amp;diff=619</id>
		<title>File:Threshold Scan.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Threshold_Scan.pdf&amp;diff=619"/>
		<updated>2019-09-17T09:42:01Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Analog_Scan.pdf&amp;diff=618</id>
		<title>File:Analog Scan.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Analog_Scan.pdf&amp;diff=618"/>
		<updated>2019-09-17T09:40:58Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
	<entry>
		<id>https://pct.wiki.uib.no/index.php?title=File:Digital_Scan.pdf&amp;diff=617</id>
		<title>File:Digital Scan.pdf</title>
		<link rel="alternate" type="text/html" href="https://pct.wiki.uib.no/index.php?title=File:Digital_Scan.pdf&amp;diff=617"/>
		<updated>2019-09-16T12:41:40Z</updated>

		<summary type="html">&lt;p&gt;Vei046: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Vei046</name></author>
	</entry>
</feed>