BOSS
8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcSegPatterns.cxx
Go to the documentation of this file.
1
// MdcSegPatterns.cxx
2
//
3
4
// Interface Dependencies ----------------------------------------------
5
6
#include "MdcTrkRecon/MdcSegPatterns.h"
7
8
// Implementation Dependencies -----------------------------------------
9
10
#include "MdcTrkRecon/countBits.h"
11
#include <assert.h>
12
#include <iostream>
13
#include <stdlib.h>
14
15
// End Implementation Dependencies -------------------------------------
16
17
MdcSegPatterns::MdcSegPatterns
(
int
useAllAmbig ) {
18
19
patt4
[0] = 0225;
20
patt4
[1] = 0125;
21
patt4
[2] = 0115;
22
patt4
[3] = 055;
23
patt4
[4] = 0226;
24
patt4
[5] = 0126;
25
patt4
[6] = 0116;
26
patt4
[7] = 056;
27
28
patt3
[0] = 0224;
29
patt3
[1] = 0221;
30
patt3
[2] = 0205;
31
patt3
[3] = 025;
32
patt3
[4] = 0124;
33
patt3
[5] = 0121;
34
patt3
[6] = 0105;
35
patt3
[7] = 0114;
36
patt3
[8] = 0111;
37
patt3
[9] = 015;
38
patt3
[10] = 054;
39
patt3
[11] = 051;
40
patt3
[12] = 045;
41
patt3
[13] = 0206;
42
patt3
[14] = 026;
43
patt3
[15] = 0106;
44
patt3
[16] = 0112;
45
patt3
[17] = 016;
46
patt3
[18] = 052;
47
patt3
[19] = 046;
48
ambigPatt4
=
new
int
*[8];
49
assert(
ambigPatt4
!= 0 );
50
int
i;
51
for
( i = 0; i < 8; i++ )
52
{
53
ambigPatt4
[i] =
new
int
[16];
54
assert(
ambigPatt4
[i] != 0 );
55
if
( useAllAmbig )
56
{
57
for
(
int
j = 0; j < 16; j++ )
ambigPatt4
[i][j] = 1;
58
}
59
else
60
{
61
for
(
int
j = 0; j < 16; j++ )
ambigPatt4
[i][j] = 0;
62
}
63
}
64
ambigPatt3
=
new
int
*[20];
65
assert(
ambigPatt3
!= 0 );
66
for
( i = 0; i < 20; i++ )
67
{
68
ambigPatt3
[i] =
new
int
[8];
69
assert(
ambigPatt3
[i] != 0 );
70
if
( useAllAmbig )
71
{
72
for
(
int
j = 0; j < 8; j++ )
ambigPatt3
[i][j] = 1;
73
}
74
else
75
{
76
for
(
int
j = 0; j < 8; j++ )
ambigPatt3
[i][j] = 0;
77
}
78
}
79
80
if
( !useAllAmbig )
81
{
82
ambigPatt4
[0][0] =
ambigPatt4
[0][1] =
ambigPatt4
[0][3] =
ambigPatt4
[0][7] =
83
ambigPatt4
[0][8] =
ambigPatt4
[0][12] =
ambigPatt4
[0][14] =
ambigPatt4
[0][15] = 1;
84
ambigPatt4
[1][8] =
ambigPatt4
[1][9] =
ambigPatt4
[1][11] = 1;
85
ambigPatt4
[2][4] =
ambigPatt4
[2][5] =
ambigPatt4
[2][12] =
ambigPatt4
[2][13] = 1;
86
ambigPatt4
[3][1] =
ambigPatt4
[3][9] =
ambigPatt4
[3][13] = 1;
87
ambigPatt4
[4][2] =
ambigPatt4
[4][6] =
ambigPatt4
[4][14] = 1;
88
ambigPatt4
[5][2] =
ambigPatt4
[5][3] =
ambigPatt4
[5][10] =
ambigPatt4
[5][11] = 1;
89
ambigPatt4
[6][4] =
ambigPatt4
[6][6] =
ambigPatt4
[6][7] = 1;
90
ambigPatt4
[7][0] =
ambigPatt4
[7][1] =
ambigPatt4
[7][3] =
ambigPatt4
[7][7] =
91
ambigPatt4
[7][8] =
ambigPatt4
[7][12] =
ambigPatt4
[7][14] =
ambigPatt4
[7][15] = 1;
92
93
ambigPatt3
[0][0] =
ambigPatt3
[0][1] =
ambigPatt3
[0][3] =
ambigPatt3
[0][4] =
94
ambigPatt3
[0][6] =
ambigPatt3
[0][7] = 1;
95
ambigPatt3
[1][0] =
ambigPatt3
[1][1] =
ambigPatt3
[1][3] =
ambigPatt3
[1][4] =
96
ambigPatt3
[1][6] =
ambigPatt3
[1][7] = 1;
97
ambigPatt3
[2][0] =
ambigPatt3
[2][1] =
ambigPatt3
[2][3] =
ambigPatt3
[2][4] =
98
ambigPatt3
[2][6] =
ambigPatt3
[2][7] = 1;
99
ambigPatt3
[3][0] =
ambigPatt3
[3][1] =
ambigPatt3
[3][3] =
ambigPatt3
[3][4] =
100
ambigPatt3
[3][6] =
ambigPatt3
[3][7] = 1;
101
ambigPatt3
[4][1] =
ambigPatt3
[4][4] =
ambigPatt3
[4][5] = 1;
102
ambigPatt3
[5][4] =
ambigPatt3
[5][5] = 1;
103
ambigPatt3
[6][0] =
ambigPatt3
[6][1] =
ambigPatt3
[6][4] =
ambigPatt3
[6][5] =
104
ambigPatt3
[6][7] = 1;
105
ambigPatt3
[7][2] =
ambigPatt3
[7][3] =
ambigPatt3
[7][6] = 1;
106
ambigPatt3
[8][2] =
ambigPatt3
[8][3] =
ambigPatt3
[8][6] =
ambigPatt3
[8][7] =
107
ambigPatt3
[8][0] = 1;
108
ambigPatt3
[9][1] =
ambigPatt3
[9][4] =
ambigPatt3
[9][5] = 1;
109
ambigPatt3
[10][0] =
ambigPatt3
[10][1] =
ambigPatt3
[10][3] =
ambigPatt3
[10][4] =
110
ambigPatt3
[10][6] =
ambigPatt3
[10][7] = 1;
111
ambigPatt3
[11][1] =
ambigPatt3
[11][5] =
ambigPatt3
[11][7] =
ambigPatt3
[11][0] =
112
ambigPatt3
[11][4] = 1;
113
ambigPatt3
[12][4] =
ambigPatt3
[12][5] = 1;
114
ambigPatt3
[13][2] =
ambigPatt3
[13][6] = 1;
115
ambigPatt3
[14][2] =
ambigPatt3
[14][3] =
ambigPatt3
[14][6] = 1;
116
ambigPatt3
[15][0] =
ambigPatt3
[15][2] =
ambigPatt3
[15][3] =
ambigPatt3
[15][6] =
117
ambigPatt3
[15][7] = 1;
118
ambigPatt3
[16][2] =
ambigPatt3
[16][3] = 1;
119
ambigPatt3
[17][0] =
ambigPatt3
[17][1] =
ambigPatt3
[17][3] =
ambigPatt3
[17][4] =
120
ambigPatt3
[17][6] =
ambigPatt3
[17][7] = 1;
121
ambigPatt3
[18][0] =
ambigPatt3
[18][1] =
ambigPatt3
[18][3] =
ambigPatt3
[18][4] =
122
ambigPatt3
[18][6] =
ambigPatt3
[18][7] = 1;
123
ambigPatt3
[19][0] =
ambigPatt3
[19][1] =
ambigPatt3
[19][3] =
ambigPatt3
[19][4] =
124
ambigPatt3
[19][6] =
ambigPatt3
[19][7] = 1;
125
}
126
127
// For hit combos with allowed patterns; allocate space for list of
128
// patterns, fill list and record number in npattx[i]
129
int
j, nbit;
130
unsigned
match;
131
for
( i = 0; i < 256; i++ )
132
{
133
npatt4
[i] = 0;
134
npatt3
[i] = 0;
135
// loop through the 8 patterns, seeing how many match
136
for
( j = 0; j < 8; j++ )
137
{
138
match = i &
patt4
[j];
139
nbit =
countbits
( match );
140
if
( nbit == 4 )
npatt4
[i]++;
141
}
142
allowedPatt4
[i] =
new
int
[
npatt4
[i]];
143
// Add the allowed patterns to the list for this hit combination
144
int
nstored = 0;
145
for
( j = 0; j < 8; j++ )
146
{
147
match = i &
patt4
[j];
148
nbit =
countbits
( match );
149
if
( nbit == 4 )
150
{
151
allowedPatt4
[i][nstored] = j;
152
nstored++;
153
}
154
}
155
156
// Repeat for 3-hit patterns
157
158
for
( j = 0; j < 20; j++ )
159
{
160
match = i &
patt3
[j];
161
nbit =
countbits
( match );
162
if
( nbit == 3 )
npatt3
[i]++;
163
}
164
allowedPatt3
[i] =
new
int
[
npatt3
[i]];
165
// Add the allowed patterns to the list for this hit combination
166
nstored = 0;
167
for
( j = 0; j < 20; j++ )
168
{
169
match = i &
patt3
[j];
170
nbit =
countbits
( match );
171
if
( nbit == 3 )
172
{
173
allowedPatt3
[i][nstored] = j;
174
nstored++;
175
}
176
}
177
}
178
179
return
;
180
}
181
182
MdcSegPatterns::~MdcSegPatterns
() {
183
int
i;
184
for
( i = 0; i < 256; i++ )
185
{
186
delete
[]
allowedPatt4
[i];
187
delete
[]
allowedPatt3
[i];
188
}
189
for
( i = 0; i < 8; i++ )
delete
[]
ambigPatt4
[i];
190
for
( i = 0; i < 20; i++ )
delete
[]
ambigPatt3
[i];
191
delete
[]
ambigPatt4
;
192
delete
[]
ambigPatt3
;
193
}
countbits
int countbits(unsigned word)
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/countBits.h:5
MdcSegPatterns::allowedPatt3
int * allowedPatt3[256]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:43
MdcSegPatterns::patt3
unsigned patt3[20]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:39
MdcSegPatterns::ambigPatt4
int ** ambigPatt4
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:44
MdcSegPatterns::allowedPatt4
int * allowedPatt4[256]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:42
MdcSegPatterns::npatt4
int npatt4[256]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:40
MdcSegPatterns::npatt3
int npatt3[256]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:41
MdcSegPatterns::ambigPatt3
int ** ambigPatt3
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:45
MdcSegPatterns::MdcSegPatterns
MdcSegPatterns(int useAllAmbig)
Definition
MdcSegPatterns.cxx:17
MdcSegPatterns::patt4
unsigned patt4[8]
Definition
InstallArea/x86_64-el9-gcc13-dbg/include/MdcTrkRecon/MdcSegPatterns.h:38
MdcSegPatterns::~MdcSegPatterns
~MdcSegPatterns()
Definition
MdcSegPatterns.cxx:182
8.0.0
BOSS_Source
Reconstruction
MdcPatRec
MdcTrkRecon
src
MdcSegPatterns.cxx
Generated by
1.16.1