This group contain the latch information. Experiment E852 is latching various trigger information - state of the trigger elements, etc... This information is used later on to determine the trigger and event type for each event.
typedef struct
{
int32 nlatches;
uint32 latch[1];
} latch_values_t;
words function bits
0-1 SSP trigger latch (Struck)
0 latch bits 0:31
bits 0,1,2: trigger bits: 0-5 are normal triggers,
6 and 7 are BOS and EOS respectively
bit 3: undefined
bit 4: SSP start
bits 5-6: undefined
bit 7: "enable EOS" output
bit 8: "enable BOS" output
bit 9: "enable slow" output
bit 10: "enable fast" output
bit 11: "DAQ busy" feedthru
bit 12: "SSP start" feedthru
bits 13-15: undefined
1 latch bits 32:63
bits 0-30: unused and normally read as zero
bit 31: hardwired to "1" by a jumper on the latch board
2-4 E787 latch in slot 0x1040A
2 LGD MAM + CSI Slow
bits 0-7: LGD MAM bits 0-7
bit 9: CSI Slow bit
bits 16-31: unused, no inputs
3 Level 2 outputs
bits 0-11: L2A1-L2B6
bits 16-31: L2C1-L2D6
4 "4 ns" timer
5-7 E787 latch in slot 0x1040B
5 TPX Multiplicity
bits 0-3: TPX1 multiplicity
bits 4-7: TPX2 multiplicity
bits 8-11: TPX3 multiplicity
bit 12: TPX3 overflow
bit 13: TPX2 overflow
bit 14: TPX1 overflow
bit 15: unused
bits 16-31: TPX Multiplicity MLU outputs
6 Level1+TCYL+CPV state **** see note below ****
bits 0-7: L1A outputs
bits 8-15: L1B outputs
bit 16: CSI fast (what is it?)
bit 17: TCYL>0
bit 18: TCYL=1
bit 19: CPVB
bit 20: CPVC
bit 21: DEA
bit 22: slow enable
bit 23: TPX overflow
bit 24: s0*pretrig
7 "4 ns" timer
8-9 Struck latch in slot 0x10406
8 prescale out and CSI Halo
bits 0-7: L1A prescale out
bits 16-21: CSI halo 1-6
9 CSI Halo
bits 0-15: CSI Halo MLU outputs
10-21 CAMAC MLU: C9/H9 MLU inputs and outputs
22 CAMAC MLU: TPX Multiplicity MLU inputs (broken?)
23-26 CAMAC MLU: Level2 MLU outputs
23 L2A
24 L2B
25 L2C
26 L2D
27-30 CAMAC MLU: Level2 MLU inputs
27 L2A
28 L2B
29 L2C
30 L2D
createLatchWord(event,eventSize)
The GROUP_LATCHES is used to decode the event 'latch' which tells us what trigger (i.e. level2 A1...A6, B1...B6, etc...) triggered this event. The function 'createLatchWord(event,eventSize)' is used to do this.
Use the Latch database package to access the bits using symbolic names for the bits.
The cables for this word were plugged in upside-down, so here bits equal to '1' are considered 'off,' and bits equal to 0 are considered 'on'. Also, bits are all shifted since input 17 is where input 1 is expected, input 16 is where input 2 is expected, and so on. Delta_T is not latched until run #12565. The new channel assignments are the following:
bits 0-10: unused
bit 11: Delta_T (after run #12565, inclusive)
bit 12: S0
bit 13: DEA
bit 14: TCYL=1
bit 15: TCYL>0
bit 23-16: L1B outputs
bit 31-24: L1A outputs
Author: K.Olchanski, 1997-May-16