31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
GEO |
0 |
1 |
0 |
Crate |
0 |
0 |
Counts |
|
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
1 |
1 |
0 |
|
Note: Use the pattern bit25=1 to select the 2 CEAN header.
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
GEO |
0 |
0 |
0 |
0 |
0 |
0 |
Note: Use the pattern bit25=0 to select this header.
This header is defined by the
TofParams
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
GEO |
CTRL |
CODE |
Crate |
Type |
Counts |
- GEO
- Slot of the VME-Crate
- CTRL
- Block control, for header supression:
- CTRL=X0X --> write header in data stream
- CTRL=X1X --> supress header
and readout control, together with
CODE:
- CODE NOT 0, CTRL=0X0 --> readout when CODE=trigger code
- CODE NOT 0, CTRL=1X0 --> readout when CODE NOT trigger code
- CTRL=0X1 --> readout, but discard block when CODE=trigger code
- CTRL=1X1 --> readout, but discard block when CODE NOT trigger code
- CODE=0, CTRL=0X0 --> always readout. Note: In this case, Crate or Type has to be NOT 0, since the 0's are used to distinguish the block header from the SIS3820 header, if SIS3820 is working in a non-block-header mode (e.g. one chain with the TDCs)
- Crate
- Crate number
- Type
- Board type (important for unpacker). CAEN TDCs/ADCs have Type=000000, Old Struck modules =0001XX=(0x4+X), New Struck modules =001XXX=(0x8+X). Debug information has =111111.
- Counts
- Number of following data words in this block
Summary of Types
Name |
Type |
Header content |
CAEN V1190 |
0x1 |
0x04XX |
SIS 3600 CBLT Latch |
0x4 |
0x10XX |
SIS 3811 CBLT Scaler |
0x5 |
0x14XX |
SIS 3801 FIFO Scaler |
0x6 |
0x18XX |
SIS New CBLT Latch |
0x8 |
0x20XX |
SIS New CBLT Scaler |
0x9 |
0x24XX |
Examples
- Scaler
- To be read out in crate 4 with calibration trigger (0x5), GEO not needed, Type=0x9:
Header=0x00941400
- Latch
- To be read out in crate 4 with all triggers, GEO not needed, Type=0x4:
Header=0x00041000
- CAEN-modules
- (normal operation) To be read out in any case (start signal!), but discarded with calibration trigger (0x9), header not needed in data stream:
Header=0x03900000
- CAEN-modules
- (test operation) To be read out in any case (start signal!), but discarded with calibration trigger (0x9), header written in data stream. This is done for test purposes and an allowed mode. This header must be ignored in the unpacker.
Header=0x01900000
- Debug
- To be ignored by unpacker, Type=0x3f:
Header=0x0000fc00
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
EC |
CODE |
TAG |
ID |
Length |
Used by TIP boards (sub(3)-event) and by CONC (sub(2)-event),
with:
- EC
- Error code
- C=000 --> Subevent OK
- C=XX1 --> TIP trigger tag mismatch (compared to counter)
- C=X1X --> CONC trigger tag mismatch (compare the different crates)
- C=1XX --> TDC event counter mismatch or invalid TDC data structure
- Length
- Number of all data words in this sub-event.
Note: This header will only appear in the TIP-->CONC and CONC-->readout communication.
The readout expands this to the final subevent header.
Examples
Old scaler/latch 3811 in crate number 3, data from all crates, only TOF-subevent (final from eventbuilder).
Scaler does not have any data word content, only header (0x08000000) and trailer (0x08000008).
First the latch, showing up
in the nomal event:
00000000: 0x000110e6 0x5a020500 0x58020255 0x58030335
00000004: 0x58060425 0x5807094b 0x58080339 0x5c0baae6
00000008: 0x52031a00 0x50000003 0x50010002 0x50020002
00000012: 0x50030000 0x50040002 0x50050002 0x50060000
00000016: 0x50070001 0x50080002 0x50090002 0x500a0001
00000020: 0x500b0001 0x500c0002 0x500d0002 0x500e0000
00000024: 0x500f0000 0x50100004 0x50110003 0x50120001
00000028: 0x50130000 0x50160001 0x50170005 0x50180001
00000032: 0x501a000f 0x501e0007 0x501f0002 0x540baae6
00000036: 0x00032402 0x08000000 0x08000008
And the scaler, only in calibration event:
00000000: 0x0001503e 0x00931002 0x08000000 0x08000008
Note: Do not rely on a fixed position, number or
behaviour on the trigger code. Use only bit 25 to recognize
a generic block header. Do than the corresponding action
in the unpacker.
Note: One block may contain more than one module of the same type.
Note: It is allowed, that also a TDC/ADC block header may
appear. For the unpacker, this header is meaningless, but might be enabled for test
purpose.
See following example, line 3, word 3:
00000000: 0x000110df 0x5a020700 0x58020a17 0x58030212
00000004: 0x58040afb 0x58050115 0x58060690 0x58070423
00000008: 0x58080056 0x5c13e5df 0x0190001c 0x52031a00
00000012: 0x50000005 0x50010003 0x5003000f 0x50060002
00000016: 0x50070005 0x50080002 0x500a0013 0x500d0006
00000020: 0x500e0003 0x500f0000 0x50100005 0x50110002
00000024: 0x50120002 0x50130002 0x50140000 0x50150001
00000028: 0x50160001 0x50170003 0x50180002 0x50190002
00000032: 0x501a0005 0x501b0002 0x501c0002 0x501d0004
00000036: 0x501e0003 0x501f0004 0x5413e5df 0x00031002
00000040: 0x08000000 0x08000008
--
IngoFroehlich - 28 Jan 2005