Difference between revisions of "UITF Mott CODA Summary"
(→helicity decoder: add helicity_decoder.enabled option) |
|||
(25 intermediate revisions by 2 users not shown) | |||
Line 111: | Line 111: | ||
=='''Mott FADC'''== | =='''Mott FADC'''== | ||
− | + | The parameters below have been optimized (July 3, 2022). | |
− | |||
− | |||
− | |||
− | |||
− | CH1 - E LEFT Range - 0 | + | <pre> |
− | CH2 - E RIGHT | + | { |
− | CH3 - | + | type = "counting"; |
− | CH4 - | + | address = 0xed0000; |
− | CH5 - | + | slot = 13; |
− | CH6 - | + | sd_fp_address = 0xea00; |
− | CH7 - | + | |
− | CH8 - | + | init_arg = 0x13; |
− | CH9 - | + | mode = 1; |
− | CH10 - | + | |
− | CH11 - Mott Trigger | + | pl = 260; |
− | CH12 - | + | ptw = 500; |
− | CH13 - Delayed | + | nsb = 5; |
− | CH14 - T_Settle | + | nsa = 28; |
− | CH15 - Pat Sync | + | np = 1; |
− | + | ||
+ | delay8 = 0; | ||
+ | delay9 = 2; | ||
+ | delay11 = 4; | ||
+ | |||
+ | threshold = | ||
+ | [ | ||
+ | 10, // CH1 - E LEFT | ||
+ | 10, // CH2 - E RIGHT | ||
+ | 10, // CH3 - T LEFT | ||
+ | 10, // CH4 - T RIGHT | ||
+ | 10, // CH5 - | ||
+ | 10, // CH6 - | ||
+ | 10, // CH7 - | ||
+ | 10, // CH8 - | ||
+ | 10, // CH9 - | ||
+ | 10, // CH10 - | ||
+ | 10, // CH11 - Mott Trigger | ||
+ | 10, // CH12 - | ||
+ | 10, // CH13 - Delayed Helicity | ||
+ | 10, // CH14 - T_Settle | ||
+ | 10, // CH15 - Pat Sync | ||
+ | 10 // CH16 - Pair Sync | ||
+ | ]; | ||
+ | |||
+ | dac = | ||
+ | [ | ||
+ | 3050, // CH1 - E LEFT Range - 1.0 V | ||
+ | 3050, // CH2 - E RIGHT - 1.0 V | ||
+ | 3300, // CH3 - T LEFT - 1.0 V | ||
+ | 3300, // CH4 - T RIGHT - 1.0 V | ||
+ | 3300, // CH5 - - 1.0 V | ||
+ | 3300, // CH6 - - 1.0 V | ||
+ | 3300, // CH7 - - 1.0 V | ||
+ | 3300, // CH8 - - 1.0 V | ||
+ | 3300, // CH9 - - 1.0 V | ||
+ | 3300, // CH10 - - 1.0 V | ||
+ | 3300, // CH11 - Mott Trigger - 1.0 V | ||
+ | 3300, // CH12 - - 1.0 V | ||
+ | 3300, // CH13 - Delayed Helicity - 1.0 V | ||
+ | 3300, // CH14 - T_Settle - 1.0 V | ||
+ | 3300, // CH15 - Pat Sync - 1.0 V | ||
+ | 3300 // CH16 - Pair Sync - 1.0 V | ||
+ | ]; | ||
+ | } | ||
+ | </pre> | ||
* Reference: JLab Module Manuals [https://coda.jlab.org/drupal/content/othermisc-modules] | * Reference: JLab Module Manuals [https://coda.jlab.org/drupal/content/othermisc-modules] | ||
Line 142: | Line 183: | ||
* Summary of FADC250 Operating Modes (2/18/14): [[Media:FADC250_modes_2.pdf]] | * Summary of FADC250 Operating Modes (2/18/14): [[Media:FADC250_modes_2.pdf]] | ||
− | * | + | * Mott_SemiInt uses '''FADC Mode 7''' This mode provides: |
# Pulse integral (sum of all 4ns samples over set threshold, up to 3 pulses per window) | # Pulse integral (sum of all 4ns samples over set threshold, up to 3 pulses per window) | ||
# Pulse time (62.5 ps resolution) | # Pulse time (62.5 ps resolution) | ||
# Pedestal average of 4 samples at beginning of window. | # Pedestal average of 4 samples at beginning of window. | ||
− | + | =='''INT FADC'''== | |
− | + | ||
− | + | The parameters below have been optimized (July 3, 2022) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <pre> | |
− | + | fadc250: ( | |
− | + | { | |
− | + | type = "integrating"; | |
− | + | address = 0xee0000; | |
+ | slot = 18; | ||
+ | sd_fp_address = 0xeb00; | ||
+ | init_arg = 0x13; | ||
+ | mode = 1; | ||
+ | pl = 0; | ||
+ | ptw = 0; | ||
+ | nsb = 1; | ||
+ | nsa = 498; | ||
+ | np = 1; | ||
+ | delay8 = 0; | ||
+ | delay9 = 0; | ||
+ | delay11 = 0; | ||
− | == | + | threshold = |
+ | [ 1, 1, 1, 1, | ||
+ | 1, 1, 1, 1, | ||
+ | 1, 1, 1, 1, | ||
+ | 1, 1, 1, 1 ]; | ||
+ | |||
+ | dac = | ||
+ | [ 3300, 3300, 3300, 3300, | ||
+ | 3300, 3300, 3300, 3300, | ||
+ | 3300, 3300, 3300, 3300, | ||
+ | 3300, 3300, 3300, 3300 ]; | ||
+ | |||
+ | }, | ||
+ | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Reference: [[Media:PEPPo-FADC.pdf]] | Reference: [[Media:PEPPo-FADC.pdf]] | ||
Line 193: | Line 238: | ||
All the relevant files are at: '''M:\FE\PEPPo'''. These files also copied to opsmdaq0 at: '''/opt/idaq/HaiDong_PEPPo'''. | All the relevant files are at: '''M:\FE\PEPPo'''. These files also copied to opsmdaq0 at: '''/opt/idaq/HaiDong_PEPPo'''. | ||
+ | =='''TI'''== | ||
+ | |||
+ | STATUS for TI at VME (Local) base address 0x00180000 (0x7fe83097d000) | ||
+ | -------------------------------------------------------------------------------- | ||
+ | Firmware revision: 11.3 (tip113.svf) | ||
+ | <pre> | ||
+ | ti: | ||
+ | { | ||
+ | blocklevel = 1; | ||
+ | bufferlevel = 10; | ||
+ | /* | ||
+ | Trigger Prescale := 1 / 2^(prescale) | ||
+ | prescale is fixed to 0 for Mott_Int | ||
+ | */ | ||
+ | prescale = 0; | ||
− | == | + | trigger_rules: ( |
+ | { /* rule 1 */ | ||
+ | period = 10; | ||
+ | timestep = 0; | ||
+ | }, | ||
+ | { /* rule 2 */ | ||
+ | period = 10; | ||
+ | timestep = 0; | ||
+ | }, | ||
+ | { /* rule 3 */ | ||
+ | period = 1; | ||
+ | timestep = 0; | ||
+ | }, | ||
+ | { /* rule 4 */ | ||
+ | period = 1; | ||
+ | timestep = 0; | ||
+ | } | ||
+ | ); | ||
+ | </pre> | ||
− | + | <pre> | |
− | + | random_pulser: | |
+ | { | ||
+ | enabled = 0; | ||
+ | prescale = 0xF; | ||
+ | } | ||
+ | |||
+ | fixed_pulser: | ||
+ | { | ||
+ | enabled = 0; | ||
+ | nevents = 0xffff; | ||
+ | period = 1; | ||
+ | timestep = 1; | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
Reference: [[Media:TImaster.pdf]] | Reference: [[Media:TImaster.pdf]] | ||
+ | =='''Trigger Prescale'''== | ||
+ | The input trigger can be prescaled by the ti:prescale parameter in the [[How to run UITF Mott CODA#Configuration File|Configuration File]] | ||
− | ==''' | + | /* |
+ | Trigger Prescale := 1 / 2^(prescale) | ||
+ | prescale is fixed to 0 for Mott_Int | ||
+ | */ | ||
+ | prescale = 0; | ||
+ | |||
+ | =='''helicity decoder'''== | ||
− | + | <pre> | |
− | + | helicity_decoder: | |
− | + | { | |
+ | enabled = 1; | ||
+ | address = 0xa80000; | ||
+ | slot = 21; | ||
− | = | + | input_delay = 0x100; // 0x100 = 2048 ns (1 = 8 ns) |
− | + | trigger_latency_delay = 0x40; // 0x40 = 512 ns (1 = 8ns) | |
− | = | + | use_internal_helicity = 0; |
− | |||
− | |||
− | ==== | + | internal_helicity: |
− | + | { | |
− | + | helicity_pattern = 2; // 2 = OCTET | |
− | + | window_delay = 10; | |
− | + | settle_time = 0x40; // 0x40 = 512 ns (1 = 8ns) | |
− | + | stable_time = 0x80; // 0x80 = 1024 ns (1 = 8ns) | |
− | + | seed = 0xabcdef01; | |
− | + | } | |
+ | } | ||
+ | </pre> | ||
+ | =='''jeviodmp'''== | ||
+ | The Java-based event display utility can be used to navigate through the data files. | ||
− | + | jeviodmp | |
− | [[ | + | [[File:jeviodmp_Mott_Int_98.png]] |
+ | =='''evio2xml'''== | ||
+ | The event format utility (evio2xml) can display, in a readable XML format, events from the data files. | ||
− | + | evio2xml [-max max_event] [-pause] [-skip skip_event] | |
− | + | [-dict dictfilename] [-dtag dtag] | |
+ | [-ev evtag] [-noev evtag] [-frag frag] [-nofrag frag] [-max_depth max_depth] | ||
+ | [-n8 n8] [-n16 n16] [-n32 n32] [-n64 n64] | ||
+ | [-verbose] [-brief] [-no_data] [-xtod] [-m main_tag] [-e event_tag] | ||
+ | [-indent indent_size] [-no_typename] [-maxbuf maxbuf] [-debug] | ||
+ | [-out outfilenema] [-gz] filename | ||
+ | ===Example=== | ||
− | + | evio2xml -verbose -pause -skip 4 -max 1 Mott_Int_98.dat.0 | |
+ | |||
+ | <!-- ===================== Buffer 5 contains 80 words (320 bytes) ===================== --> | ||
+ | |||
+ | <!-- header words: 79, 0xff501001 --> | ||
+ | <event format="evio" count="5" content="bank" data_type="0x10" tag="65360" padding="0" num="1" length="79" ndata="78"> | ||
+ | |||
+ | <!-- header words: 11, 0xff212001 --> | ||
+ | <bank content="segment" data_type="0x20" tag="65313" padding="0" num="1" length="11" ndata="10"> | ||
+ | |||
+ | <!-- header word: 0x10a0004 --> | ||
+ | <uint64 data_type="0xa" tag="1" padding="0" length="4" ndata="2"> | ||
+ | 0x0000000000000002 0x000000002569e106 | ||
+ | </uint64> | ||
+ | |||
+ | <!-- header word: 0x1850001 --> | ||
+ | <uint16 data_type="0x5" tag="1" padding="2" length="1" ndata="1"> | ||
+ | 0x0041 | ||
+ | </uint16> | ||
+ | |||
+ | <!-- header word: 0x1010002 --> | ||
+ | <uint32 data_type="0x1" tag="1" padding="0" length="2" ndata="2"> | ||
+ | 0x2569e106 0x91c00000 | ||
+ | </uint32> | ||
+ | </bank> | ||
+ | |||
+ | <!-- header words: 65, 0x11001 --> | ||
+ | <bank content="bank" data_type="0x10" tag="1" padding="0" num="1" length="65" ndata="64"> | ||
+ | |||
+ | <!-- header words: 41, 0x2500101 --> | ||
+ | <uint32 data_type="0x1" tag="592" padding="0" num="1" length="41" ndata="40"> | ||
+ | 0x84800801 0x90000001 0x98000000 0x007dc31c | ||
+ | 0xa8000001 0x00c55a24 0xa8800001 0x0081114c | ||
+ | 0xa9000000 0x00d5191e 0xa9800000 0x00c2689c | ||
+ | 0xaa000000 0x00b89787 0xaa800000 0x00f7f107 | ||
+ | 0xab000000 0x00b74fd4 0xab800000 0x00c81b0a | ||
+ | 0xac000000 0x00b03a79 0xac800000 0x00f879d1 | ||
+ | 0xad000001 0x00262b4f 0xad800000 0x00c5c58c | ||
+ | 0xae000000 0x00df55a6 0xae80001b 0x00997dc0 | ||
+ | 0xaf000000 0x00a14fe7 0xaf800000 0x009fbbf2 | ||
+ | 0xf800ffff 0x8c800026 0xf8000000 0xf8000000 | ||
+ | </uint32> | ||
+ | |||
+ | <!-- header words: 21, 0xdec0101 --> | ||
+ | <uint32 data_type="0x1" tag="3564" padding="0" num="1" length="21" ndata="20"> | ||
+ | 0x85740201 0x95400002 0x9af57dd3 0x00000012 | ||
+ | 0xc000000e 0x00000004 0x000006ae 0x000006ae | ||
+ | 0x000001ac 0x00000358 0x00408643 0x0000f3f8 | ||
+ | 0x003f924a 0x0000f423 0x00000031 0x77777777 | ||
+ | 0x55555555 0x69699699 0x8ec71389 0x8d400014 | ||
+ | </uint32> | ||
+ | </bank> | ||
+ | </event> | ||
+ | |||
+ | <!-- end buffer 5 --> | ||
− | + | =='''jcedit'''== | |
+ | Use the Java based CODA Configuration Editor jcedit to modify MOTT Configurations. | ||
− | + | [[File:jcedit_Mott_Int.png]] | |
− |
Latest revision as of 18:39, 7 September 2023
OPS Network
Mott DAQ Host (Rack ITF 07, UITF Roof):
name => itfmdaq0 ip => 129.57.229.190
Mott DAQ SBC:
name => itfsbcmdaq0 ip => 129.57.236.242
UITF Mott DAQ itfsbcmdaq0
XVR-16 Abaco Intel/Linux VME SBC
Up to date version of JLab Module drivers
/home/idaq/linuxvme
CODA Readout lists
/home/idaq/rol
Configuration Files
/home/idaq/cfg
All UITF Mott CODA configurations:
- Mott_Sample
- Mott_Int
The source is available here:
itfsbcmdaq0:/home/idaq/rol/
To compile, must be on itfsbcmdaq0. Use the Makefile:
make
or specifically
make uitf_list.so
To access the UITF Mott DAQ VME SBC:
idaq@itfmdaq0 > ssh itfsbcmdaq0
CODA Files
CODA readout lists:
idaq@itfsbcmdaq0:/home/idaq/rol/ uitf_list.c
To compile:
make uitf_list.so
Log entry scripts
/opt/idaq/coda/logentry_scripts
CODA 3.10_devel
/opt/idaq/coda/3.10_devel
CODA COOL_HOME
/opt/idaq/coda/cool.itfmdaq0
CODA_SCRIPTS (for startCoda, kcoda, etc)
/opt/idaq/coda/coda_scripts
Summary of CODA Configurations
Name | Readout | Output | Trigger |
Mott_Sample | Mott FADC and INT FADC | /data/mott/Mott_Sample_%d.dat | Mott Detector |
Mott_SemiInt | Mott FADC and INT FADC | /data/mott/Mott_SemiInt_%d.dat | Mott Detector |
Mott_Int | INT FADC | /data/mott/Mott_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
The parameters below have been optimized (July 3, 2022).
{ type = "counting"; address = 0xed0000; slot = 13; sd_fp_address = 0xea00; init_arg = 0x13; mode = 1; pl = 260; ptw = 500; nsb = 5; nsa = 28; np = 1; delay8 = 0; delay9 = 2; delay11 = 4; threshold = [ 10, // CH1 - E LEFT 10, // CH2 - E RIGHT 10, // CH3 - T LEFT 10, // CH4 - T RIGHT 10, // CH5 - 10, // CH6 - 10, // CH7 - 10, // CH8 - 10, // CH9 - 10, // CH10 - 10, // CH11 - Mott Trigger 10, // CH12 - 10, // CH13 - Delayed Helicity 10, // CH14 - T_Settle 10, // CH15 - Pat Sync 10 // CH16 - Pair Sync ]; dac = [ 3050, // CH1 - E LEFT Range - 1.0 V 3050, // CH2 - E RIGHT - 1.0 V 3300, // CH3 - T LEFT - 1.0 V 3300, // CH4 - T RIGHT - 1.0 V 3300, // CH5 - - 1.0 V 3300, // CH6 - - 1.0 V 3300, // CH7 - - 1.0 V 3300, // CH8 - - 1.0 V 3300, // CH9 - - 1.0 V 3300, // CH10 - - 1.0 V 3300, // CH11 - Mott Trigger - 1.0 V 3300, // CH12 - - 1.0 V 3300, // CH13 - Delayed Helicity - 1.0 V 3300, // CH14 - T_Settle - 1.0 V 3300, // CH15 - Pat Sync - 1.0 V 3300 // CH16 - Pair Sync - 1.0 V ]; }
- Reference: JLab Module Manuals [1]
- Reference: Media:FADC250_V2_ADC_FPGA_V5.pdf
- Reference: Media:Programming_FADCV2_3.pdf
- Summary of FADC250 Operating Modes (2/18/14): Media:FADC250_modes_2.pdf
- Mott_SemiInt uses FADC Mode 7 This mode provides:
- Pulse integral (sum of all 4ns samples over set threshold, up to 3 pulses per window)
- Pulse time (62.5 ps resolution)
- Pedestal average of 4 samples at beginning of window.
INT FADC
The parameters below have been optimized (July 3, 2022)
fadc250: ( { type = "integrating"; address = 0xee0000; slot = 18; sd_fp_address = 0xeb00; init_arg = 0x13; mode = 1; pl = 0; ptw = 0; nsb = 1; nsa = 498; np = 1; delay8 = 0; delay9 = 0; delay11 = 0; threshold = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; dac = [ 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 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.
TI
STATUS for TI at VME (Local) base address 0x00180000 (0x7fe83097d000) -------------------------------------------------------------------------------- Firmware revision: 11.3 (tip113.svf)
ti: { blocklevel = 1; bufferlevel = 10; /* Trigger Prescale := 1 / 2^(prescale) prescale is fixed to 0 for Mott_Int */ prescale = 0; trigger_rules: ( { /* rule 1 */ period = 10; timestep = 0; }, { /* rule 2 */ period = 10; timestep = 0; }, { /* rule 3 */ period = 1; timestep = 0; }, { /* rule 4 */ period = 1; timestep = 0; } );
random_pulser: { enabled = 0; prescale = 0xF; } fixed_pulser: { enabled = 0; nevents = 0xffff; period = 1; timestep = 1; } }
Reference: Media:TImaster.pdf
Trigger Prescale
The input trigger can be prescaled by the ti:prescale parameter in the Configuration File
/* Trigger Prescale := 1 / 2^(prescale) prescale is fixed to 0 for Mott_Int */ prescale = 0;
helicity decoder
helicity_decoder: { enabled = 1; address = 0xa80000; slot = 21; input_delay = 0x100; // 0x100 = 2048 ns (1 = 8 ns) trigger_latency_delay = 0x40; // 0x40 = 512 ns (1 = 8ns) use_internal_helicity = 0; internal_helicity: { helicity_pattern = 2; // 2 = OCTET window_delay = 10; settle_time = 0x40; // 0x40 = 512 ns (1 = 8ns) stable_time = 0x80; // 0x80 = 1024 ns (1 = 8ns) seed = 0xabcdef01; } }
jeviodmp
The Java-based event display utility can be used to navigate through the data files.
jeviodmp
evio2xml
The event format utility (evio2xml) can display, in a readable XML format, events from the data files.
evio2xml [-max max_event] [-pause] [-skip skip_event] [-dict dictfilename] [-dtag dtag] [-ev evtag] [-noev evtag] [-frag frag] [-nofrag frag] [-max_depth max_depth] [-n8 n8] [-n16 n16] [-n32 n32] [-n64 n64] [-verbose] [-brief] [-no_data] [-xtod] [-m main_tag] [-e event_tag] [-indent indent_size] [-no_typename] [-maxbuf maxbuf] [-debug] [-out outfilenema] [-gz] filename
Example
evio2xml -verbose -pause -skip 4 -max 1 Mott_Int_98.dat.0 <event format="evio" count="5" content="bank" data_type="0x10" tag="65360" padding="0" num="1" length="79" ndata="78"> <bank content="segment" data_type="0x20" tag="65313" padding="0" num="1" length="11" ndata="10"> <uint64 data_type="0xa" tag="1" padding="0" length="4" ndata="2"> 0x0000000000000002 0x000000002569e106 </uint64> <uint16 data_type="0x5" tag="1" padding="2" length="1" ndata="1"> 0x0041 </uint16> <uint32 data_type="0x1" tag="1" padding="0" length="2" ndata="2"> 0x2569e106 0x91c00000 </uint32> </bank> <bank content="bank" data_type="0x10" tag="1" padding="0" num="1" length="65" ndata="64"> <uint32 data_type="0x1" tag="592" padding="0" num="1" length="41" ndata="40"> 0x84800801 0x90000001 0x98000000 0x007dc31c 0xa8000001 0x00c55a24 0xa8800001 0x0081114c 0xa9000000 0x00d5191e 0xa9800000 0x00c2689c 0xaa000000 0x00b89787 0xaa800000 0x00f7f107 0xab000000 0x00b74fd4 0xab800000 0x00c81b0a 0xac000000 0x00b03a79 0xac800000 0x00f879d1 0xad000001 0x00262b4f 0xad800000 0x00c5c58c 0xae000000 0x00df55a6 0xae80001b 0x00997dc0 0xaf000000 0x00a14fe7 0xaf800000 0x009fbbf2 0xf800ffff 0x8c800026 0xf8000000 0xf8000000 </uint32> <uint32 data_type="0x1" tag="3564" padding="0" num="1" length="21" ndata="20"> 0x85740201 0x95400002 0x9af57dd3 0x00000012 0xc000000e 0x00000004 0x000006ae 0x000006ae 0x000001ac 0x00000358 0x00408643 0x0000f3f8 0x003f924a 0x0000f423 0x00000031 0x77777777 0x55555555 0x69699699 0x8ec71389 0x8d400014 </uint32> </bank> </event>
jcedit
Use the Java based CODA Configuration Editor jcedit to modify MOTT Configurations.