Difference between revisions of "CODA Summary"
Line 26: | Line 26: | ||
− | =='''Power-Cycling Mott DAQ VME Crate'''== | + | =='''Power-Cycling Mott DAQ VME Crate -- UPDATE'''== |
To power-cycling the Injector crates. This is necessary when ROC31 (aka g0inj) or ROC24 (aka happexinj) get hung up. Go to: | To power-cycling the Injector crates. This is necessary when ROC31 (aka g0inj) or ROC24 (aka happexinj) get hung up. Go to: |
Revision as of 07:44, 25 April 2014
OPS Network
Mott DAQ Host:
name => opsmdaq0 ip => 129.57.236.240
Mott DAQ SBC:
name => sbcmdaq0 ip => 129.57.236.242
Mott DAQ IOC:
name => iocmdaq1 ip => 129.57.236.241
Other network information:
name => opsnet number => 129.57.236.0 mask => 255.255.252.0 cidr => 22 hexmask => 0Xfffffc00 broadcast => 129.57.239.255 gateway => 129.57.236.1 domain => acc.jlab.org vlan => 5 comment => OPS
Power-Cycling Mott DAQ VME Crate -- UPDATE
To power-cycling the Injector crates. This is necessary when ROC31 (aka g0inj) or ROC24 (aka happexinj) get hung up. Go to: http://g0injreboot.acc.jlab.org (parity, parity).
"sbcmdaq0" is connected to Outlet4. Click "Control Action" and select "Immediate Off", then click the "Apply" button. Wait a few seconds, then "Control Action" and "Immediate On" and "Apply".
Mott DAQ sbcmdaq0
Upgraded from MVME6100/VxWorks to Intel/Linux VME SBC. For more information, please see: [1]
MVME 6100 was replaced with a Concurrent Technologies VX915.
Local Operating System (CentOS 5.10) is installed on a Compact Flash (4GB) that is mounted on the module.
All DAQ software resides on NFS mounted directories from opsmdaq0.
From the idaq home directory, softlinks were made to /opt/coda/sbcmdaq0/linuxvme (contains an up to date version of the JLab module software drivers) /opt/coda/sbcmdaq0/rol (CODA readout lists for Mott)
Non-DAQ group software drivers were also ported to Linux to minimize software changes to be done on the analysis and monitoring side. These include:
- scalers (SIS3801, SIS3801.no_ring, intlib, scaser)
- v775
- v895
- helicity
To support the scaler library framework, a new library was written to facilitate the movement of data between different processes (scaler server, scaler producer, CODA ROC): crateSharedMem
All of these new libraries are located (and used) in: /opt/coda/sbcmdaq0/linuxvme/
The Scaler server and sisProducer are launched after boot via boot scripts in (sbcmdaq0) /home/idaq/boot_scripts/ via entries in /etc/inittab
CODA Readout Lists used in the 6100 were updated into the newer "C" readout list framework. No more using makelist or writing .crl files.
Scaler libraries were then optimized to support DMA.
All Mott CODA configurations are now ready to go:
- Mott_Sample
- Mott_SemiInt
- PEPPo_Int
- Scalers
The source is available here: /opt/coda/sbcmdaq0/rol
To compile, must be on sbcmdaq0. Use the Makefile.
To access the Mott DAQ VME SBC:
idaq@opsmdaq0 > ssh sbcmdaq0
Mott DAQ iocmdaq1
There are two ways to access the Mott DAQ ioc:
- From an accelerator machine: telnet iocmdaq1
- From an accelerator machine: ioc_concole iocmdaq1. Here you need to enter a password to this cannot be done with the idaq account.
The startup file: idaq@opsmdaq0:/cs/op/iocs/iocmdaq1/startup
# IOC: iocmdaq1 # Location: shellPromptSet("vxwrks@iocmdaq1 -> "); # Add the DAQ Host hostAdd "opsmdaq0","129.57.236.240" # Mount the CODA Distribution nfsMount "opsmdaq0","/opt","/opt" # Load CODA software and Drivers for Mott system cd "/opt" < /opt/coda/boot/mott_roc1.boot
The CODA boot file: idaq@opsmdaq0:/opt/coda/boot/mott_roc1.boot
# Boot file for CODA ROC 2.6.2 # PowerPC version # Add Multicast Routes for cMsg support mRouteAdd("224.0.0.0","129.57.236.0",0xf0000000,0,0) # Load host table hostAdd("opsmdaq0.acc.jlab.org","129.57.236.240") # Setup environment to load coda_roc putenv "MSQL_TCP_HOST=opsmdaq0" putenv "EXPID=inj" putenv "TCL_LIBRARY=/opt/coda/2.6.2/common/lib/tcl7.4" putenv "ITCL_LIBRARY=/opt/coda/2.6.2/common/lib/itcl2.0" putenv "DP_LIBRARY=/opt/coda/2.6.2/common/lib/dp" putenv "SESSION=injuser" # Load Tempe DMA Library ld< /opt/coda/2.6.2/extensions/tempeDma/usrTempeDma.o usrVmeDmaConfig(2,3,0) # Load JLAB FADC library ld < /opt/coda/2.6.2/extensions/fadcV2/v2.0/fadcLib.o # Load cMsg Stuff cd "/opt/coda/2.6.2/cMsg/vxworks-ppc" ld< lib/libcmsgRegex.o ld< lib/libcmsg.o # New TI library ld < /opt/idaq/crl/tid/tidLib.o # Load the CODA Readout controller cd "/opt/coda/2.6.2/VXWORKSPPC/bin" ld < coda_roc_rc3.6 ld < /opt/idaq/lib/v895/v895.o ld < /opt/idaq/lib/v775/v775.o ld < /opt/idaq/lib/JLabdiscr/vmeDSClib.o ld < /opt/idaq/lib/JLabdiscr/GUIDiscrim/vmetcpserver.o # Initialize the event counter ncnt = 0 # global variable, needed for out-of-time scalers to inform CODA they're ready scaRunReady = 0 scaNbError=0 # global to control printouts of SIS3801 scaDebug = 0 # global variable, needed to tell scalers ROC is active rocActivate = 0 # Helicity timing board globals vxhelclock=0 vxheltsettle=0 vxheltstable=0 vxhelpattern=1 vxheldelay=0 vxhelfreq=0 # Scaler libraries (on idaq) ld < /opt/idaq/scaler/intlib/5.5/scalIntLib.o ld < /opt/idaq/scaler/SIS3801/SIS3800.o ld < /opt/idaq/scaler/SIS3801/SIS3801.o ld < /opt/idaq/scaler/SIS3801.no_ring/SIS3801_noring.o sis3801Init(1); ld < /opt/idaq/scaler/scaser/scaser.o taskSpawn "scalServ",125,spTaskOptions,10000,bobServer initSIS() initISR_SIS() end_run_flag=0 taskSpawn "SISProd",95,spTaskOptions,10000,SISProducer runStartClrSIS() # Helicity info gathering ld < /opt/idaq/helicity/sgethel.o taskSpawn "helinfoServ",127,spTaskOptions,10000,helServer # Spawn tasks taskSpawn ("ROC",200,8,250000,coda_roc,"","-s","inj","-objects","ROC1 ROC") sp main
CODA Files
CODA crl files are in: idaq@opsmdaq0: /opt/idaq/crl Scalers.crl Mott_Sample.crl Mott_SemiInt.crl PEPPo_Int.crl To compile: makelist Mott_Sample.crl ppc
CODA scripts files are in: idaq@opsmdaq0: /opt/idaq/scripts
Summary of CODA Configurations
Name | Readout | Output | Trigger |
Scalers | Scaler S1 (helicity gated), S2 (un-gated) | Scalers_%d.dat | Delayed nT_Settle |
Mott_Sample | Mott FADC, S1, S2, TDC | Mott_Sample_%d.dat | Mott Detector |
Mott_SemiInt | Mott FADC, S1, S2, TDC | Mott_SemiInt_%d.dat | Mott Detector |
PEPPo_Int | INT FADC, S1, S2 | PEPPo_Int_%d.dat | nT_Settle |
Backup Data Files to SILO
Cron scripts are installed on the idaq account on opsmdaq0 to back up data and delete it from /data and /data1:
/opt/idaq/cron/cron_opsmdaq0
Do not attempted to copy, delete, move, or rename files. Never !
The scripts assume that data appears in /data*/DIR where DIR = "annihilation" or "compton" or "mott" Files must have the keywords "PEPPo" or "Scalers" or at least "dat". This avoids writing scratch files like root output. Do not start putting data in some new place or with new names. It won't be backed up to MSS if you do that.
The data are deleted from local disks if they have been written in duplicate with correct byte count to the MSS tape silo. The data stay on disk for an amount of time that is related to the amount of disk space is available. If lots of disk available, the data stay forever. If not much disk, the data are deleted aggressively.
The data is copied to: /mss/accel/peppo/raw
The copying of data was disabled on January 3rd, 2014. - To list: crontab -l - To remove: crontab -r - Check again: crontab -l - To load: crontab cron_opsmdaq0 (in /opt/idaq/cron)
Mott FADC
const FADC_ADDR = 0x680000 # 12 bit fADC MOTT - Slot 7 const FADCMODE = 1 (Mott_Sample) const FADCMODE = 3 (Mott_SemiInt) const FADCSLOT_Mott = 7 const TRSPLIT = 0xeb13 # Address of fADC Signal Distribution Module
CH1 - E LEFT Range - 0.5 V DAC_offset = 3300 CH2 - E RIGHT - 0.5 V DAC_offset = 3300 CH3 - E UP - 0.5 V DAC_offset = 3300 CH4 - E DOWN - 0.5 V DAC_offset = 3300 CH5 - dE LEFT - 0.5 V DAC_offset = 3300 CH6 - dE RIGHT - 0.5 V DAC_offset = 3300 CH7 - dE UP - 0.5 V DAC_offset = 3300 CH8 - dE DOWN - 0.5 V DAC_offset = 3300 CH9 - BFM - 1.0 V DAC_offset = 3300 CH10 - Empty - 1.0 V DAC_offset = 3300 CH11 - Mott Trigger - 1.0 V DAC_offset = 3300 CH12 - Empty - 1.0 V DAC_offset = 3300 CH13 - Delayed Hel - 1.0 V DAC_offset = 3300 CH14 - T_Settle - 1.0 V DAC_offset = 3300 CH15 - Pat Sync - 1.0 V DAC_offset = 3300 CH16 - Pair Sync - 1.0 V DAC_offset = 3300
Reference: JLab Module Manuals [2]
Reference: Media:FADC250_V2_ADC_FPGA_V5.pdf
Reference: Media:Programming_FADCV2_3.pdf
INT FADC
const FADC_ADDR = 0xed0000 # 12 bit fADC Int - Slot 10 const FADCMODE = 3 (Int_Int, special) const FADCSLOT_PEPPo3 = 10 const TRSPLIT = 0xea13 # Address of fADC Signal Distribution Module
Range - 2.0 V DAC_offset = 3300
Reference: Media:PEPPo-FADC.pdf
Reference: Media:PEPPo_Helicity_Trigger_FADC250.docx
Reference: Media:PEPPpoHelicityFirmware.pdf Media:PEPPpoHelicityFirmware.docx
All the relevant files are at: M:\FE\PEPPo. These files also copied to opsmdaq0 at: /opt/idaq/HaiDong_PEPPo.
TDC
CAEN v775 const int V775_ADD = 0x1190
From Coda file: Full Scale (ns) = v775_getFSR() = 134 ns Bin Resolution (ps) = (v775_getLSB()*1000.) = 34 ps/channel
vxwrks@iocmdaq1 -> v775_printScaleInfo() v775 => fullscale register =255 (0xff), LSB=0.034902 ns/chan, full scale=134.023529 ns, sliding Gate=1
The TDC is operated in Common Start Mode: v775_setupCommonStart()
Reference: Media:V775_manual.pdf
S1 and S2
S1: SIS3801 at addr 0xa40000 S2: SIS3801 at addr 0xa50000
Reference: Media:SIS3801_manual.pdf
TID
A24 Address for TID Module (0x100000 for VME Slot 2) const TRIG_ADDR = 0x100000
Reference: Media:TImaster.pdf
Trigger Prescale
The input trigger can be prescaled by editing the crl file: /* Front panel trigger prescale: 2^<arg> */ tidSetPrescale(0);
cefdmp/xcefdmp
The event dump utility (cefdmp) can display, in a readable ASCII format, events from the data files.
Syntax
% cefdmp [filename] [-o object] [-t tag] [-u uniquetag] [-s start] [-e end] [-d dictionary] [-x] % xcefdmp [same]
Options
o specify the source object name (CODA component name) t select specified tag number or name (full path in event structure) u select specified unique tag, independent of location in the event s number of first record in file to dump e number of last record in file to dump d specify dictionary for obtaining tag names and titles x hex dump of integers (default is decimal)
cedit and dbedit
Use cedit and/or dbedit to modify CODA database.
Issues and FAQ
- RunNumber: if the run number in msql is different from the one in CODA cool database, coda doesn't work. Open dbedit => localhost => sessions and change the RunNumber to match the one in CODA cool database.