BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TrigSAF.cxx
Go to the documentation of this file.
1#include "TrigEvent/TrigSAF.h"
2#include <iostream>
3
4TrigSAF::TrigSAF( char* name ) { m_name = name; }
5
7 for ( int i = 0; i < 48; i++ )
8 {
9 m_dataGroup1_One[i] = 0;
10 m_dataGroup1_Zero[i] = 0;
11 m_dataGroup2_One[i] = 0;
12 m_dataGroup2_Zero[i] = 0;
13 m_dataGroup3[i] = 0;
14 m_dataGroup4[i] = 0;
15 }
16}
17
18void TrigSAF::setSAFTrigData( uint32_t boardId, uint32_t window, uint32_t datasize,
19 const uint32_t* data ) {
20
21 if ( ( boardId != 0xd2 ) && ( boardId != 0xd4 ) && ( boardId != 0xd6 ) )
22 std::cerr << "ERROR: You set the wrong board data to TrigSAF!!!" << std::endl;
23
24 uint32_t jBegin = 0, jEnd = 0;
25 if ( boardId == 0xd2 )
26 {
27 jBegin = 32;
28 jEnd = jBegin + 16;
29 } // SAF1
30 if ( boardId == 0xd4 )
31 {
32 jBegin = 16;
33 jEnd = jBegin + 16;
34 } // SAF2
35 if ( boardId == 0xd6 )
36 {
37 jBegin = 0;
38 jEnd = jBegin + 16;
39 } // SAF3
40
41 for ( uint32_t i = 0; i < datasize; i++ )
42 {
43 uint32_t dataId = ( ( data[i] >> 16 ) & 0xFF );
44 for ( uint32_t j = jBegin, mask = 1; j < jEnd; j++, mask <<= 1 )
45 {
46 if ( dataId == 1 )
47 {
48 if ( ( data[i] & mask ) != 0 ) { m_dataGroup1_One[j] += 1; }
49 if ( m_dataGroup1_One[j] == 0 ) m_dataGroup1_Zero[j] += 1;
50 }
51 if ( dataId == 2 )
52 {
53 if ( ( data[i] & mask ) != 0 ) { m_dataGroup2_One[j] += 1; }
54 if ( m_dataGroup2_One[j] == 0 ) m_dataGroup2_Zero[j] += 1;
55 }
56 if ( dataId == 3 )
57 {
58 if ( ( data[i] & mask ) != 0 ) { m_dataGroup3[j] = 1; }
59 }
60 if ( dataId == 4 )
61 {
62 if ( ( data[i] & mask ) != 0 ) { m_dataGroup4[j] = 1; }
63 }
64 }
65 }
66}
TTree * data
TrigSAF(char *name)
Definition TrigSAF.cxx:4
void initialize()
Definition TrigSAF.cxx:6
void setSAFTrigData(uint32_t boardId, uint32_t window, uint32_t datasize, const uint32_t *data)
Definition TrigSAF.cxx:18