Difference between revisions of "SBS DAQ: GEM TEDF BigBite setup"

From Hall A Wiki
Jump to: navigation, search
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== CODA scripts ==
 
== CODA scripts ==
These scripts are located in
+
:- [https://github.com/JeffersonLab/coda_scripts github page]
<code>$HOME/bin/</code>
+
:- Scripts locations:
 +
* daq@tedbbdaq
 +
:- <code>~/gem_scripts/setupCODA.bash</code>
 +
:- <code>~/gem_scripts/coda_scripts/</code>
 +
* sbs-onl@intelbbgem:
 +
:- <code>~/coda_scripts/</code>
  
 
=== Frontend scripts to use on tedbbdaq ===
 
=== Frontend scripts to use on tedbbdaq ===
Line 11: Line 16:
 
* kills all CODA components
 
* kills all CODA components
  
=== Backend scripts, called by the frontend scripts ===
 
  
'''<code>remote_vme</code>'''
 
* script that restarts an ssh connection if it is closed. 
 
'''<code>PEB_tedbbdaq</code>'''
 
* script that launches '''coda_emu_peb'''.  restarts it when it is killed.
 
'''<code>ROC_intelbbgem</code>'''
 
* script that uses '''remote_vme''' to launch '''SBS_startroc.sh''' on hallavme14pc
 
'''<code>ROC_sbsvme25</code>'''
 
* script that uses '''remote_vme''' to launch '''SBS_startroc.sh''' on sbsvme25
 
'''<code>SBS_startroc.sh</code>'''
 
* script on sbsvme25, hallavme14pc that launches '''coda_roc''' with a ROC name determined from it's hostname.
 
'''<code>kill_remotes.sh</code>'''
 
* kills off '''ROC_hallavme14pc''', '''ROC_sbsvme25''', and '''coda_roc''' on hallavme14pc and sbsvme25.
 
  
 
== Useful stand-alone programs ==
 
== Useful stand-alone programs ==
 
=== <code>remex</code> ===
 
=== <code>remex</code> ===
<code>$CODA/Linux-i686/bin/remex <remexHost> <function call></code>
+
<code>$CODA_BIN/remex <remexHost> <function call></code>
 
* Execute a function call on the specified remote Host
 
* Execute a function call on the specified remote Host
 
:- Run without arguments for usage
 
:- Run without arguments for usage
  
 
=== <code>tiLibTest</code> ===
 
=== <code>tiLibTest</code> ===
<code>SBS-GEM-Cleanroom/linuxvme/ti/test/tiLibTest <TI slot number></code>
+
<code>$CODA_VME/ti/test/tiLibTest <TI slot number></code>
 
* Test triggering capabilities of the local TI.
 
* Test triggering capabilities of the local TI.
 
:- Puts the local TI in master mode (with no slaves).
 
:- Puts the local TI in master mode (with no slaves).
Line 39: Line 31:
  
 
=== <code>i2c_test</code>===
 
=== <code>i2c_test</code>===
<code>SBS-GEM-Cleanroom/linuxvme/mpd/libsrc/test/i2c_test <mpd slot number></code>
+
<code>$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number></code>
 
* Test the initialization and configuration of the APVs in the specified MPD.
 
* Test the initialization and configuration of the APVs in the specified MPD.
 
:- Does the same initialization that is done in <code>mpd_list.c:rocDownload()</code>
 
:- Does the same initialization that is done in <code>mpd_list.c:rocDownload()</code>
Line 45: Line 37:
  
 
=== <code>vme_display</code> ===
 
=== <code>vme_display</code> ===
<code>SBS-GEM-Cleanroom/linuxvme/bin/vme_display <VME Address> <read size in bytes></code>
+
<code>$CODA_VME_BIN/vme_display <VME Address> <read size in bytes></code>
 
* Display the read value of specified size from the specified VME address.
 
* Display the read value of specified size from the specified VME address.
 
:- Run without arguments for usage
 
:- Run without arguments for usage
  
 
=== <code>vme_modmem</code> ===
 
=== <code>vme_modmem</code> ===
<code>SBS-GEM-Cleanroom/linuxvme/bin/vme_modmem <VME Address> <read/write size in bytes></code>
+
<code>$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes></code>
 
* Modify the value of specified size of the specified VME address.
 
* Modify the value of specified size of the specified VME address.
 
:- Run without arguments for usage
 
:- Run without arguments for usage
  
=== <code>mpdApvDecode</code> ===
+
== MPD/SSP/APV Config files ==
<code>bryan/mpdApvDecode/mpdApvDecode -f <evio filename></code>
+
* Config files for configuration of APVs and MPD / SSP can be found in
* Decode the raw data from the MPDs/APVs
+
:- <code>sbs-onl@intelbbgem:~/bbgem-cfg/</code>
:- Local compilation of [https://github.com/JeffersonLab/mpdApvDecode JeffersonLab/mpdApvDecode]
+
:- Command-line options
+
'''-m N'''          set max event number to ''N''
+
'''-s N'''          skip events until ''N''
+
'''-e'''            show only errors
+
'''-f filename'''  set input to ''filename'' 
+
'''-o filename'''  redirect all output to ''filename''
+
'''-C filename'''  use ''filename'' instead of ''decode.cfg'' for configuration
+
  
== Extra packages installed ==
+
 
* [https://www.java.com/en/download/linux_manual.jsp Java runtime environment (1.8.0_221)]
+
:* The '''SSP''' readout list (<code>mpd5_ssp_list.so</code>) uses
 +
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt</code>
 +
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt</code>
 +
 
 +
 
 +
:* The '''MPD''' readout list (<code>mpd_list.so, mpd_slave_list.so</code>) uses
 +
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt</code>
 +
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt</code>
 +
 
 +
 
 +
:* '''Both''' use common files to configure the MPDs/APVs given the MPD's slot number.  For example, slot 5 MPD:
 +
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg</code>
  
 
== Machines in use ==
 
== Machines in use ==
Line 82: Line 77:
 
:* Mount <code>atedf3:/data/disk2/SBS</code> to <code>/mnt/SBS</code>
 
:* Mount <code>atedf3:/data/disk2/SBS</code> to <code>/mnt/SBS</code>
 
::- Uses autofs.  <code>/etc/auto.SBS</code> should be included in a line in <code>/etc/auto.master</code>
 
::- Uses autofs.  <code>/etc/auto.SBS</code> should be included in a line in <code>/etc/auto.master</code>
:'''Restart procedure if not mounted after reboot'''
 
::Option 1: (preferred)
 
:::- logout of coda
 
:::- login as root
 
::::<code>cp /etc/auto.master_SBS /etc/auto.master</code>
 
::::<code>service puppet stop</code>
 
::::<code>service autofs restart</code>
 
:::- login normally as coda
 
::Option 2:
 
:::- logout of coda
 
:::- login as root
 
::::<code>mount atedf3:/data/disk2/SBS /mnt/SBS</code>
 
:::- login normally as coda
 
 
:* Softlinks in <code>/home/coda/SBS-GEM-Cleanroom</code>
 
  
 
::* <code>coda/</code> CODA (3.10)
 
::* <code>coda/</code> CODA (3.10)
 
::* <code>linuxvme</code> (in CODA 3.10 directory)
 
 
::* <code>data</code> (filename format: gem_cleanroom_<run number>.evio.<split number>
 
  
 
==== intelbbgem ====
 
==== intelbbgem ====
 
* XVR16 VME Controller
 
* XVR16 VME Controller
::* 'daq' login
+
::* 'sbs-onl' login
 
::* Slots ? : SSP
 
::* Slots ? : SSP
 
::* Slot 21: TI
 
::* Slot 21: TI
::* Softlinks in <code>/home/daq/SBS-GEM-Cleanroom</code>
+
::* LINUXVME (mpd,ssp): <code>~/linuxvme/</code>
 +
::* readout lists : <code>~/rol/</code>
  
 
==== hatsv48 ====
 
==== hatsv48 ====
Line 116: Line 93:
 
::* Slots 2-8, 10-16: MPDs
 
::* Slots 2-8, 10-16: MPDs
 
::* Slot 21: TI
 
::* Slot 21: TI
::* Softlinks in <code>/home/daq/SBS-GEM-Cleanroom</code>
 
 
== Updated/Cloned New repos in coda/3.10/linuxvme ==
 
 
github links ([https://github.com/orgs/JeffersonLab/teams/coda-user team:coda-user]):
 
* [https://github.com/JeffersonLab/jvme jvme]
 
* [https://github.com/JeffersonLab/ti ti]
 
* [https://github.com/JeffersonLab/ssp ssp]
 
* [https://github.com/JeffersonLab/mpd mpd]
 
 
Added /site remote with (e.g. jvme, devel branch)
 
  cd jvme
 
  git remote add site /site/coda/contrib/devel/jvme
 
  git pull site devel
 
  
 
== CODA environment setup script ==
 
== CODA environment setup script ==
Line 139: Line 102:
 
== Stuff to finish ==
 
== Stuff to finish ==
  
=== Replace hallavme12pc ===
+
===Setup CODA3 environment for MPD crate ===
* Install OS
+
* Use same mount scripts used on hallavme12pc
+
* Use local storage for data.
+
 
+
===Add SSP crate===  
+
* Figure out it's hostname
+
* Get it to boot just like the other ROCs
+
* Check TI
+
* Check SSP
+
* Check MPD (for checking/debugging APVs)
+
* Tell Ben we're ready to start connecting fiber from MPD to SSP
+
 
+
 
===Log CODA runs to [https://logbooks.jlab.org/book/superbigbite logbooks/superbigbite]===
 
===Log CODA runs to [https://logbooks.jlab.org/book/superbigbite logbooks/superbigbite]===
* check out code used by Hall A's CODA 2.x
 
* from Alex:
 
:- <code>epicsRunstart</code>
 
:- <code>epicsRunEnd</code>
 
:- <code>runstart.tcl</code>
 
:- <code>runend.tcl</code>
 
 
===Add scripts and GEM-cleanroom specific configuration files to a remote git repo===
 
:- <code>.bashrc</code>
 
:- <code>setupCODA</code>
 
:- <code>~/bin/*</code>
 

Revision as of 15:33, 3 December 2020

CODA scripts

- github page
- Scripts locations:
  • daq@tedbbdaq
- ~/gem_scripts/setupCODA.bash
- ~/gem_scripts/coda_scripts/
  • sbs-onl@intelbbgem:
- ~/coda_scripts/

Frontend scripts to use on tedbbdaq

startCoda

  • executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm

restartStuff

  • kills and restarts the PEB and ROCs. The xterms are not killed with this script.

kcoda

  • kills all CODA components


Useful stand-alone programs

remex

$CODA_BIN/remex <remexHost> <function call>

  • Execute a function call on the specified remote Host
- Run without arguments for usage

tiLibTest

$CODA_VME/ti/test/tiLibTest <TI slot number>

  • Test triggering capabilities of the local TI.
- Puts the local TI in master mode (with no slaves).
- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser

i2c_test

$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number>

  • Test the initialization and configuration of the APVs in the specified MPD.
- Does the same initialization that is done in mpd_list.c:rocDownload()
- Also attempts the readback of the APV registers with mpdApvStatus(0xffff)

vme_display

$CODA_VME_BIN/vme_display <VME Address> <read size in bytes>

  • Display the read value of specified size from the specified VME address.
- Run without arguments for usage

vme_modmem

$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes>

  • Modify the value of specified size of the specified VME address.
- Run without arguments for usage

MPD/SSP/APV Config files

  • Config files for configuration of APVs and MPD / SSP can be found in
- sbs-onl@intelbbgem:~/bbgem-cfg/


  • The SSP readout list (mpd5_ssp_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt


  • The MPD readout list (mpd_list.so, mpd_slave_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt


  • Both use common files to configure the MPDs/APVs given the MPD's slot number. For example, slot 5 MPD:
- sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg

Machines in use

atedf3

  • NFS server, tftp server for VME Controllers
  • CODA and hardware drivers in /data/disk2/SBS/
  • Read-only permissions for all machines in 36 subnet
  • Read-Write permissions for hallavme12pc,sbsvme25

tedbbdaq

  • DAQ Computer (RunControl, Event Building)
  • Mount atedf3:/data/disk2/SBS to /mnt/SBS
- Uses autofs. /etc/auto.SBS should be included in a line in /etc/auto.master
  • coda/ CODA (3.10)

intelbbgem

  • XVR16 VME Controller
  • 'sbs-onl' login
  • Slots ? : SSP
  • Slot 21: TI
  • LINUXVME (mpd,ssp): ~/linuxvme/
  • readout lists : ~/rol/

hatsv48

  • XVB601 VME Controller
  • 'daq' login
  • Slots 2-8, 10-16: MPDs
  • Slot 21: TI

CODA environment setup script

Using BASH, source the environment setup script:

source ~/SBS-GEM-Cleanroom/env/setupCODA

Stuff to finish

Setup CODA3 environment for MPD crate

Log CODA runs to logbooks/superbigbite