#include <MdcSegPatterns.h>
Public Member Functions | |
MdcSegPatterns (int useAllAmbig) | |
~MdcSegPatterns () | |
Public Attributes | |
unsigned | patt4 [8] |
unsigned | patt3 [20] |
int | npatt4 [256] |
int | npatt3 [256] |
int * | allowedPatt4 [256] |
int * | allowedPatt3 [256] |
int ** | ambigPatt4 |
int ** | ambigPatt3 |
Definition at line 36 of file MdcSegPatterns.h.
MdcSegPatterns::MdcSegPatterns | ( | int | useAllAmbig | ) |
Definition at line 17 of file MdcSegPatterns.cxx.
References allowedPatt3, allowedPatt4, ambigPatt3, ambigPatt4, countbits(), genRecEmupikp::i, ganga-rec::j, npatt3, npatt4, patt3, and patt4.
00017 { 00018 00019 patt4[0] = 0225; 00020 patt4[1] = 0125; 00021 patt4[2] = 0115; 00022 patt4[3] = 055; 00023 patt4[4] = 0226; 00024 patt4[5] = 0126; 00025 patt4[6] = 0116; 00026 patt4[7] = 056; 00027 00028 patt3[0] = 0224; 00029 patt3[1] = 0221; 00030 patt3[2] = 0205; 00031 patt3[3] = 025; 00032 patt3[4] = 0124; 00033 patt3[5] = 0121; 00034 patt3[6] = 0105; 00035 patt3[7] = 0114; 00036 patt3[8] = 0111; 00037 patt3[9] = 015; 00038 patt3[10] = 054; 00039 patt3[11] = 051; 00040 patt3[12] = 045; 00041 patt3[13] = 0206; 00042 patt3[14] = 026; 00043 patt3[15] = 0106; 00044 patt3[16] = 0112; 00045 patt3[17] = 016; 00046 patt3[18] = 052; 00047 patt3[19] = 046; 00048 ambigPatt4 = new int*[8]; 00049 assert(ambigPatt4 != 0); 00050 int i; 00051 for (i = 0; i < 8; i++) { 00052 ambigPatt4[i] = new int[16]; 00053 assert(ambigPatt4[i] != 0); 00054 if (useAllAmbig) { 00055 for (int j = 0; j < 16; j++) ambigPatt4[i][j] = 1; 00056 } else { 00057 for (int j = 0; j < 16; j++) ambigPatt4[i][j] = 0; 00058 } 00059 } 00060 ambigPatt3 = new int*[20]; 00061 assert(ambigPatt3 != 0); 00062 for (i = 0; i < 20; i++) { 00063 ambigPatt3[i] = new int[8]; 00064 assert(ambigPatt3[i] != 0); 00065 if (useAllAmbig) { 00066 for (int j = 0; j < 8; j++) ambigPatt3[i][j] = 1; 00067 } else { 00068 for (int j = 0; j < 8; j++) ambigPatt3[i][j] = 0; 00069 } 00070 } 00071 00072 if (!useAllAmbig) { 00073 ambigPatt4[0][0] = ambigPatt4[0][1] = ambigPatt4[0][3] = 00074 ambigPatt4[0][7] = ambigPatt4[0][8] = ambigPatt4[0][12] = 00075 ambigPatt4[0][14] = ambigPatt4[0][15] = 1; 00076 ambigPatt4[1][8] = ambigPatt4[1][9] = ambigPatt4[1][11] = 1; 00077 ambigPatt4[2][4] = ambigPatt4[2][5] = ambigPatt4[2][12] = 00078 ambigPatt4[2][13] = 1; 00079 ambigPatt4[3][1] = ambigPatt4[3][9] = ambigPatt4[3][13] = 1; 00080 ambigPatt4[4][2] = ambigPatt4[4][6] = ambigPatt4[4][14] = 1; 00081 ambigPatt4[5][2] = ambigPatt4[5][3] = ambigPatt4[5][10] = 00082 ambigPatt4[5][11] = 1; 00083 ambigPatt4[6][4] = ambigPatt4[6][6] = ambigPatt4[6][7] = 1; 00084 ambigPatt4[7][0] = ambigPatt4[7][1] = ambigPatt4[7][3] = 00085 ambigPatt4[7][7] = ambigPatt4[7][8] = ambigPatt4[7][12] = 00086 ambigPatt4[7][14] = ambigPatt4[7][15] = 1; 00087 00088 ambigPatt3[0][0] = ambigPatt3[0][1] = ambigPatt3[0][3] = 00089 ambigPatt3[0][4] = ambigPatt3[0][6] = ambigPatt3[0][7] = 1; 00090 ambigPatt3[1][0] = ambigPatt3[1][1] = ambigPatt3[1][3] = 00091 ambigPatt3[1][4] = ambigPatt3[1][6] = ambigPatt3[1][7] = 1; 00092 ambigPatt3[2][0] = ambigPatt3[2][1] = ambigPatt3[2][3] = 00093 ambigPatt3[2][4] = ambigPatt3[2][6] = ambigPatt3[2][7] = 1; 00094 ambigPatt3[3][0] = ambigPatt3[3][1] = ambigPatt3[3][3] = 00095 ambigPatt3[3][4] = ambigPatt3[3][6] = ambigPatt3[3][7] = 1; 00096 ambigPatt3[4][1] = ambigPatt3[4][4] = ambigPatt3[4][5] = 1; 00097 ambigPatt3[5][4] = ambigPatt3[5][5] = 1; 00098 ambigPatt3[6][0] = ambigPatt3[6][1] = ambigPatt3[6][4] = 00099 ambigPatt3[6][5] = ambigPatt3[6][7] = 1; 00100 ambigPatt3[7][2] = ambigPatt3[7][3] = ambigPatt3[7][6] = 1; 00101 ambigPatt3[8][2] = ambigPatt3[8][3] = ambigPatt3[8][6] = 00102 ambigPatt3[8][7] = ambigPatt3[8][0] = 1; 00103 ambigPatt3[9][1] = ambigPatt3[9][4] = ambigPatt3[9][5] = 1; 00104 ambigPatt3[10][0] = ambigPatt3[10][1] = ambigPatt3[10][3] = 00105 ambigPatt3[10][4] = ambigPatt3[10][6] = ambigPatt3[10][7] = 1; 00106 ambigPatt3[11][1] = ambigPatt3[11][5] = ambigPatt3[11][7] = 00107 ambigPatt3[11][0] = ambigPatt3[11][4] = 1; 00108 ambigPatt3[12][4] = ambigPatt3[12][5] = 1; 00109 ambigPatt3[13][2] = ambigPatt3[13][6] = 1; 00110 ambigPatt3[14][2] = ambigPatt3[14][3] = ambigPatt3[14][6] = 1; 00111 ambigPatt3[15][0] = ambigPatt3[15][2] = ambigPatt3[15][3] = 00112 ambigPatt3[15][6] = ambigPatt3[15][7] = 1; 00113 ambigPatt3[16][2] = ambigPatt3[16][3] = 1; 00114 ambigPatt3[17][0] = ambigPatt3[17][1] = ambigPatt3[17][3] = 00115 ambigPatt3[17][4] = ambigPatt3[17][6] = ambigPatt3[17][7] = 1; 00116 ambigPatt3[18][0] = ambigPatt3[18][1] = ambigPatt3[18][3] = 00117 ambigPatt3[18][4] = ambigPatt3[18][6] = ambigPatt3[18][7] = 1; 00118 ambigPatt3[19][0] = ambigPatt3[19][1] = ambigPatt3[19][3] = 00119 ambigPatt3[19][4] = ambigPatt3[19][6] = ambigPatt3[19][7] = 1; 00120 } 00121 00122 // For hit combos with allowed patterns; allocate space for list of 00123 // patterns, fill list and record number in npattx[i] 00124 int j, nbit; 00125 unsigned match; 00126 for (i = 0; i < 256; i++) { 00127 npatt4[i] = 0; 00128 npatt3[i] = 0; 00129 // loop through the 8 patterns, seeing how many match 00130 for (j = 0; j < 8; j++) { 00131 match = i & patt4[j]; 00132 nbit = countbits(match); 00133 if (nbit == 4) npatt4[i]++; 00134 } 00135 allowedPatt4[i] = new int [npatt4[i]]; 00136 // Add the allowed patterns to the list for this hit combination 00137 int nstored = 0; 00138 for (j = 0; j < 8; j++) { 00139 match = i & patt4[j]; 00140 nbit = countbits(match); 00141 if (nbit == 4) { 00142 allowedPatt4[i][nstored] = j; 00143 nstored++; 00144 } 00145 } 00146 00147 // Repeat for 3-hit patterns 00148 00149 for (j = 0; j < 20; j++) { 00150 match = i & patt3[j]; 00151 nbit = countbits(match); 00152 if (nbit == 3) npatt3[i]++; 00153 } 00154 allowedPatt3[i] = new int [npatt3[i]]; 00155 // Add the allowed patterns to the list for this hit combination 00156 nstored = 0; 00157 for (j = 0; j < 20; j++) { 00158 match = i & patt3[j]; 00159 nbit = countbits(match); 00160 if (nbit == 3) { 00161 allowedPatt3[i][nstored] = j; 00162 nstored++; 00163 } 00164 } 00165 } 00166 00167 return; 00168 }
MdcSegPatterns::~MdcSegPatterns | ( | ) |
Definition at line 170 of file MdcSegPatterns.cxx.
References allowedPatt3, allowedPatt4, ambigPatt3, ambigPatt4, and genRecEmupikp::i.
00170 { 00171 int i; 00172 for (i = 0; i < 256; i++) { 00173 delete [] allowedPatt4[i]; 00174 delete [] allowedPatt3[i]; 00175 } 00176 for (i = 0; i < 8; i++) delete [] ambigPatt4[i]; 00177 for (i = 0; i < 20; i++) delete [] ambigPatt3[i]; 00178 delete [] ambigPatt4; 00179 delete [] ambigPatt3; 00180 }
int* MdcSegPatterns::allowedPatt3[256] |
Definition at line 43 of file MdcSegPatterns.h.
Referenced by MdcSegFinder::createSegs(), MdcSegPatterns(), and ~MdcSegPatterns().
int* MdcSegPatterns::allowedPatt4[256] |
Definition at line 42 of file MdcSegPatterns.h.
Referenced by MdcSegFinder::createSegs(), MdcSegPatterns(), and ~MdcSegPatterns().
Definition at line 45 of file MdcSegPatterns.h.
Referenced by MdcSegPatterns(), MdcSegFinder::tryPatterns(), and ~MdcSegPatterns().
Definition at line 44 of file MdcSegPatterns.h.
Referenced by MdcSegPatterns(), MdcSegFinder::tryPatterns(), and ~MdcSegPatterns().
int MdcSegPatterns::npatt3[256] |
Definition at line 41 of file MdcSegPatterns.h.
Referenced by MdcSegFinder::createSegs(), main(), and MdcSegPatterns().
int MdcSegPatterns::npatt4[256] |
Definition at line 40 of file MdcSegPatterns.h.
Referenced by MdcSegFinder::createSegs(), main(), and MdcSegPatterns().
unsigned MdcSegPatterns::patt3[20] |
Definition at line 39 of file MdcSegPatterns.h.
Referenced by main(), MdcSegPatterns(), and MdcSegFinder::tryPatterns().
unsigned MdcSegPatterns::patt4[8] |
Definition at line 38 of file MdcSegPatterns.h.
Referenced by MdcSegPatterns(), and MdcSegFinder::tryPatterns().