BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TrigTOFT.cxx
Go to the documentation of this file.
1#include "TrigEvent/TrigTOFT.h"
2#include <iostream>
3
4TrigTOFT::TrigTOFT( char* name ) { m_name = name; }
5
7 for ( int i = 0; i < 176; i++ )
8 for ( int j = 0; j < 21; j++ )
9 {
10 if ( i < 6 ) m_tofTrigCondi[i][j] = 0;
11 if ( i < 48 )
12 {
13 m_wetofHitMap[i][j] = 0;
14 m_eetofHitMap[i][j] = 0;
15 }
16 m_btofHitMap[i][j] = 0;
17 }
18}
19
20void TrigTOFT::setTOFTTrigData( uint32_t boardId, uint32_t window, uint32_t datasize,
21 const uint32_t* data ) {
22
23 if ( boardId != 0xDA )
24 std::cerr << "ERROR: You set the wrong board data to TrigTOFT!!!" << std::endl;
25
26 m_window = window;
27
28 for ( uint32_t i = 0; i < datasize; i++ )
29 {
30 int winId = int( i / 14 );
31 // int id = (i-winId*14)%14;
32 // DW4 trigger conditions
33 if ( i == ( 1 + winId * 14 ) )
34 {
35 for ( uint32_t condId = 1, loop = 0; loop < 6; condId <<= 1, loop++ )
36 {
37 if ( data[i] & condId ) m_tofTrigCondi[loop][winId] = 1;
38 }
39 }
40
41 // DW9-DW12 for inner layer hit, DW13--DW16 outer layer hit
42 if ( i >= ( 6 + winId * 14 ) && i <= ( 13 + winId * 14 ) )
43 {
44 if ( i == ( 6 + winId * 14 ) || i == ( 10 + winId * 14 ) )
45 {
46 for ( uint32_t btofId = 1, loop = 0; loop < 16; btofId <<= 1, loop++ )
47 {
48 if ( data[i] & btofId )
49 {
50 if ( i == ( 6 + winId * 14 ) ) m_btofHitMap[loop + 72][winId] = 1;
51 if ( i == ( 10 + winId * 14 ) ) m_btofHitMap[loop + 72 + 88][winId] = 1;
52 }
53 }
54 }
55 else
56 {
57 for ( uint32_t btofId = 1, loop = 0; loop < 24; btofId <<= 1, loop++ )
58 {
59 if ( data[i] & btofId )
60 {
61 if ( i >= ( 7 + winId * 14 ) && i <= ( 9 + winId * 14 ) )
62 m_btofHitMap[loop + ( 9 + winId * 14 - i ) * 24][winId] = 1;
63 else m_btofHitMap[loop + ( 13 + winId * 14 - i ) * 24 + 88][winId] = 1;
64 }
65 }
66 }
67 }
68
69 // DW7-DW8 for east end cap hits
70 if ( i >= ( 4 + winId * 14 ) && i <= ( 5 + winId * 14 ) )
71 {
72 for ( uint32_t eetofId = 1, loop = 0; loop < 24; eetofId <<= 1, loop++ )
73 {
74 if ( data[i] & eetofId ) m_eetofHitMap[loop + ( 5 + winId * 14 - i ) * 24][winId] = 1;
75 }
76 }
77
78 // DW5-DW6 for east end cap hits
79 if ( i >= ( 2 + winId * 14 ) && i <= ( 3 + winId * 14 ) )
80 {
81 for ( uint32_t wetofId = 1, loop = 0; loop < 24; wetofId <<= 1, loop++ )
82 {
83 if ( data[i] & wetofId ) m_wetofHitMap[loop + ( 3 + winId * 14 - i ) * 24][winId] = 1;
84 }
85 }
86 }
87}
TTree * data
void setTOFTTrigData(uint32_t boardId, uint32_t window, uint32_t datasize, const uint32_t *data)
Definition TrigTOFT.cxx:20
void initialize()
Definition TrigTOFT.cxx:6
TrigTOFT(char *name)
Definition TrigTOFT.cxx:4