]>
Commit | Line | Data |
---|---|---|
52c19022 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* $Id: AliTRDgtuParam.cxx 28397 2008-09-02 09:33:00Z cblume $ */ | |
17 | ||
18 | //////////////////////////////////////////////////////////////////////////// | |
19 | // // | |
20 | // Parameters for GTU simulation // | |
21 | // // | |
22 | // Author: J. Klein (Jochen.Klein@cern.ch) // | |
23 | // // | |
24 | //////////////////////////////////////////////////////////////////////////// | |
25 | ||
637666cd | 26 | #include "TROOT.h" |
52c19022 | 27 | #include "TMath.h" |
28 | #include "TMatrix.h" | |
29 | #include "TDecompLU.h" | |
30 | #include "TGraphAsymmErrors.h" | |
31 | #include "TCanvas.h" | |
32 | ||
33 | #include "AliLog.h" | |
34 | #include "AliTRDgtuParam.h" | |
35 | #include "AliTRDgeometry.h" | |
36 | #include "AliTRDpadPlane.h" | |
37 | ||
38 | ClassImp(AliTRDgtuParam) | |
39 | ||
40 | AliTRDgtuParam *AliTRDgtuParam::fgInstance = 0; | |
44eafcf2 | 41 | Bool_t AliTRDgtuParam::fgUseGTUconst = kTRUE; |
52c19022 | 42 | |
2cf67435 | 43 | // ----- matching windows ----- |
44 | Int_t AliTRDgtuParam::fgDeltaY = 19; | |
45 | Int_t AliTRDgtuParam::fgDeltaAlpha = 21; | |
d2c8b010 | 46 | // ----- reference layers ----- |
47 | Int_t AliTRDgtuParam::fgRefLayers[] = { 3, 2, 1 }; | |
2cf67435 | 48 | |
52c19022 | 49 | // ----- Bin widths (granularity) ----- |
50 | const Float_t AliTRDgtuParam::fgkBinWidthY = 160e-4; | |
51 | const Float_t AliTRDgtuParam::fgkBinWidthdY = 140e-4; | |
52 | ||
53 | // ----- Bit widths (used for internal representation) ----- | |
54 | const Int_t AliTRDgtuParam::fgkBitWidthY = 13; | |
5f006bd7 | 55 | const Int_t AliTRDgtuParam::fgkBitWidthdY = 7; |
52c19022 | 56 | const Int_t AliTRDgtuParam::fgkBitWidthYProj = 10; |
5f006bd7 | 57 | const Int_t AliTRDgtuParam::fgkBitExcessY = 4; |
58 | const Int_t AliTRDgtuParam::fgkBitExcessAlpha = 10; | |
59 | const Int_t AliTRDgtuParam::fgkBitExcessYProj = 2; | |
52c19022 | 60 | |
44eafcf2 | 61 | // ----- z-channel tables ----- |
62 | const Bool_t AliTRDgtuParam::fgZChannelMap[5][16][6][16] = { | |
63 | ||
64 | { /* --- Stack 0 --- */ | |
65 | ||
66 | /* . x x . . . . . . . . . . . . . */ | |
67 | /* x . . . . . . . . . . . . . . . */ | |
68 | /* X . . . . . . . . . . . . . . . */ | |
69 | /* x x . . . . . . . . . . . . . . */ | |
70 | /* x x . . . . . . . . . . . . . . */ | |
71 | /* x . . . . . . . . . . . . . . . */ | |
72 | ||
73 | {{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
74 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
75 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
76 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
77 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
78 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
79 | ||
80 | /* . . x x . . . . . . . . . . . . */ | |
81 | /* x x . . . . . . . . . . . . . . */ | |
82 | /* . X . . . . . . . . . . . . . . */ | |
83 | /* . x x . . . . . . . . . . . . . */ | |
84 | /* . x x . . . . . . . . . . . . . */ | |
85 | /* x x . . . . . . . . . . . . . . */ | |
86 | ||
87 | {{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
88 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
89 | {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
90 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
91 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
92 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
93 | ||
94 | /* . . . x x . . . . . . . . . . . */ | |
95 | /* . x x . . . . . . . . . . . . . */ | |
96 | /* . . X . . . . . . . . . . . . . */ | |
97 | /* . . x x . . . . . . . . . . . . */ | |
98 | /* . . x x . . . . . . . . . . . . */ | |
99 | /* . x x . . . . . . . . . . . . . */ | |
100 | ||
101 | {{0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
102 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
103 | {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
104 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
105 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
106 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
107 | ||
108 | /* . . . . x x . . . . . . . . . . */ | |
109 | /* . . x x . . . . . . . . . . . . */ | |
110 | /* . . . X . . . . . . . . . . . . */ | |
111 | /* . . . x x . . . . . . . . . . . */ | |
112 | /* . . . x x . . . . . . . . . . . */ | |
113 | /* . . x x . . . . . . . . . . . . */ | |
114 | ||
115 | {{0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
116 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
117 | {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
118 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
119 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
120 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
121 | ||
122 | /* . . . . . x x . . . . . . . . . */ | |
123 | /* . . . x x . . . . . . . . . . . */ | |
124 | /* . . . . X . . . . . . . . . . . */ | |
125 | /* . . . . x x . . . . . . . . . . */ | |
126 | /* . . . . x x . . . . . . . . . . */ | |
127 | /* . . . x x . . . . . . . . . . . */ | |
128 | ||
129 | {{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
130 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
131 | {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
132 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
133 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
134 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
135 | ||
136 | /* . . . . . . x x . . . . . . . . */ | |
137 | /* . . . . x x . . . . . . . . . . */ | |
138 | /* . . . . . X . . . . . . . . . . */ | |
139 | /* . . . . . x x . . . . . . . . . */ | |
140 | /* . . . . . x x . . . . . . . . . */ | |
141 | /* . . . . x x . . . . . . . . . . */ | |
142 | ||
143 | {{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
144 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
145 | {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
146 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
147 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
148 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
149 | ||
150 | /* . . . . . . . x x . . . . . . . */ | |
151 | /* . . . . . x x . . . . . . . . . */ | |
152 | /* . . . . . . X . . . . . . . . . */ | |
153 | /* . . . . . . x x . . . . . . . . */ | |
154 | /* . . . . . . x x . . . . . . . . */ | |
155 | /* . . . . . x x . . . . . . . . . */ | |
156 | ||
157 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
158 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
159 | {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
160 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
161 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
162 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
163 | ||
164 | /* . . . . . . . . x x . . . . . . */ | |
165 | /* . . . . . . x x x . . . . . . . */ | |
166 | /* . . . . . . . X . . . . . . . . */ | |
167 | /* . . . . . . . x x . . . . . . . */ | |
168 | /* . . . . . . . x x . . . . . . . */ | |
169 | /* . . . . . . x x . . . . . . . . */ | |
170 | ||
171 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
172 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
173 | {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
174 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
175 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
176 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
177 | ||
178 | /* . . . . . . . . x x x . . . . . */ | |
179 | /* . . . . . . . x x x . . . . . . */ | |
180 | /* . . . . . . . . X . . . . . . . */ | |
181 | /* . . . . . . . x x x . . . . . . */ | |
182 | /* . . . . . . . x x x . . . . . . */ | |
183 | /* . . . . . . . x x . . . . . . . */ | |
184 | ||
185 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
186 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
187 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | |
188 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
189 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
190 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}}, | |
191 | ||
192 | /* . . . . . . . . . x x x . . . . */ | |
193 | /* . . . . . . . . x x x . . . . . */ | |
194 | /* . . . . . . . . . X . . . . . . */ | |
195 | /* . . . . . . . . x x x . . . . . */ | |
196 | /* . . . . . . . . x x x . . . . . */ | |
197 | /* . . . . . . . . x x . . . . . . */ | |
198 | ||
199 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
200 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
201 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | |
202 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
203 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
204 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}}, | |
205 | ||
206 | /* . . . . . . . . . . x x x . . . */ | |
207 | /* . . . . . . . . . x x x . . . . */ | |
208 | /* . . . . . . . . . . X . . . . . */ | |
209 | /* . . . . . . . . . x x x . . . . */ | |
210 | /* . . . . . . . . . x x x . . . . */ | |
211 | /* . . . . . . . . . x x . . . . . */ | |
212 | ||
213 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
214 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
215 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | |
216 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
217 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
218 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}}, | |
219 | ||
220 | /* . . . . . . . . . . . x x x . . */ | |
221 | /* . . . . . . . . . . x x x . . . */ | |
222 | /* . . . . . . . . . . . X . . . . */ | |
223 | /* . . . . . . . . . . x x x . . . */ | |
224 | /* . . . . . . . . . . x x x . . . */ | |
225 | /* . . . . . . . . . . x x . . . . */ | |
226 | ||
227 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
228 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
229 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | |
230 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
231 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
232 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}}, | |
233 | ||
234 | /* . . . . . . . . . . . . x x x . */ | |
235 | /* . . . . . . . . . . . x x x . . */ | |
236 | /* . . . . . . . . . . . . X . . . */ | |
237 | /* . . . . . . . . . . . x x x . . */ | |
238 | /* . . . . . . . . . . . x x x . . */ | |
239 | /* . . . . . . . . . . . x x . . . */ | |
240 | ||
241 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
242 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
243 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | |
244 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
245 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
246 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}}, | |
247 | ||
248 | /* . . . . . . . . . . . . . x x x */ | |
249 | /* . . . . . . . . . . . . x x x . */ | |
250 | /* . . . . . . . . . . . . . X . . */ | |
251 | /* . . . . . . . . . . . . x x x . */ | |
252 | /* . . . . . . . . . . . . x x x . */ | |
253 | /* . . . . . . . . . . . . x x . . */ | |
254 | ||
255 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
256 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
257 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | |
258 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
259 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
260 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}}, | |
261 | ||
262 | /* . . . . . . . . . . . . . . x x */ | |
263 | /* . . . . . . . . . . . . . x x x */ | |
264 | /* . . . . . . . . . . . . . . X . */ | |
265 | /* . . . . . . . . . . . . . x x x */ | |
266 | /* . . . . . . . . . . . . . x x x */ | |
267 | /* . . . . . . . . . . . . . x x . */ | |
268 | ||
269 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
270 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
271 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | |
272 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
273 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
274 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}}, | |
275 | ||
276 | /* . . . . . . . . . . . . . . . x */ | |
277 | /* . . . . . . . . . . . . . . x x */ | |
278 | /* . . . . . . . . . . . . . . . X */ | |
279 | /* . . . . . . . . . . . . . . x x */ | |
280 | /* . . . . . . . . . . . . . . x x */ | |
281 | /* . . . . . . . . . . . . . . x x */ | |
282 | ||
283 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
284 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
285 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
286 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
287 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
288 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}}}, | |
289 | ||
290 | { /* --- Stack 1 --- */ | |
291 | ||
292 | /* x x x . . . . . . . . . . . . . */ | |
293 | /* x x . . . . . . . . . . . . . . */ | |
294 | /* X . . . . . . . . . . . . . . . */ | |
295 | /* x x . . . . . . . . . . . . . . */ | |
296 | /* x x . . . . . . . . . . . . . . */ | |
297 | /* x . . . . . . . . . . . . . . . */ | |
298 | ||
299 | {{1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
300 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
301 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
302 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
303 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
304 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
305 | ||
306 | /* . x x x . . . . . . . . . . . . */ | |
307 | /* x x x . . . . . . . . . . . . . */ | |
308 | /* . X . . . . . . . . . . . . . . */ | |
309 | /* x x x . . . . . . . . . . . . . */ | |
310 | /* x x x . . . . . . . . . . . . . */ | |
311 | /* x x . . . . . . . . . . . . . . */ | |
312 | ||
313 | {{0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
314 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
315 | {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
316 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
317 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
318 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
319 | ||
320 | /* . . x x x . . . . . . . . . . . */ | |
321 | /* . x x x . . . . . . . . . . . . */ | |
322 | /* . . X . . . . . . . . . . . . . */ | |
323 | /* . x x x . . . . . . . . . . . . */ | |
324 | /* . x x x . . . . . . . . . . . . */ | |
325 | /* . x x . . . . . . . . . . . . . */ | |
326 | ||
327 | {{0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
328 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
329 | {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
330 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
331 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
332 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
333 | ||
334 | /* . . . x x x . . . . . . . . . . */ | |
335 | /* . . x x x . . . . . . . . . . . */ | |
336 | /* . . . X . . . . . . . . . . . . */ | |
337 | /* . . x x x . . . . . . . . . . . */ | |
338 | /* . . x x x . . . . . . . . . . . */ | |
339 | /* . . x x . . . . . . . . . . . . */ | |
340 | ||
341 | {{0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
342 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
343 | {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
344 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
345 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
346 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
347 | ||
348 | /* . . . . x x x . . . . . . . . . */ | |
349 | /* . . . x x x . . . . . . . . . . */ | |
350 | /* . . . . X . . . . . . . . . . . */ | |
351 | /* . . . x x x . . . . . . . . . . */ | |
352 | /* . . . x x x . . . . . . . . . . */ | |
353 | /* . . . x x . . . . . . . . . . . */ | |
354 | ||
355 | {{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
356 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
357 | {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
358 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
359 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
360 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
361 | ||
362 | /* . . . . . x x x . . . . . . . . */ | |
363 | /* . . . . x x x . . . . . . . . . */ | |
364 | /* . . . . . X . . . . . . . . . . */ | |
365 | /* . . . . x x . . . . . . . . . . */ | |
366 | /* . . . . x x . . . . . . . . . . */ | |
367 | /* . . . . x x . . . . . . . . . . */ | |
368 | ||
369 | {{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
370 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
371 | {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
372 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
373 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
374 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
375 | ||
376 | /* . . . . . . x x x . . . . . . . */ | |
377 | /* . . . . . . x x . . . . . . . . */ | |
378 | /* . . . . . . X . . . . . . . . . */ | |
379 | /* . . . . . x x . . . . . . . . . */ | |
380 | /* . . . . . x x . . . . . . . . . */ | |
381 | /* . . . . . x x . . . . . . . . . */ | |
382 | ||
383 | {{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
384 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
385 | {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
386 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
387 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
388 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
389 | ||
390 | /* . . . . . . . x x . . . . . . . */ | |
391 | /* . . . . . . . x x . . . . . . . */ | |
392 | /* . . . . . . . X . . . . . . . . */ | |
393 | /* . . . . . . x x . . . . . . . . */ | |
394 | /* . . . . . . x x . . . . . . . . */ | |
395 | /* . . . . . . x x . . . . . . . . */ | |
396 | ||
397 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
398 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
399 | {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
400 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
401 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
402 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
403 | ||
404 | /* . . . . . . . . x x . . . . . . */ | |
405 | /* . . . . . . . . x x . . . . . . */ | |
406 | /* . . . . . . . . X . . . . . . . */ | |
407 | /* . . . . . . . x x . . . . . . . */ | |
408 | /* . . . . . . . x x . . . . . . . */ | |
409 | /* . . . . . . . x x . . . . . . . */ | |
410 | ||
411 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
412 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
413 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | |
414 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
415 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
416 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}}, | |
417 | ||
418 | /* . . . . . . . . . x x . . . . . */ | |
419 | /* . . . . . . . . . x x . . . . . */ | |
420 | /* . . . . . . . . . X . . . . . . */ | |
421 | /* . . . . . . . . x x . . . . . . */ | |
422 | /* . . . . . . . . x x . . . . . . */ | |
423 | /* . . . . . . . . x x . . . . . . */ | |
424 | ||
425 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
426 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
427 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | |
428 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
429 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
430 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}}, | |
431 | ||
432 | /* . . . . . . . . . . x x . . . . */ | |
433 | /* . . . . . . . . . . x x . . . . */ | |
434 | /* . . . . . . . . . . X . . . . . */ | |
435 | /* . . . . . . . . . x x . . . . . */ | |
436 | /* . . . . . . . . . x x . . . . . */ | |
437 | /* . . . . . . . . . x x . . . . . */ | |
438 | ||
439 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
440 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
441 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | |
442 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
443 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
444 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}}, | |
445 | ||
446 | /* . . . . . . . . . . . x x . . . */ | |
447 | /* . . . . . . . . . . . x x . . . */ | |
448 | /* . . . . . . . . . . . X . . . . */ | |
449 | /* . . . . . . . . . . x x . . . . */ | |
450 | /* . . . . . . . . . . x x . . . . */ | |
451 | /* . . . . . . . . . . x x . . . . */ | |
452 | ||
453 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
454 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
455 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | |
456 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
457 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
458 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}}, | |
459 | ||
460 | /* . . . . . . . . . . . . x x . . */ | |
461 | /* . . . . . . . . . . . . x x . . */ | |
462 | /* . . . . . . . . . . . . X . . . */ | |
463 | /* . . . . . . . . . . . x x . . . */ | |
464 | /* . . . . . . . . . . . x x . . . */ | |
465 | /* . . . . . . . . . . . x x . . . */ | |
466 | ||
467 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
468 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
469 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | |
470 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
471 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
472 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}}, | |
473 | ||
474 | /* . . . . . . . . . . . . . x x . */ | |
475 | /* . . . . . . . . . . . . . x x . */ | |
476 | /* . . . . . . . . . . . . . X . . */ | |
477 | /* . . . . . . . . . . . . x x . . */ | |
478 | /* . . . . . . . . . . . . x x . . */ | |
479 | /* . . . . . . . . . . . . x x . . */ | |
480 | ||
481 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
482 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
483 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | |
484 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
485 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
486 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}}, | |
487 | ||
488 | /* . . . . . . . . . . . . . . x x */ | |
489 | /* . . . . . . . . . . . . . . x x */ | |
490 | /* . . . . . . . . . . . . . . X . */ | |
491 | /* . . . . . . . . . . . . . x x . */ | |
492 | /* . . . . . . . . . . . . . x x . */ | |
493 | /* . . . . . . . . . . . . . x x . */ | |
494 | ||
495 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
496 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
497 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | |
498 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
499 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
500 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}}, | |
501 | ||
502 | /* . . . . . . . . . . . . . . . x */ | |
503 | /* . . . . . . . . . . . . . . . x */ | |
504 | /* . . . . . . . . . . . . . . . X */ | |
505 | /* . . . . . . . . . . . . . . x x */ | |
506 | /* . . . . . . . . . . . . . . x x */ | |
507 | /* . . . . . . . . . . . . . . x x */ | |
508 | ||
509 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
510 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
511 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
512 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
513 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
514 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}}}, | |
515 | ||
516 | { /* --- Stack 2 --- */ | |
517 | ||
518 | /* x x . . . . . . . . . . */ | |
519 | /* x x . . . . . . . . . . */ | |
520 | /* X . . . . . . . . . . . */ | |
521 | /* x . . . . . . . . . . . */ | |
522 | /* x . . . . . . . . . . . */ | |
523 | /* x . . . . . . . . . . . */ | |
524 | ||
525 | {{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
526 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
527 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
528 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
529 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
530 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
531 | ||
532 | /* . x x . . . . . . . . . */ | |
533 | /* . x x . . . . . . . . . */ | |
534 | /* . X . . . . . . . . . . */ | |
535 | /* x x . . . . . . . . . . */ | |
536 | /* x x . . . . . . . . . . */ | |
537 | /* x x . . . . . . . . . . */ | |
538 | ||
539 | {{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
540 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
541 | {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
542 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
543 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
544 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
545 | ||
546 | /* . . x x . . . . . . . . */ | |
547 | /* . . x x . . . . . . . . */ | |
548 | /* . . X . . . . . . . . . */ | |
549 | /* . x x . . . . . . . . . */ | |
550 | /* . x x . . . . . . . . . */ | |
551 | /* . x x . . . . . . . . . */ | |
552 | ||
553 | {{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
554 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
555 | {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
556 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
557 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
558 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
559 | ||
560 | /* . . . x x . . . . . . . */ | |
561 | /* . . . x x . . . . . . . */ | |
562 | /* . . . X . . . . . . . . */ | |
563 | /* . . x x x . . . . . . . */ | |
564 | /* . . x x x . . . . . . . */ | |
565 | /* . . x x x . . . . . . . */ | |
566 | ||
567 | {{0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
568 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
569 | {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
570 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
571 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
572 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
573 | ||
574 | /* . . . x x x . . . . . . */ | |
575 | /* . . . x x x . . . . . . */ | |
576 | /* . . . . X . . . . . . . */ | |
577 | /* . . . x x x . . . . . . */ | |
578 | /* . . . x x x . . . . . . */ | |
579 | /* . . . x x x . . . . . . */ | |
580 | ||
581 | {{0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
582 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
583 | {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
584 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
585 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
586 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
587 | ||
588 | /* . . . . x x x . . . . . */ | |
589 | /* . . . . x x x . . . . . */ | |
590 | /* . . . . . X . . . . . . */ | |
591 | /* . . . . x x x . . . . . */ | |
592 | /* . . . . x x x . . . . . */ | |
593 | /* . . . . x x x . . . . . */ | |
594 | ||
595 | {{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
596 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
597 | {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
598 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
599 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
600 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
601 | ||
602 | /* . . . . . x x x . . . . */ | |
603 | /* . . . . . x x x . . . . */ | |
604 | /* . . . . . . X . . . . . */ | |
605 | /* . . . . . x x x . . . . */ | |
606 | /* . . . . . x x x . . . . */ | |
607 | /* . . . . . x x x . . . . */ | |
608 | ||
609 | {{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
610 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
611 | {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
612 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
613 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
614 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
615 | ||
616 | /* . . . . . . x x x . . . */ | |
617 | /* . . . . . . x x x . . . */ | |
618 | /* . . . . . . . X . . . . */ | |
619 | /* . . . . . . x x x . . . */ | |
620 | /* . . . . . . x x x . . . */ | |
621 | /* . . . . . . x x x . . . */ | |
622 | ||
623 | {{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
624 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
625 | {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
626 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
627 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
628 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}}, | |
629 | ||
630 | /* . . . . . . . x x . . . */ | |
631 | /* . . . . . . . x x . . . */ | |
632 | /* . . . . . . . . X . . . */ | |
633 | /* . . . . . . . x x x . . */ | |
634 | /* . . . . . . . x x x . . */ | |
635 | /* . . . . . . . x x x . . */ | |
636 | ||
637 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
638 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
639 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | |
640 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
641 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
642 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}}, | |
643 | ||
644 | /* . . . . . . . . x x . . */ | |
645 | /* . . . . . . . . x x . . */ | |
646 | /* . . . . . . . . . X . . */ | |
647 | /* . . . . . . . . . x x . */ | |
648 | /* . . . . . . . . . x x . */ | |
649 | /* . . . . . . . . . x x . */ | |
650 | ||
651 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
652 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
653 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | |
654 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
655 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
656 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}}, | |
657 | ||
658 | /* . . . . . . . . . x x . */ | |
659 | /* . . . . . . . . . x x . */ | |
660 | /* . . . . . . . . . . X . */ | |
661 | /* . . . . . . . . . . x x */ | |
662 | /* . . . . . . . . . . x x */ | |
663 | /* . . . . . . . . . . x x */ | |
664 | ||
665 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
666 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
667 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | |
668 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
669 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
670 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}}, | |
671 | ||
672 | /* . . . . . . . . . . x x */ | |
673 | /* . . . . . . . . . . x x */ | |
674 | /* . . . . . . . . . . . X */ | |
675 | /* . . . . . . . . . . . x */ | |
676 | /* . . . . . . . . . . . x */ | |
677 | /* . . . . . . . . . . . x */ | |
678 | ||
679 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
680 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
681 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | |
682 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
683 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
684 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}}, | |
685 | ||
686 | /* . . . . . . . . . . . . */ | |
687 | /* . . . . . . . . . . . . */ | |
688 | /* . . . . . . . . . . . . */ | |
689 | /* . . . . . . . . . . . . */ | |
690 | /* . . . . . . . . . . . . */ | |
691 | /* . . . . . . . . . . . . */ | |
692 | ||
693 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
694 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
695 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
696 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
697 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
698 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
699 | ||
700 | /* . . . . . . . . . . . . */ | |
701 | /* . . . . . . . . . . . . */ | |
702 | /* . . . . . . . . . . . . */ | |
703 | /* . . . . . . . . . . . . */ | |
704 | /* . . . . . . . . . . . . */ | |
705 | /* . . . . . . . . . . . . */ | |
706 | ||
707 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
708 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
709 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
710 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
711 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
712 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
713 | ||
714 | /* . . . . . . . . . . . . */ | |
715 | /* . . . . . . . . . . . . */ | |
716 | /* . . . . . . . . . . . . */ | |
717 | /* . . . . . . . . . . . . */ | |
718 | /* . . . . . . . . . . . . */ | |
719 | /* . . . . . . . . . . . . */ | |
720 | ||
721 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
722 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
723 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
724 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
725 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
726 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
727 | ||
728 | /* . . . . . . . . . . . . */ | |
729 | /* . . . . . . . . . . . . */ | |
730 | /* . . . . . . . . . . . . */ | |
731 | /* . . . . . . . . . . . . */ | |
732 | /* . . . . . . . . . . . . */ | |
733 | /* . . . . . . . . . . . . */ | |
734 | ||
735 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
736 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
737 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
738 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
739 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
740 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}}, | |
741 | ||
742 | { /* --- Stack 3 --- */ | |
743 | ||
744 | /* x . . . . . . . . . . . . . . . */ | |
745 | /* x . . . . . . . . . . . . . . . */ | |
746 | /* X . . . . . . . . . . . . . . . */ | |
747 | /* x x . . . . . . . . . . . . . . */ | |
748 | /* x x . . . . . . . . . . . . . . */ | |
749 | /* x x . . . . . . . . . . . . . . */ | |
750 | ||
751 | {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
752 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
753 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
754 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
755 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
756 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
757 | ||
758 | /* x x . . . . . . . . . . . . . . */ | |
759 | /* x x . . . . . . . . . . . . . . */ | |
760 | /* . X . . . . . . . . . . . . . . */ | |
761 | /* . x x . . . . . . . . . . . . . */ | |
762 | /* . x x . . . . . . . . . . . . . */ | |
763 | /* . x x . . . . . . . . . . . . . */ | |
764 | ||
765 | {{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
766 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
767 | {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
768 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
769 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
770 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
771 | ||
772 | /* . x x . . . . . . . . . . . . . */ | |
773 | /* . x x . . . . . . . . . . . . . */ | |
774 | /* . . X . . . . . . . . . . . . . */ | |
775 | /* . . x x . . . . . . . . . . . . */ | |
776 | /* . . x x . . . . . . . . . . . . */ | |
777 | /* . . x x . . . . . . . . . . . . */ | |
778 | ||
779 | {{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
780 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
781 | {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
782 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
783 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
784 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
785 | ||
786 | /* . . x x . . . . . . . . . . . . */ | |
787 | /* . . x x . . . . . . . . . . . . */ | |
788 | /* . . . X . . . . . . . . . . . . */ | |
789 | /* . . . x x . . . . . . . . . . . */ | |
790 | /* . . . x x . . . . . . . . . . . */ | |
791 | /* . . . x x . . . . . . . . . . . */ | |
792 | ||
793 | {{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
794 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
795 | {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
796 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
797 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
798 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
799 | ||
800 | /* . . . x x . . . . . . . . . . . */ | |
801 | /* . . . x x . . . . . . . . . . . */ | |
802 | /* . . . . X . . . . . . . . . . . */ | |
803 | /* . . . . x x . . . . . . . . . . */ | |
804 | /* . . . . x x . . . . . . . . . . */ | |
805 | /* . . . . x x . . . . . . . . . . */ | |
806 | ||
807 | {{0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
808 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
809 | {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
810 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
811 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
812 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
813 | ||
814 | /* . . . . x x . . . . . . . . . . */ | |
815 | /* . . . . x x . . . . . . . . . . */ | |
816 | /* . . . . . X . . . . . . . . . . */ | |
817 | /* . . . . . x x . . . . . . . . . */ | |
818 | /* . . . . . x x . . . . . . . . . */ | |
819 | /* . . . . . x x . . . . . . . . . */ | |
820 | ||
821 | {{0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
822 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
823 | {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
824 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
825 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
826 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
827 | ||
828 | /* . . . . . x x . . . . . . . . . */ | |
829 | /* . . . . . x x . . . . . . . . . */ | |
830 | /* . . . . . . X . . . . . . . . . */ | |
831 | /* . . . . . . x x . . . . . . . . */ | |
832 | /* . . . . . . x x . . . . . . . . */ | |
833 | /* . . . . . . x x . . . . . . . . */ | |
834 | ||
835 | {{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
836 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
837 | {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
838 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
839 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
840 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
841 | ||
842 | /* . . . . . . x x . . . . . . . . */ | |
843 | /* . . . . . . x x . . . . . . . . */ | |
844 | /* . . . . . . . X . . . . . . . . */ | |
845 | /* . . . . . . . x x . . . . . . . */ | |
846 | /* . . . . . . . x x . . . . . . . */ | |
847 | /* . . . . . . . x x . . . . . . . */ | |
848 | ||
849 | {{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
850 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
851 | {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
852 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
853 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
854 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}}, | |
855 | ||
856 | /* . . . . . . . x x . . . . . . . */ | |
857 | /* . . . . . . . x x . . . . . . . */ | |
858 | /* . . . . . . . . X . . . . . . . */ | |
859 | /* . . . . . . . . x x . . . . . . */ | |
860 | /* . . . . . . . . x x . . . . . . */ | |
861 | /* . . . . . . . . x x . . . . . . */ | |
862 | ||
863 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
864 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
865 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | |
866 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
867 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
868 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}}, | |
869 | ||
870 | /* . . . . . . . x x x . . . . . . */ | |
871 | /* . . . . . . . . x x . . . . . . */ | |
872 | /* . . . . . . . . . X . . . . . . */ | |
873 | /* . . . . . . . . . x x . . . . . */ | |
874 | /* . . . . . . . . . x x . . . . . */ | |
875 | /* . . . . . . . . . x x . . . . . */ | |
876 | ||
877 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
878 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
879 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | |
880 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
881 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
882 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}}, | |
883 | ||
884 | /* . . . . . . . . x x x . . . . . */ | |
885 | /* . . . . . . . . . x x x . . . . */ | |
886 | /* . . . . . . . . . . X . . . . . */ | |
887 | /* . . . . . . . . . . x x . . . . */ | |
888 | /* . . . . . . . . . . x x . . . . */ | |
889 | /* . . . . . . . . . . x x . . . . */ | |
890 | ||
891 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
892 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
893 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | |
894 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
895 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
896 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}}, | |
897 | ||
898 | /* . . . . . . . . . x x x . . . . */ | |
899 | /* . . . . . . . . . . x x x . . . */ | |
900 | /* . . . . . . . . . . . X . . . . */ | |
901 | /* . . . . . . . . . . x x x . . . */ | |
902 | /* . . . . . . . . . . x x x . . . */ | |
903 | /* . . . . . . . . . . . x x . . . */ | |
904 | ||
905 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, | |
906 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
907 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | |
908 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
909 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
910 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}}, | |
911 | ||
912 | /* . . . . . . . . . . x x x . . . */ | |
913 | /* . . . . . . . . . . . x x x . . */ | |
914 | /* . . . . . . . . . . . . X . . . */ | |
915 | /* . . . . . . . . . . . x x x . . */ | |
916 | /* . . . . . . . . . . . x x x . . */ | |
917 | /* . . . . . . . . . . . . x x . . */ | |
918 | ||
919 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, | |
920 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
921 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | |
922 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
923 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
924 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}}, | |
925 | ||
926 | /* . . . . . . . . . . . x x x . . */ | |
927 | /* . . . . . . . . . . . . x x x . */ | |
928 | /* . . . . . . . . . . . . . X . . */ | |
929 | /* . . . . . . . . . . . . x x x . */ | |
930 | /* . . . . . . . . . . . . x x x . */ | |
931 | /* . . . . . . . . . . . . . x x . */ | |
932 | ||
933 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, | |
934 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
935 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | |
936 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
937 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
938 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}}, | |
939 | ||
940 | /* . . . . . . . . . . . . x x x . */ | |
941 | /* . . . . . . . . . . . . . x x x */ | |
942 | /* . . . . . . . . . . . . . . X . */ | |
943 | /* . . . . . . . . . . . . . x x x */ | |
944 | /* . . . . . . . . . . . . . x x x */ | |
945 | /* . . . . . . . . . . . . . . x x */ | |
946 | ||
947 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, | |
948 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
949 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | |
950 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
951 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
952 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}}, | |
953 | ||
954 | /* . . . . . . . . . . . . . x x x */ | |
955 | /* . . . . . . . . . . . . . . x x */ | |
956 | /* . . . . . . . . . . . . . . . X */ | |
957 | /* . . . . . . . . . . . . . . x x */ | |
958 | /* . . . . . . . . . . . . . . x x */ | |
959 | /* . . . . . . . . . . . . . . . x */ | |
960 | ||
961 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, | |
962 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
963 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
964 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
965 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
966 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}}, | |
967 | ||
968 | { /* --- Stack 4 --- */ | |
969 | ||
970 | /* x . . . . . . . . . . . . . . . */ | |
971 | /* x x . . . . . . . . . . . . . . */ | |
972 | /* X . . . . . . . . . . . . . . . */ | |
973 | /* x x . . . . . . . . . . . . . . */ | |
974 | /* x x . . . . . . . . . . . . . . */ | |
975 | /* x x . . . . . . . . . . . . . . */ | |
976 | ||
977 | {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
978 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
979 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
980 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
981 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
982 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
983 | ||
984 | /* x x . . . . . . . . . . . . . . */ | |
985 | /* x x x . . . . . . . . . . . . . */ | |
986 | /* . X . . . . . . . . . . . . . . */ | |
987 | /* x x x . . . . . . . . . . . . . */ | |
988 | /* x x x . . . . . . . . . . . . . */ | |
989 | /* . x x . . . . . . . . . . . . . */ | |
990 | ||
991 | {{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
992 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
993 | {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
994 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
995 | {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
996 | {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
997 | ||
998 | /* x x x . . . . . . . . . . . . . */ | |
999 | /* . x x x . . . . . . . . . . . . */ | |
1000 | /* . . X . . . . . . . . . . . . . */ | |
1001 | /* . x x x . . . . . . . . . . . . */ | |
1002 | /* . x x x . . . . . . . . . . . . */ | |
1003 | /* . . x x . . . . . . . . . . . . */ | |
1004 | ||
1005 | {{1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1006 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1007 | {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1008 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1009 | {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1010 | {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
1011 | ||
1012 | /* . x x x . . . . . . . . . . . . */ | |
1013 | /* . . x x x . . . . . . . . . . . */ | |
1014 | /* . . . X . . . . . . . . . . . . */ | |
1015 | /* . . x x x . . . . . . . . . . . */ | |
1016 | /* . . x x x . . . . . . . . . . . */ | |
1017 | /* . . . x x . . . . . . . . . . . */ | |
1018 | ||
1019 | {{0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1020 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1021 | {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1022 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1023 | {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1024 | {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
1025 | ||
1026 | /* . . x x x . . . . . . . . . . . */ | |
1027 | /* . . . x x x . . . . . . . . . . */ | |
1028 | /* . . . . X . . . . . . . . . . . */ | |
1029 | /* . . . x x x . . . . . . . . . . */ | |
1030 | /* . . . x x x . . . . . . . . . . */ | |
1031 | /* . . . . x x . . . . . . . . . . */ | |
1032 | ||
1033 | {{0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1034 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1035 | {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1036 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1037 | {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1038 | {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
1039 | ||
1040 | /* . . . x x x . . . . . . . . . . */ | |
1041 | /* . . . . x x x . . . . . . . . . */ | |
1042 | /* . . . . . X . . . . . . . . . . */ | |
1043 | /* . . . . x x x . . . . . . . . . */ | |
1044 | /* . . . . x x x . . . . . . . . . */ | |
1045 | /* . . . . . x x . . . . . . . . . */ | |
1046 | ||
1047 | {{0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1048 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1049 | {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1050 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1051 | {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1052 | {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
1053 | ||
1054 | /* . . . . x x x . . . . . . . . . */ | |
1055 | /* . . . . . x x x . . . . . . . . */ | |
1056 | /* . . . . . . X . . . . . . . . . */ | |
1057 | /* . . . . . x x x . . . . . . . . */ | |
1058 | /* . . . . . x x x . . . . . . . . */ | |
1059 | /* . . . . . . x x . . . . . . . . */ | |
1060 | ||
1061 | {{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1062 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1063 | {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1064 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1065 | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1066 | {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}}, | |
1067 | ||
1068 | /* . . . . . x x x . . . . . . . . */ | |
1069 | /* . . . . . . x x x . . . . . . . */ | |
1070 | /* . . . . . . . X . . . . . . . . */ | |
1071 | /* . . . . . . x x x . . . . . . . */ | |
1072 | /* . . . . . . x x x . . . . . . . */ | |
1073 | /* . . . . . . . x x . . . . . . . */ | |
1074 | ||
1075 | {{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1076 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1077 | {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1078 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1079 | {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1080 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}}, | |
1081 | ||
1082 | /* . . . . . . x x . . . . . . . . */ | |
1083 | /* . . . . . . . x x x . . . . . . */ | |
1084 | /* . . . . . . . . X . . . . . . . */ | |
1085 | /* . . . . . . . x x . . . . . . . */ | |
1086 | /* . . . . . . . x x . . . . . . . */ | |
1087 | /* . . . . . . . . x x . . . . . . */ | |
1088 | ||
1089 | {{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | |
1090 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, | |
1091 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1092 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1093 | {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1094 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}}, | |
1095 | ||
1096 | /* . . . . . . . x x . . . . . . . */ | |
1097 | /* . . . . . . . . . x x . . . . . */ | |
1098 | /* . . . . . . . . . X . . . . . . */ | |
1099 | /* . . . . . . . . x x . . . . . . */ | |
1100 | /* . . . . . . . . x x . . . . . . */ | |
1101 | /* . . . . . . . . . x x . . . . . */ | |
1102 | ||
1103 | {{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, | |
1104 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
1105 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | |
1106 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
1107 | {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
1108 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}}, | |
1109 | ||
1110 | /* . . . . . . . . x x . . . . . . */ | |
1111 | /* . . . . . . . . . . x x . . . . */ | |
1112 | /* . . . . . . . . . . X . . . . . */ | |
1113 | /* . . . . . . . . . x x . . . . . */ | |
1114 | /* . . . . . . . . . x x . . . . . */ | |
1115 | /* . . . . . . . . . . x x . . . . */ | |
1116 | ||
1117 | {{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, | |
1118 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
1119 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | |
1120 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
1121 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
1122 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}}, | |
1123 | ||
1124 | /* . . . . . . . . . x x . . . . . */ | |
1125 | /* . . . . . . . . . . . x x . . . */ | |
1126 | /* . . . . . . . . . . . X . . . . */ | |
1127 | /* . . . . . . . . . . x x . . . . */ | |
1128 | /* . . . . . . . . . . x x . . . . */ | |
1129 | /* . . . . . . . . . . . x x . . . */ | |
1130 | ||
1131 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, | |
1132 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
1133 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | |
1134 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
1135 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
1136 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}}, | |
1137 | ||
1138 | /* . . . . . . . . . . x x . . . . */ | |
1139 | /* . . . . . . . . . . . . x x . . */ | |
1140 | /* . . . . . . . . . . . . X . . . */ | |
1141 | /* . . . . . . . . . . . x x . . . */ | |
1142 | /* . . . . . . . . . . . x x . . . */ | |
1143 | /* . . . . . . . . . . . . x x . . */ | |
1144 | ||
1145 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, | |
1146 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
1147 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | |
1148 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
1149 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
1150 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}}, | |
1151 | ||
1152 | /* . . . . . . . . . . . x x . . . */ | |
1153 | /* . . . . . . . . . . . . . x x . */ | |
1154 | /* . . . . . . . . . . . . . X . . */ | |
1155 | /* . . . . . . . . . . . . x x . . */ | |
1156 | /* . . . . . . . . . . . . x x . . */ | |
1157 | /* . . . . . . . . . . . . . x x . */ | |
1158 | ||
1159 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, | |
1160 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
1161 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | |
1162 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
1163 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
1164 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}}, | |
1165 | ||
1166 | /* . . . . . . . . . . . . x x . . */ | |
1167 | /* . . . . . . . . . . . . . . x x */ | |
1168 | /* . . . . . . . . . . . . . . X . */ | |
1169 | /* . . . . . . . . . . . . . x x . */ | |
1170 | /* . . . . . . . . . . . . . x x . */ | |
1171 | /* . . . . . . . . . . . . . . x x */ | |
1172 | ||
1173 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, | |
1174 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
1175 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | |
1176 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
1177 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
1178 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}}, | |
1179 | ||
1180 | /* . . . . . . . . . . . . . x x . */ | |
1181 | /* . . . . . . . . . . . . . . . x */ | |
1182 | /* . . . . . . . . . . . . . . . X */ | |
1183 | /* . . . . . . . . . . . . . . x x */ | |
1184 | /* . . . . . . . . . . . . . . x x */ | |
1185 | /* . . . . . . . . . . . . . . . x */ | |
1186 | ||
1187 | {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, | |
1188 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
1189 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, | |
1190 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
1191 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, | |
1192 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}} | |
1193 | ||
1194 | }; | |
52c19022 | 1195 | |
1196 | AliTRDgtuParam::AliTRDgtuParam() : | |
1197 | fVertexSize(20.0), | |
1198 | fCurrTrackletMask(0), | |
b491d23b | 1199 | fMagField(0.5), |
52c19022 | 1200 | fGeo(0x0) |
1201 | { | |
1202 | // default ctor | |
1203 | fGeo = new AliTRDgeometry(); | |
637666cd | 1204 | for (Int_t iLayer = 0; iLayer < 6; iLayer++) { |
1205 | fAki[iLayer] = 0.; | |
1206 | fBki[iLayer] = 0.; | |
1207 | fCki[iLayer] = 0.; | |
1208 | } | |
1209 | ||
5f006bd7 | 1210 | GenerateZChannelMap(); |
52c19022 | 1211 | } |
1212 | ||
5f006bd7 | 1213 | AliTRDgtuParam::~AliTRDgtuParam() |
52c19022 | 1214 | { |
1215 | // dtor | |
1216 | ||
1217 | delete fGeo; | |
52c19022 | 1218 | } |
1219 | ||
5f006bd7 | 1220 | AliTRDgtuParam* AliTRDgtuParam::Instance() |
52c19022 | 1221 | { |
1222 | // get (or create) the single instance | |
1223 | ||
5f006bd7 | 1224 | if (fgInstance == 0) |
52c19022 | 1225 | fgInstance = new AliTRDgtuParam(); |
1226 | ||
1227 | return fgInstance; | |
1228 | } | |
1229 | ||
5f006bd7 | 1230 | void AliTRDgtuParam::Terminate() |
52c19022 | 1231 | { |
1232 | // destruct the instance | |
1233 | ||
1234 | if (fgInstance != 0) { | |
1235 | delete fgInstance; | |
1236 | fgInstance = 0x0; | |
1237 | } | |
1238 | } | |
1239 | ||
5f006bd7 | 1240 | Bool_t AliTRDgtuParam::IsInZChannel(Int_t stack, Int_t layer, Int_t zchannel, Int_t zpos) const |
52c19022 | 1241 | { |
1242 | return (fZSubChannel[stack][zchannel][layer][zpos] != 0); | |
1243 | } | |
1244 | ||
1245 | Int_t AliTRDgtuParam::GetZSubchannel(Int_t stack, Int_t layer, Int_t zchannel, Int_t zpos) const | |
1246 | { | |
1247 | return fZSubChannel[stack][zchannel][layer][zpos]; | |
1248 | } | |
1249 | ||
d2c8b010 | 1250 | Int_t AliTRDgtuParam::GetRefLayer(Int_t refLayerIdx) |
52c19022 | 1251 | { |
36dc3337 | 1252 | // returns the reference layer indexed by refLayerIdx |
1253 | ||
52c19022 | 1254 | if (refLayerIdx >= 0 && refLayerIdx < fgkNRefLayers) |
d2c8b010 | 1255 | return fgRefLayers[refLayerIdx]; |
5f006bd7 | 1256 | else |
52c19022 | 1257 | return -1; |
1258 | } | |
1259 | ||
5f006bd7 | 1260 | Int_t AliTRDgtuParam::GenerateZChannelMap() |
52c19022 | 1261 | { |
1262 | // generate the z-channel map | |
5f006bd7 | 1263 | // assuming that the tracks come from the vertex |
52c19022 | 1264 | // +/- fVertexSize in z-direction |
1265 | ||
44eafcf2 | 1266 | if (fgUseGTUconst) { |
1267 | for (Int_t iStack = 0; iStack < fGeo->Nstack(); iStack++) { | |
1268 | for (Int_t iChannel = 0; iChannel < fGeo->GetRowMax(fgkFixLayer, iStack, 0); iChannel++) { | |
1269 | for (Int_t iLayer = 0; iLayer < fGeo->Nlayer(); iLayer++) { | |
1270 | for (Int_t iRow = 0; iRow < fGeo->GetRowMax(iLayer, iStack, 0); iRow++) { | |
1271 | if (fgZChannelMap[iStack][iChannel][iLayer][iRow] != 0) { | |
1272 | fZChannelMap[iStack][iChannel][iLayer][iRow] = 1; | |
1273 | fZSubChannel[iStack][iChannel % fgkNZChannels][iLayer][iRow] = iChannel / fgkNZChannels + 1; | |
1274 | } | |
1275 | } | |
1276 | } | |
1277 | } | |
1278 | } | |
52c19022 | 1279 | |
44eafcf2 | 1280 | return kTRUE; |
1281 | } | |
1282 | else { | |
1283 | Int_t iSec = 0; // sector is irrelevant | |
1284 | Bool_t collision = kFALSE; | |
52c19022 | 1285 | |
44eafcf2 | 1286 | for (Int_t iStack = 0; iStack < fGeo->Nstack(); iStack++) { |
5f006bd7 | 1287 | |
44eafcf2 | 1288 | Float_t x[6] = { 0 }; |
1289 | Float_t z[6][16] = {{ 0 }}; | |
1290 | Float_t dZ[6][16] = {{ 0 }}; | |
1291 | ||
1292 | for (Int_t iLayer = 0; iLayer < fGeo->Nlayer(); iLayer++) { | |
1293 | AliTRDpadPlane *pp = fGeo->GetPadPlane(iLayer, iStack); | |
1294 | x[iLayer] = fGeo->GetTime0(iLayer) - fGeo->CdrHght(); // ??? | |
1295 | for (Int_t iRow = 0; iRow < fGeo->GetRowMax(iLayer, iStack, iSec); iRow++) { | |
1296 | z[iLayer][iRow] = pp->GetRowPos(iRow); // this is the right (pos. z-direction) border of the pad | |
1297 | dZ[iLayer][iRow] = pp->GetRowSize(iRow); // length of the pad in z-direction | |
1298 | for (Int_t i = 0; i < fgkNZChannels; i++) | |
52c19022 | 1299 | fZSubChannel[iStack][i][iLayer][iRow] = 0; |
44eafcf2 | 1300 | } |
52c19022 | 1301 | } |
52c19022 | 1302 | |
44eafcf2 | 1303 | for (Int_t fixRow = 0; fixRow < fGeo->GetRowMax(fgkFixLayer, iStack, iSec); fixRow++) { |
5f006bd7 | 1304 | |
44eafcf2 | 1305 | Double_t fixZmin = z[fgkFixLayer][fixRow] - dZ[fgkFixLayer][fixRow]; |
1306 | Double_t fixZmax = z[fgkFixLayer][fixRow]; | |
1307 | Double_t fixX = x[fgkFixLayer] + 1.5; // ??? 1.5 from where? | |
52c19022 | 1308 | |
44eafcf2 | 1309 | for (Int_t iLayer = 0; iLayer < fGeo->Nlayer(); iLayer++) { |
1310 | Double_t leftZ, rightZ; | |
5f006bd7 | 1311 | |
44eafcf2 | 1312 | if (iLayer <= fgkFixLayer) { |
1313 | leftZ = (fixZmin + fVertexSize) * (x[iLayer] + 1.5) / fixX - fVertexSize; | |
1314 | rightZ = (fixZmax - fVertexSize) * (x[iLayer] + 1.5) / fixX + fVertexSize; | |
1315 | } | |
1316 | else { | |
1317 | leftZ = (fixZmin - fVertexSize) * (x[iLayer] + 1.5) / fixX + fVertexSize; | |
1318 | rightZ = (fixZmax + fVertexSize) * (x[iLayer] + 1.5) / fixX - fVertexSize; | |
1319 | } | |
5f006bd7 | 1320 | |
44eafcf2 | 1321 | Double_t epsilon = 0.001; |
1322 | for (Int_t iRow = 0; iRow < fGeo->GetRowMax(iLayer, iStack, iSec); iRow++) { | |
1323 | if ( (z[iLayer][iRow] ) > (leftZ + epsilon) && | |
1324 | (z[iLayer][iRow] - dZ[iLayer][iRow] ) < (rightZ - epsilon) ) { | |
1325 | fZChannelMap[iStack][fixRow][iLayer][iRow] = 1; | |
1326 | if (fZSubChannel[iStack][fixRow % fgkNZChannels][iLayer][iRow] != 0) { | |
1327 | AliError("Collision in Z-Channel assignment occured! No reliable tracking!!!"); | |
1328 | collision = kTRUE; | |
1329 | } | |
1330 | else | |
1331 | fZSubChannel[iStack][fixRow % fgkNZChannels][iLayer][iRow] = fixRow / fgkNZChannels + 1; | |
52c19022 | 1332 | } |
52c19022 | 1333 | |
44eafcf2 | 1334 | } |
52c19022 | 1335 | } |
1336 | } | |
1337 | } | |
52c19022 | 1338 | |
44eafcf2 | 1339 | return ~collision; |
1340 | } | |
52c19022 | 1341 | } |
1342 | ||
5f006bd7 | 1343 | Bool_t AliTRDgtuParam::DisplayZChannelMap(Int_t zchannel, Int_t subchannel) const |
52c19022 | 1344 | { |
5f006bd7 | 1345 | // display the z-channel map |
52c19022 | 1346 | |
637666cd | 1347 | if (zchannel >= fgkNZChannels) { |
52c19022 | 1348 | AliError("Invalid Z channel!"); |
1349 | return kFALSE; | |
1350 | } | |
1351 | ||
1352 | Int_t zchmin = zchannel >= 0 ? zchannel : 0; | |
1353 | Int_t zchmax = zchannel >= 0 ? zchannel + 1 : fgkNZChannels; | |
1354 | Int_t i = 0; | |
1355 | Int_t j = 0; | |
1356 | TCanvas *c = new TCanvas("zchmap", "Z-Chhannel Mapping"); | |
1357 | c->cd(); | |
1358 | TGraph **graphz = new TGraph*[fgkNZChannels]; | |
5f006bd7 | 1359 | for (Int_t zch = zchmin; zch < zchmax; zch++) |
52c19022 | 1360 | graphz[zch] = new TGraph; |
1361 | TGraphAsymmErrors *graph = new TGraphAsymmErrors(); | |
1362 | graph->SetTitle("Z-Channel Map"); | |
1363 | graph->SetPoint(i, 0, 0); // vertex | |
1364 | graph->SetPointError(i++, 20, 20, 0, 0); | |
1365 | // graph->SetRange //???? | |
1366 | for (Int_t iLayer = 0; iLayer < fGeo->Nlayer(); iLayer++) { | |
1367 | for (Int_t iStack = 0; iStack < fGeo->Nstack(); iStack++) { | |
1368 | AliTRDpadPlane *pp = fGeo->GetPadPlane(iLayer, iStack); | |
1369 | for (Int_t iRow = 0; iRow < fGeo->GetRowMax(iLayer, iStack, 0); iRow++) { | |
1370 | graph->SetPoint(i, pp->GetRowPos(iRow), fGeo->GetTime0(iLayer) - fGeo->CdrHght()); | |
1371 | graph->SetPointError(i++, pp->GetRowSize(iRow), 0, 0, 0); | |
1372 | for (Int_t zch = zchmin; zch < zchmax; zch++) | |
1373 | if (fZSubChannel[iStack][zch][iLayer][iRow] != 0) | |
1374 | if (subchannel == 0 || fZSubChannel[iStack][zch][iLayer][iRow] == subchannel) | |
1375 | graphz[zch]->SetPoint(j++, pp->GetRowPos(iRow) - pp->GetRowSize(iRow)/2, fGeo->GetTime0(iLayer) - fGeo->CdrHght()); | |
1376 | } | |
1377 | } | |
1378 | } | |
1379 | graph->SetMarkerStyle(kDot); | |
1380 | graph->Draw("AP"); | |
637666cd | 1381 | gROOT->Add(graph); |
52c19022 | 1382 | for (Int_t zch = zchmin; zch < zchmax; zch++) { |
1383 | graphz[zch]->SetMarkerStyle(kCircle); | |
1384 | graphz[zch]->SetMarkerColor(zch+2); | |
1385 | graphz[zch]->SetMarkerSize(0.3 + zch*0.2); | |
1386 | graphz[zch]->Draw("P"); | |
637666cd | 1387 | gROOT->Add(graphz[zch]); |
52c19022 | 1388 | } |
54d34aac | 1389 | delete [] graphz; |
52c19022 | 1390 | return kTRUE; |
1391 | } | |
1392 | ||
5f006bd7 | 1393 | Int_t AliTRDgtuParam::GetCiAlpha(Int_t layer) const |
52c19022 | 1394 | { |
1395 | // get the constant for the calculation of alpha | |
1396 | ||
44eafcf2 | 1397 | Int_t ci = TMath::Nint(GetChamberThickness() / fGeo->GetTime0(layer) * GetBinWidthY() / GetBinWidthdY() * (1 << (GetBitExcessAlpha() + GetBitExcessY() + 1)) ); |
36dc3337 | 1398 | return ci; |
52c19022 | 1399 | } |
1400 | ||
5f006bd7 | 1401 | Int_t AliTRDgtuParam::GetCiYProj(Int_t layer) const |
52c19022 | 1402 | { |
1403 | // get the constant for the calculation of y_proj | |
1404 | ||
5f006bd7 | 1405 | Float_t xmid = (fGeo->GetTime0(0) + fGeo->GetTime0(fGeo->Nlayer()-1)) / 2.; |
44eafcf2 | 1406 | Int_t ci = TMath::Nint(- (fGeo->GetTime0(layer) - xmid) / GetChamberThickness() * GetBinWidthdY() / GetBinWidthY() * (1 << GetBitExcessYProj()) ); |
36dc3337 | 1407 | return ci; |
52c19022 | 1408 | } |
1409 | ||
1410 | Int_t AliTRDgtuParam::GetYt(Int_t stack, Int_t layer, Int_t zrow) const | |
1411 | { | |
5f006bd7 | 1412 | return (Int_t) (- ( (layer % 2 ? 1 : -1) * |
1413 | (GetGeo()->GetPadPlane(layer, stack)->GetRowPos(zrow) - GetGeo()->GetPadPlane(layer, stack)->GetRowSize(zrow) / 2) * | |
52c19022 | 1414 | TMath::Tan(- 2.0 / 180.0 * TMath::Pi()) ) / 0.016 ); |
1415 | } | |
1416 | ||
5f006bd7 | 1417 | Bool_t AliTRDgtuParam::GenerateRecoCoefficients(Int_t trackletMask) |
52c19022 | 1418 | { |
5f006bd7 | 1419 | // calculate the coefficients for the straight line fit |
36dc3337 | 1420 | // depending on the mask of contributing tracklets |
1421 | ||
52c19022 | 1422 | fCurrTrackletMask = trackletMask; |
1423 | ||
1424 | TMatrix a(GetNLayers(), 3); | |
1425 | TMatrix b(3, GetNLayers()); | |
1426 | TMatrix c(3, 3); | |
1427 | ||
1428 | for (Int_t layer = 0; layer < GetNLayers(); layer++) { | |
1429 | if ( (trackletMask & (1 << layer)) == 0) { | |
1430 | a(layer, 0) = 0; | |
1431 | a(layer, 1) = 0; | |
1432 | a(layer, 2) = 0; | |
5f006bd7 | 1433 | } |
52c19022 | 1434 | else { |
1435 | a(layer, 0) = 1; | |
1436 | a(layer, 1) = fGeo->GetTime0(layer); | |
1437 | a(layer, 2) = (layer % 2 ? 1 : -1) * fGeo->GetTime0(layer); | |
1438 | } | |
1439 | } | |
1440 | ||
1441 | b.Transpose(a); | |
1442 | c = b * a; | |
1443 | c.InvertFast(); | |
1444 | b = c * b; | |
1445 | ||
1446 | for (Int_t layer = 0; layer < GetNLayers(); layer++) { | |
1447 | fAki[layer] = b.GetMatrixArray()[layer]; | |
1448 | fBki[layer] = b.GetMatrixArray()[GetNLayers() + layer]; | |
1449 | fCki[layer] = b.GetMatrixArray()[2 * GetNLayers() + layer]; | |
1450 | } | |
1451 | return kTRUE; | |
1452 | } | |
1453 | ||
5f006bd7 | 1454 | Float_t AliTRDgtuParam::GetAki(Int_t k, Int_t i) |
52c19022 | 1455 | { |
1456 | // get A_ki for the calculation of the tracking parameters | |
1457 | if (fCurrTrackletMask != k) | |
1458 | GenerateRecoCoefficients(k); | |
1459 | ||
d2c8b010 | 1460 | return -fAki[i]; |
52c19022 | 1461 | } |
1462 | ||
5f006bd7 | 1463 | Float_t AliTRDgtuParam::GetBki(Int_t k, Int_t i) |
52c19022 | 1464 | { |
1465 | // get B_ki for the calculation of the tracking parameters | |
1466 | ||
1467 | if (fCurrTrackletMask != k) | |
1468 | GenerateRecoCoefficients(k); | |
1469 | ||
1470 | return fBki[i]; | |
1471 | } | |
1472 | ||
5f006bd7 | 1473 | Float_t AliTRDgtuParam::GetCki(Int_t k, Int_t i) |
52c19022 | 1474 | { |
1475 | // get B_ki for the calculation of the tracking parameters | |
1476 | ||
1477 | if (fCurrTrackletMask != k) | |
1478 | GenerateRecoCoefficients(k); | |
1479 | ||
1480 | return fCki[i]; | |
1481 | } | |
1482 | ||
1483 | /* | |
5f006bd7 | 1484 | Float_t AliTRDgtuParam::GetD(Int_t k) const |
52c19022 | 1485 | { |
1486 | // get the determinant for the calculation of the tracking parameters | |
1487 | ||
1488 | TMatrix t(3, 3); | |
1489 | for (Int_t i = 0; i < GetNLayers(); i++) { | |
1490 | if ( !((k >> i) & 0x1) ) | |
1491 | continue; | |
1492 | Float_t xi = fGeo->GetTime0(i); | |
1493 | t(0,0) += 1; | |
1494 | t(1,0) += xi; | |
1495 | t(2,0) += TMath::Power(-1, i) * xi; | |
1496 | t(0,1) += xi; | |
1497 | t(1,1) += TMath::Power(xi, 2); | |
1498 | t(2,1) += TMath::Power(-1, i) * TMath::Power(xi, 2); | |
1499 | t(0,2) += TMath::Power(-1, i) * xi; | |
1500 | t(1,2) += TMath::Power(-1, i) * TMath::Power(xi, 2); | |
1501 | t(2,2) += TMath::Power(xi, 2); | |
1502 | } | |
1503 | return t.Determinant(); | |
1504 | } | |
1505 | ||
5f006bd7 | 1506 | Bool_t AliTRDgtuParam::GetFitParams(TVectorD& rhs, Int_t k) |
52c19022 | 1507 | { |
1508 | // calculate the fitting parameters | |
1509 | // will be changed! | |
1510 | ||
1511 | TMatrix t(3,3); | |
1512 | for (Int_t i = 0; i < GetNLayers(); i++) { | |
1513 | if ( !((k >> i) & 0x1) ) | |
1514 | continue; | |
1515 | Float_t xi = fGeo->GetTime0(i); | |
1516 | t(0,0) += 1; | |
1517 | t(1,0) += xi; | |
1518 | t(2,0) += TMath::Power(-1, i) * xi; | |
1519 | t(0,1) += xi; | |
1520 | t(1,1) += TMath::Power(xi, 2); | |
1521 | t(2,1) += TMath::Power(-1, i) * TMath::Power(xi, 2); | |
1522 | t(0,2) -= TMath::Power(-1, i) * xi; | |
1523 | t(1,2) -= TMath::Power(-1, i) * TMath::Power(xi, 2); | |
1524 | t(2,2) -= TMath::Power(xi, 2); | |
1525 | } | |
1526 | TDecompLU lr(t); | |
1527 | lr.Solve(rhs); | |
1528 | return lr.Decompose(); | |
1529 | } | |
1530 | */ | |
1531 | ||
5f006bd7 | 1532 | Bool_t AliTRDgtuParam::GetIntersectionPoints(Int_t k, Float_t &x1, Float_t &x2) |
52c19022 | 1533 | { |
1534 | // get the x-coord. of the assumed circle/straight line intersection points | |
1535 | ||
1536 | Int_t l1 = -1; | |
1537 | Int_t l2 = -1; | |
1538 | Int_t nHits = 0; | |
1539 | for (Int_t layer = 0; layer < GetNLayers(); layer++) { | |
1540 | if ( (k >> layer) & 0x1 ) { | |
5f006bd7 | 1541 | if (l1 < 0) |
52c19022 | 1542 | l1 = layer; |
1543 | l2 = layer; | |
1544 | nHits++; | |
1545 | } | |
1546 | } | |
1547 | ||
637666cd | 1548 | if ( (l1 >= 0) && (l2 >= 0) ) { |
1549 | x1 = fGeo->GetTime0(l1) + 10./6 * (nHits -1); | |
1550 | x2 = fGeo->GetTime0(l2) - 10./6 * (nHits -1); | |
1551 | return kTRUE; | |
1552 | } | |
1553 | else | |
1554 | return kFALSE; | |
52c19022 | 1555 | } |
1556 | ||
d2c8b010 | 1557 | Int_t AliTRDgtuParam::GetPt(Int_t layerMask, Int_t a, Float_t /* b */, Float_t x1, Float_t x2, Float_t magField) |
52c19022 | 1558 | { |
b491d23b | 1559 | // returns 0.3 * B * 1/a (1/128 GeV/c) |
1560 | // a : offset, b : slope (not used) | |
1561 | ||
44eafcf2 | 1562 | if (fgUseGTUconst) { |
1563 | //----- calculation as in the GTU ---- | |
1564 | const Int_t maskIdLut[64] = { | |
1565 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, | |
1566 | -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 2, -1, 3, 4, 5, | |
1567 | -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, 7, -1, 8, 9, 10, | |
1568 | -1, -1, -1, 11, -1, 12, 13, 14, -1, 15, 16, 17, 18, 19, 20, 21 | |
1569 | }; | |
1570 | ||
1571 | const Int_t c1Lut[32] = { | |
1572 | -2371, -2474, -2474, -2474, -2563, -2448, -2578, -2578, | |
1573 | -2578, -2670, -2557, -2578, -2578, -2670, -2557, -2578, | |
1574 | -2670, -2557, -2763, -2557, -2644, -2523, -1, -1, | |
1575 | -1, -1, -1, -1, -1, -1, -1, -1 | |
1576 | }; | |
1577 | ||
1578 | Int_t layerMaskId = maskIdLut[layerMask]; | |
1579 | Int_t c1 = c1Lut[layerMaskId]; | |
1580 | Int_t c1Ext = c1 << 8; | |
d2c8b010 | 1581 | Int_t ptRawStage4 = c1Ext / (a >> 2); |
44eafcf2 | 1582 | Int_t ptRawComb4 = ptRawStage4; |
1583 | Int_t ptExtComb4 = (ptRawComb4 > 0) ? ptRawComb4 + 33 : ptRawComb4 - 30; | |
1584 | ||
1585 | return ((Int_t) ptExtComb4/2); | |
1586 | } | |
1587 | else { | |
1588 | //----- simple calculation ----- | |
1589 | Float_t c1 = x1 * x2 / 2. / 10000.; // conversion cm to m | |
1590 | Float_t r = 0; | |
1591 | if ( (a >> 1) != 0) | |
d2c8b010 | 1592 | r = (0.3 * magField / 2. / (fgkBinWidthY/100.)) * (((Int_t) c1) << 8) / (a >> 1); //??? why shift of a? |
44eafcf2 | 1593 | |
1594 | Int_t pt = (Int_t) (2 * r); | |
1595 | if (pt >= 0) | |
1596 | pt += 32; | |
1597 | else | |
1598 | pt -= 29; | |
1599 | pt /= 2; | |
1600 | return pt; | |
1601 | } | |
52c19022 | 1602 | } |