Difference between revisions of "NPS DAQ in Hall C"

From Cuawiki
Jump to navigation Jump to search
 
(4 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 ==
 
== Startup ==
 
[[File:NPS_DAQ_startCoda.png|right|VNC window after 'startCoda']]
 
[[File:NPS_DAQ_startCoda.png|right|VNC window after 'startCoda']]
Line 63: 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 78: 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 118: Line 121:
  
 
=== Readout Lists, User Strings, User Config ===
 
=== 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 ====
 
==== npsvme1 ====
Line 145: Line 150:
 
   
 
   
 
  User Config: /home/hccoda/nps-vtp/cfg/nps-vtp{1,2,3,4,5}.cfg
 
  User Config: /home/hccoda/nps-vtp/cfg/nps-vtp{1,2,3,4,5}.cfg
 
** PEBs: '''PEB1'''
 
 
* '''COOL_HOME''' defined as
 
hccoda@cdaql6:~/coda/cool
 
* '''CODA_COMPONENT_TABLE''' defined as
 
hccoda@cdaql6:~/coda/coda_scripts/config/NPS/coda_component_table.cfg
 
 
#
 
# CODA Component table - NPS EELsetup
 
#
 
# hostname component type    component name
 
nps-vme1 ROC     npsvme1
 
cdaql6 PEB   PEB1
 
  
 
== VTP uBoot configuration ==
 
== VTP uBoot configuration ==

Latest revision as of 07: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>