Difference between revisions of "Output data structure in CODA"
Line 95: | Line 95: | ||
PWTL(8 bits) | PWDL(8 bits) | HOLDOFF(8 bits) | PL_Delay(8 bits) | PWTL(8 bits) | PWDL(8 bits) | HOLDOFF(8 bits) | PL_Delay(8 bits) | ||
Rejection Width(16 bits) | Accum trigger condition(8 bits) | Event trigger condition(8 bits) | Rejection Width(16 bits) | Accum trigger condition(8 bits) | Event trigger condition(8 bits) | ||
− | ''Identifier ending word'' | + | ''Identifier ending word'' (commented out in the current format) |
The respective slave identifier words are: | The respective slave identifier words are: |
Revision as of 13:19, 2 December 2011
The electron detector ROC reads out data from v1495 slave boards and puts it in various subbanks based on the source and type of the incoming data. This section elaborates the format and structure in which this data is written.
Event types defined
Event type 1 : Helicity Reversal events Event type 2 : photon single events Event type 3 : electron single events Event type 4 : coincidence of electron and photon single events
Sub banks used
Single Event Data from Slave-1: 0x201 Single Event Data from Slave-2: 0x202 Single Event Data from Slave-3: 0x203
Accumulation Data from Slave-1 : 0x204 Accumulation Data from Slave-2 : 0x205 Accumulation Data from Slave-3 : 0x206
Parameter information about Slave-1 : 0x207 Parameter information about Slave-2 : 0x208 Parameter information about Slave-3 : 0x209
Scaler Data from Slave-1 : 0x20A Scaler Data from Slave-2 : 0x20B Scaler Data from Slave-3 : 0x20C
Scaler module 3801 in ROC2 : 0x210
redundant, if an event type different from defined values is encountered : 0x211
Format of electron detector data
On every helicity reversal trigger(MPS), the contents of the Buffer with single event patterns is read out along with the contents of the accumulation counter for each strip. Each of these triggers will result in creation of the subbanks for the the event and accum data of the slaves used. (currently we are using 2 slaves, since we consider only the first 64 strips to have relevant information) Hence we have a total of 4 subbanks relevant to electron detector readout on each MPS trigger. Following diagram shows a typical view of the data structure as seen through XCEFDMP.
Next subsection elaborates the contents of the individual subbanks
Structure inside subbank 0x201 and 0x202
The single event data from v1495 slave-1 and slave-2 goes into 0x201 0x202 respectively.
The subbank has five 32 bit words.
1st word: hit-map on plane-1 for strip 1 through 32 2nd word: hit-map on plane-2 for strip 1 through 32 3rd word: hit-map on plane-3 for strip 1 through 32 4th word: hit-map on plane-4 for strip 1 through 32 5th word: self-check info for the respective slave: "0"| buf_RD_EMPTY | buf_FULL_ERR | buf_BUSY | buf_RD_COUNT(8bits) |"0000" | raw_trig_CNT(12bits) | "000"| Helicity |<------------- 1st hex digit ------------->|<---- 2nd & 3rd ---->|<-4th->|<---5th, 6th & 7th--->|<-8th hex digit->|
Details:
- The above snapshot displays the 32 bits in hexadecimal format.
- The least significant bit(bit 1) of the hit-map carries the hit-information of strip-1
- Successively, the higher order bits represent hit-information for each next strip. Thus the 32 bits word has the hit-information of the 32 strips from that part of the detector.
- The 5th word has the event buffer status information and the total number of triggers that were received during the previous helicity period. The information stored in this word is in the following order
- Trigger Info
- least significant bit: the delayed Helicity
- next 3 bits: currently "000"
- next 12 bits: raw_trig_CNT1(11 downto 0)
- Buffer Status
- next 4 bits: currently "0000"
- next 8 bits: buf_RD_COUNT1(7 downto 0)
- next bit: buf_BUSY
- next bit: buf_FULL_ERR
- next bit: buf_RD_EMPTY
- most significant bit: currently "0"
- Trigger Info
Structure inside subbank 0x204 & 0x205
The accumulation mode data from v1495 slave 1 & 2 are written into subbank 0x204 and 0x205 respectively
The subbank has thirty-two words of depth 32 bits. Each word has the following format.
Most significant byte(bits 32-23): no.of hits in plane-1 Next significant byte(bits 24-17): no.of hits in plane-2 Next significant byte(bits 16-09): no.of hits in plane-3 Least significant byte(bits 01-08): no.of hits in plane-4
The words are organized in order of increasing strips. For example in the above snapshot displaying data from bank 0x205(slave-2)
1st word has accumulation data of strip-1, 2nd word has accumulation data of strip-2, ... and so on
Structure inside Parameter info sub-bank
0x207: parameter information about slave-1 0x208: parameter information about slave-2 0x209: parameter information about slave-3
Each sub-bank has nine words, each 32 bit in the following order
Identifier beginning word Firmware Revision Number A mask B mask D mask E mask PWTL(8 bits) | PWDL(8 bits) | HOLDOFF(8 bits) | PL_Delay(8 bits) Rejection Width(16 bits) | Accum trigger condition(8 bits) | Event trigger condition(8 bits) Identifier ending word (commented out in the current format)
The respective slave identifier words are:
slave # beginning ending slave 1 0xb1000000 0xb100000f slave 2 0xb2000000 0xb200000f slave 3 0xb3000000 0xb300000f
As a visual example, the sub-bank parameter information as saved in run # 4042(taken Feb 2011) is shown in the following image.
Structure inside Scalar sub-bank
The structure in the Scalar subbank is an exact duplicate of the Accumulation subbank
Similarly, data from slave-2 and slave-3 contains the hit map of strip 33-64 and 65-96 on all planes respectively in the above order.