Difference between revisions of "NPS DAQ in Hall C"

From Cuawiki
Jump to navigation Jump to search
 
(23 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
Official guide to NPS DAQ at [https://hallcweb.jlab.org/wiki/index.php/Hall_C_DAQ https://hallcweb.jlab.org/wiki/index.php/Hall_C_DAQ]
 +
== Startup ==
 +
[[File:NPS_DAQ_startCoda.png|right|VNC window after 'startCoda']]
 +
* login: coda@cdaql6    vnc:  coda@cdaql6 :6
 +
* in fresh xterm:
 +
startCoda
 +
:- xterms (ROCs and PEB) and RCGUI should open
 +
* Restart the components without closing the xterms
 +
restartStuff
 +
* Kill all components and xterms
 +
kcoda
 +
 
== Environment Setup ==
 
== Environment Setup ==
 
* The CODA environment is setup using [https://github.com/JeffersonLab/coda_scripts coda_scripts]
 
* The CODA environment is setup using [https://github.com/JeffersonLab/coda_scripts coda_scripts]
Line 6: Line 18:
 
  setenv CODA_SCRIPTS ${CODA}/coda_scripts
 
  setenv CODA_SCRIPTS ${CODA}/coda_scripts
  
** CODA for Platform/PEB
+
:* CODA for Platform/PEB
 
  setenv CODA ${HOME}/coda/3.10_devel
 
  setenv CODA ${HOME}/coda/3.10_devel
 
  setenv CODA_SCRIPTS ${HOME}/coda/coda_scripts
 
  setenv CODA_SCRIPTS ${HOME}/coda/coda_scripts
  
+
:* CODA Session and EXPID
 
  setenv SESSION NPS
 
  setenv SESSION NPS
 
  setenv EXPID NPS
 
  setenv EXPID NPS
* then source the coda scripts setup
+
 
 +
:* source the coda scripts setup
 
  source ${CODA_SCRIPTS}/setupCODA3.tcsh
 
  source ${CODA_SCRIPTS}/setupCODA3.tcsh
  
Line 34: Line 47:
 
  hccoda@nps-vtp1:~/setup_nps-vtp_3.10
 
  hccoda@nps-vtp1:~/setup_nps-vtp_3.10
  
=== PEB ===
+
=== Platform / PEB ===
 
* CODA environment loaded from .cshrc from setup script:
 
* CODA environment loaded from .cshrc from setup script:
 
  coda@cdaql6:~/bin/nps_coda_user_setup
 
  coda@cdaql6:~/bin/nps_coda_user_setup
 +
* Other environment settings
 +
setenv JAVA_HOME ${HOME}/coda/jdk1.8.0_152
 +
setenv COOL_HOME ${HOME}/coda/cool
  
 
== VME Module Configuration ==
 
== VME Module Configuration ==
Line 48: Line 64:
 
* readout of TI and fadc250
 
* readout of TI and fadc250
 
* compiles as
 
* compiles as
  nps_vme_master_list.so
+
  nps_vme_master_list.so  
  nps_vme_slave_list.so
+
  nps_vme_slave_list.so   # Uses fiber 1 for TS connection (HMS)
 +
nps_vme_slave5_list.so  # Uses fiber 5 for TS connection (NPS)
 +
 
 
* '''master''' configured for triggers from TSINPUTS: TS#1, TS#2
 
* '''master''' configured for triggers from TSINPUTS: TS#1, TS#2
 
* fadc250 configuration file read from "User Configuration file"
 
* fadc250 configuration file read from "User Configuration file"
* ti configuration read from "User String" - '''not yet implemented'''
+
* ti configuration read from "User String"  
** '''vtp''' - '''not yet implemented'''
+
** '''vtp''' - adds VTP as slave ROC
** '''slaveN''', N=[1,8] - '''not yet implemented'''
+
** '''npsvmeN''', N=[2,5] - adds npsvmeN as a slave ROC
  
 
=== ti_list.c ===
 
=== ti_list.c ===
Line 63: Line 81:
 
* '''master''' configured for triggers from TSINPUTS: TS#1, TS#2
 
* '''master''' configured for triggers from TSINPUTS: TS#1, TS#2
 
* ti configuration read from "User String"
 
* ti configuration read from "User String"
** '''vtp'''
+
** '''vtp''' - adds VTP as slave ROC
** '''slaveN''', N=[1,8] - '''not yet implemented'''
+
** '''npsvmeN''', N=[2,5] - adds npsvmeN as a slave ROC
  
 
=== event_list.crl ===
 
=== event_list.crl ===
Line 72: Line 90:
  
 
== CODA Configurations ==
 
== CODA Configurations ==
 +
=== Component priorities ===
 +
 +
These must be set to ensure the correct order of ROCs for the configuration and synchronization of serial links.  The pattern:  Trigger Supervisor has highest priority, VME are next. VTP have the least priority.
 +
 +
[[File:ROC_priority_example.png|right]]
 +
{| class="wikitable" style="margin:left"
 +
! Component !! Priority
 +
|-
 +
| npsvme1 || 1210
 +
|-
 +
| npsvme2 || 1110
 +
|-
 +
| npsvme3 || 1110
 +
|-
 +
| npsvme4 || 1110
 +
|-
 +
| npsvme5 || 1110
 +
|-
 +
| npsvtp1 || 1010
 +
|-
 +
| npsvtp2 || 1010
 +
|-
 +
| npsvtp3 || 1010
 +
|-
 +
| npsvtp4 || 1010
 +
|-
 +
| npsvtp5 || 1010
 +
 +
|}
 +
 +
=== Readout Lists, User Strings, User Config ===
 +
 +
This section defines the field contents for the ROC components.  The '''NPS''' configuration uses the fields as shown below.  The '''NPS_5crate''' configuration has the npsvtp{1,2,3,4,5} ROCs removed, with the ''vtp'' parameter removed from the '''ROL1 User String'''
 +
 +
==== npsvme1 ====
 +
ROL1: /home/hccoda/nps-vme/rol/nps_vme_master_list.so
 +
ROL1 User String: vtp,npsvme2,npsvme3,npsvme4,npsvme5
 +
 +
ROL2: /home/hccoda/nps-vme/rol/event_list.so
 +
ROL2 User String: undefined
 +
 +
User Config: /home/hccoda/nps-vme/cfg/nps-vme1.cfg
 +
 +
==== npsvme{2,3,4,5} ====
 +
ROL1: /home/hccoda/nps-vme/rol/nps_vme_slave5_list.so
 +
ROL1 User String: vtp
  
* '''vme2'''
+
  ROL2: /home/hccoda/nps-vme/rol/event_list.so
** ROCs
+
  ROL2 User String: undefined
*** '''npsvme2'''
 
  ROL1: nps-vme/rol/nps_vme_master_list.so
 
ROL2: nps-vme/rol/event_list.so
 
  User Config: nps-vme/cfg/nps-vme2.cfg
 
  
** PEBs: '''PEB1'''
+
User Config: /home/hccoda/nps-vme/cfg/nps-vme{2,3,4,5}.cfg
  
* '''COOL_HOME''' defined as
+
==== npsvtp{1,2,3,4,5} ====
  hccoda@cdaql6:~/coda/cool
+
  ROL1: /home/hccoda/nps-vtp/rol/nps_vtp_list.so
* '''CODA_COMPONENT_TABLE''' defined as
+
ROL1 User String: undefined
  hccoda@cdaql6:~/coda/coda_scripts/config/NPS/coda_component_table.cfg
+
   
 +
ROL2:
 +
ROL2 User String: undefined
 +
 +
User Config: /home/hccoda/nps-vtp/cfg/nps-vtp{1,2,3,4,5}.cfg
  
#
+
== VTP uBoot configuration ==
# CODA Component table - NPS EELsetup
+
{| class="wikitable" style="float:right"
#
+
|-
  # hostname component type    component name
+
! port !! vtp
  nps-vme1 ROC     npsvme1
+
|-
cdaql6 PEB   PEB1
+
| 2001 || nps-vtp1
 +
|-
 +
| 2002 || nps-vtp2
 +
|-
 +
| 2003 || nps-vtp3
 +
|-
 +
| 2004 || nps-vtp4
 +
|-
 +
| 2005 || nps-vtp5
 +
|}
 +
* Access to VTP boot parameters is through the NPS portserver.  
 +
  telnet nps-ps1 <port>
 +
* [[NPS VTP Serial Connection]]

Latest revision as of 08:41, 7 September 2023

Official guide to NPS DAQ at https://hallcweb.jlab.org/wiki/index.php/Hall_C_DAQ

Startup

VNC window after 'startCoda'
  • login: coda@cdaql6 vnc: coda@cdaql6 :6
  • in fresh xterm:
startCoda
- xterms (ROCs and PEB) and RCGUI should open
  • Restart the components without closing the xterms
restartStuff
  • Kill all components and xterms
kcoda

Environment Setup

  • The CODA environment is setup using coda_scripts
  • User Defined CODA environment variables
    • CODA for ROC/VTP
setenv CODA ${HOME}/coda_3.10_devel
setenv CODA_SCRIPTS ${CODA}/coda_scripts
  • CODA for Platform/PEB
setenv CODA ${HOME}/coda/3.10_devel
setenv CODA_SCRIPTS ${HOME}/coda/coda_scripts
  • CODA Session and EXPID
setenv SESSION NPS
setenv EXPID NPS
  • source the coda scripts setup
source ${CODA_SCRIPTS}/setupCODA3.tcsh


VME ROC

  • CODA environment loaded from .tcshrc from setup script:
hccoda@nps-vme1:~/setup_nps-vme_3.10
  • Other environment settings
    • LINUXVME
setenv LINUXVME ${HOME}/nps-vme/linuxvme
setenv LINUXVME_INC $LINUXVME/include
setenv LINUXVME_LIB $LINUXVME/$MACHINE/lib
setenv LINUXVME_BIN $LINUXVME/$MACHINE/bin

setenv PATH ${LINUXVME_BIN}:$PATH
setenv LD_LIBRARY_PATH ${LINUXVME_LIB}:${LD_LIBRARY_PATH}

VTP ROC

  • CODA environment loaded from .tcshrc from setup script:
hccoda@nps-vtp1:~/setup_nps-vtp_3.10

Platform / PEB

  • CODA environment loaded from .cshrc from setup script:
coda@cdaql6:~/bin/nps_coda_user_setup
  • Other environment settings
setenv JAVA_HOME ${HOME}/coda/jdk1.8.0_152
setenv COOL_HOME ${HOME}/coda/cool

VME Module Configuration

FADC250 Configuration

hccoda@nps-vme2:~/nps-vme/cfg/nps-vme2.cfg

VME Readout Lists

hccoda@nps-vme2:~/nps-vme/rol/

nps_vme_list.c

  • readout of TI and fadc250
  • compiles as
nps_vme_master_list.so   
nps_vme_slave_list.so    # Uses fiber 1 for TS connection (HMS)
nps_vme_slave5_list.so   # Uses fiber 5 for TS connection (NPS)
  • master configured for triggers from TSINPUTS: TS#1, TS#2
  • fadc250 configuration file read from "User Configuration file"
  • ti configuration read from "User String"
    • vtp - adds VTP as slave ROC
    • npsvmeN, N=[2,5] - adds npsvmeN as a slave ROC

ti_list.c

  • readout of TI
  • compiles as
ti_master_list.so
ti_slave_list.so
  • master configured for triggers from TSINPUTS: TS#1, TS#2
  • ti configuration read from "User String"
    • vtp - adds VTP as slave ROC
    • npsvmeN, N=[2,5] - adds npsvmeN as a slave ROC

event_list.crl

  • Required for user events from VME ROC.
  • compiles as
event_list.so

CODA Configurations

Component priorities

These must be set to ensure the correct order of ROCs for the configuration and synchronization of serial links. The pattern: Trigger Supervisor has highest priority, VME are next. VTP have the least priority.

ROC priority example.png
Component Priority
npsvme1 1210
npsvme2 1110
npsvme3 1110
npsvme4 1110
npsvme5 1110
npsvtp1 1010
npsvtp2 1010
npsvtp3 1010
npsvtp4 1010
npsvtp5 1010

Readout Lists, User Strings, User Config

This section defines the field contents for the ROC components. The NPS configuration uses the fields as shown below. The NPS_5crate configuration has the npsvtp{1,2,3,4,5} ROCs removed, with the vtp parameter removed from the ROL1 User String

npsvme1

ROL1: /home/hccoda/nps-vme/rol/nps_vme_master_list.so
ROL1 User String: vtp,npsvme2,npsvme3,npsvme4,npsvme5
ROL2: /home/hccoda/nps-vme/rol/event_list.so
ROL2 User String: undefined
User Config: /home/hccoda/nps-vme/cfg/nps-vme1.cfg

npsvme{2,3,4,5}

ROL1: /home/hccoda/nps-vme/rol/nps_vme_slave5_list.so
ROL1 User String: vtp
ROL2: /home/hccoda/nps-vme/rol/event_list.so
ROL2 User String: undefined
User Config: /home/hccoda/nps-vme/cfg/nps-vme{2,3,4,5}.cfg

npsvtp{1,2,3,4,5}

ROL1: /home/hccoda/nps-vtp/rol/nps_vtp_list.so
ROL1 User String: undefined

ROL2: 
ROL2 User String: undefined

User Config: /home/hccoda/nps-vtp/cfg/nps-vtp{1,2,3,4,5}.cfg

VTP uBoot configuration

port vtp
2001 nps-vtp1
2002 nps-vtp2
2003 nps-vtp3
2004 nps-vtp4
2005 nps-vtp5
  • Access to VTP boot parameters is through the NPS portserver.
telnet nps-ps1 <port>