Belle II Software  release-06-00-14
TrgBitData.cc
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #include <trg/gdl/TrgBit.h>
9 
10 using namespace Belle2;
11 
12 const std::string TrgBit::_ftdlVersion[2] = {
13  "ftdlv4_5.alg.dat", // map 0
14  "ftdlv4_3.alg.dat" // map 1
15 };
16 
17 const char*
18 TrgBit::_inputBitNames[N_BITS_RESERVED] = {
19  "t3_0", "t3_1", "t3_2", "t2_0", "t2_1", "t2_2", "cdc_open90", "cdc_active", "cdc_b2b3", "cdc_b2b5",
20  "cdc_b2b7", "cdc_b2b9", "ehigh", "elow", "elum", "ecl_bha", "bha_0", "bha_1", "bha_2", "bha_3",
21  "bha_4", "bha_5", "bha_6", "bha_7", "bha_8", "bha_9", "bha_10", "bha_11", "bha_12", "bha_13",
22  "c_0", "c_1", "c_2", "c_3", "ebg_0", "ebg_1", "ebg_2", "ecl_active", "ecl_tim_fwd", "ecl_tim_brl",
23  "ecl_tim_bwd", "ecl_phys", "top_0", "top_1", "top_2", "top_bb", "top_active", "klm_hit", "klm_0", "klm_1",
24  "klm_2", "klm_3", "klmb2b_0", "klmb2b_1", "klmb2b_2", "revo", "her_kick", "ler_kick", "bha_delay", "pseud_rand",
25  "plsin", "poiin", "periodin", "veto", "n1_0", "n1_1", "n1_2", "n2_0", "n2_1", "n2_2",
26  "cdcecl_0", "cdcecl_1", "cdcecl_2", "cdcklm_0", "cdcklm_1", "cdcklm_2", "nim0", "nim1", "nim2", "nim3",
27  "t3_3", "t2_3", "n1_3", "n2_3", "cdcecl_3", "cdcklm_3", "u2_0", "u2_1", "u2_2", "ecl_oflo",
28  "ecl_3dbha", "lml_0", "lml_1", "lml_2", "lml_3", "lml_4", "lml_5", "lml_6", "lml_7", "lml_8", // 100
29  "lml_9", "lml_10", "samhem", "opohem", "d_b2b3", "d_b2b5", "d_b2b7", "d_b2b9", "p_b2b3", "p_b2b5",
30  "p_b2b7", "p_b2b9", "track", "trkflt", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
31  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
32  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
33  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
34  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
35  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
36  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
37  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
38  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"
39 };
40 
41 const unsigned
42 TrgBit::_inputMap[N_INPUT_ARRAY][N_BITS_RESERVED] = {
43 
44  /*
45  t3_0, t3_1, t3_2, t2_0, t2_1, t2_2, cdc_open90, cdc_active, cdc_b2b3, cdc_b2b5,
46  cdc_b2b7, cdc_b2b9, ehigh, elow, elum, ecl_bha, bha_0, bha_1, bha_2, bha_3,
47  bha_4, bha_5, bha_6, bha_7, bha_8, bha_9, bha_10, bha_11, bha_12, bha_13,
48  c_0, c_1, c_2, c_3, ebg_0, ebg_1, ebg_2, eactive, ecl_tim_fwd, ecl_tim_brl,
49  // 40 ecl_tim_bwd, ecl_phys, top_0, top_1, top_2, top_bb, top_active, klm_hit, klm_0, klm_1,
50  // 50 klm_2, klm_3, klmb2b_0, klmb2b_1, klmb2b_2, revo, her_kick, ler_kick, bha_delay, pseud_rand,
51  // 60 plsin, poiin, periodin, veto, n1_0, n1_1, n1_2, n2_0, n2_1, n2_2,
52  // 70 cdcecl_0, cdcecl_1, cdcecl_2, cdcklm_0, cdcklm_1, cdcklm_2, nim0, nim1, nim2, nim3, --80
53  // 80 t3_3, t2_3, n1_3, n2_3, cdcecl_3, cdcklm_3, u2_0, u2_1, u2_2, ecl_oflo,
54  // 90 ecl_3dbha, lml_0, lml_1, lml_2, lml_3, lml_4, lml_5, lml_6, lml_7, lml_8,
55  //100 lml_9, lml_10, samhem, opohem, d_b2b3, d_b2b5, d_b2b7, d_b2b9, p_b2b3, p_b2b5,
56  //110 p_b2b7, p_b2b9, track, trkflt
57  */
58 
59  // "0"
60  // 80 bits. gdl0065c-gdl0065j.
61  // e3r100 <= run < e3r1315
62  {
63  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
64  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
66  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
67  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
68  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
69  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
71  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
72  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
73  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
74  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
75  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
76  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
77  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
78  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
79  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
80  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
81  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
82  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
83  },
84 
85  // "1"
86  // 87 bits. gdl0065k-gdl0066e.
87  // e3r1315 <= run < e3r1866
88  {
89  0, 1, 2, 4, 5, 6, 8, 9, 10, 11,
90  12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
91  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
92  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
93  42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
94  52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
95  62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
96  72, 73, 74, 76, 77, 78, 80, 81, 82, 83,
97  3, 7, 999, 999, 75, 79, 84, 85, 86, 999,
98  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
99  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
100  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
101  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
102  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
103  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
104  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
105  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
106  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
107  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
108  },
109 
110  // "2"
111  // 89 bits. gdl0066f-gdl0067g.
112  // e3r1866 <= run < 5314
113  {
114  0, 1, 2, 4, 5, 6, 8, 9, 10, 11,
115  12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
116  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
117  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
118  42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
119  52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
120  62, 63, 64, 65, 66, 67, 68, 70, 71, 72,
121  74, 75, 76, 78, 79, 80, 82, 83, 84, 85,
122  3, 7, 69, 73, 77, 81, 86, 87, 88, 999,
123  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
124  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
125  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
126  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
127  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
128  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
129  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
130  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
131  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
132  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
133  },
134 
135  // "3"
136  // 109 bits. gdl0068a.
137  // e3r5314 <= run < 5594
138  {
139  0, 1, 2, 4, 5, 6, 8, 9, 10, 11,
140  12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
141  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
142  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
143  42, 43, 57, 58, 59, 60, 61, 62, 63, 64,
144  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
145  75, 76, 77, 78, 81, 82, 83, 85, 86, 87,
146  89, 90, 91, 93, 94, 95, 105, 106, 107, 108,
147  3, 7, 84, 88, 92, 96, 999, 999, 999, 44,
148  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
149  55, 56, 79, 80, 97, 98, 99, 100, 101, 102,
150  103, 104, 999, 999, 999, 999, 999, 999, 999, 999,
151  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
152  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
153  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
154  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
155  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
156  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
157  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
158  },
159 
160  // "4"
161  // 111 bits. track, trkflt added. gdl0068b
162  // e3r5594 <= run
163  {
164  0, 1, 2, 4, 5, 6, 8, 9, 10, 11,
165  12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
166  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
167  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
168  42, 43, 57, 58, 59, 60, 61, 62, 63, 64,
169  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
170  75, 76, 77, 78, 81, 82, 83, 85, 86, 87,
171  89, 90, 91, 93, 94, 95, 107, 108, 109, 110,
172  3, 7, 84, 88, 92, 96, 999, 999, 999, 44,
173  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
174  55, 56, 79, 80, 97, 98, 99, 100, 101, 102,
175  103, 104, 105, 106, 999, 999, 999, 999, 999, 999,
176  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
177  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
178  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
179  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
180  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
181  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
182  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
183  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
184  },
185 
186 };
187 
188 const char*
189 TrgBit::_outputBitNames[N_BITS_RESERVED] = {
190  "zzz", "zzzo", "fff", "fffo", "zz", "zzo", "ff", "ffo", "hie", "lowe",
191  "lume", "c2", "c3", "c4", "c5", "bha", "bha_trk", "bha_brl", "bha_ecp", "g_high",
192  "g_c1", "gg", "mu_pair", "mu_b2b", "revo", "rand", "bg", "ecltiming", "nim0", "nima03",
193  "nimo03", "period", "eclnima03", "eclnimo03", "pls", "poi", "klmhit", "f", "fe", "ffe",
194  "fc", "ffc", "cdctiming", "cdcbb", "nim1c", "c1n0", "c1n1", "c1n2", "c1n3", "c1n4",
195  "c2n1", "c2n2", "c2n3", "c2n4", "cdcecl1", "cdcecl2", "cdcecl3", "cdcecl4", "cdcklm1", "cdcklm2",
196  "cdcklm3", "cdcklm4", "ffb", "uuu", "uuuo", "uub", "uuo", "c1hie", "c1lume", "n1hie",
197  "n1lume", "c3hie", "c3lume", "n3hie", "n3lume", "eed", "fed", "fp", "bha3d", "shem",
198  "ohem", "lml0", "lml1", "lml2", "lml3", "lml4", "lml5", "lml6", "lml7", "lml8",
199  "lml9", "lml10", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", // 100
200  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
201  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
202  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
203  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
204  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
205  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
206  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
207  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
208  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
209  "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"
210 };
211 
212 const unsigned
213 TrgBit::_outputMap[N_OUTPUT_ARRAY][N_BITS_RESERVED] = {
214 
215  // 00 zzz, zzzo, fff, fffo, zz, zzo, ff, ffo, hie, lowe,
216  // 10 lume, c2, c3, c4, c5, bha, bha_trk, bha_brl, bha_ecp, g_high,
217  // 20 g_c1, gg, mu_pair, mu_b2b, revo, rand, bg, ecltiming, nim0, nima03,
218  // 30 nimo03, period, eclnima03, eclnimo03, pls, poi, klmhit, f, fe, ffe,
219  // 40 fc, ffc, cdctiming, cdcbb, nim1c, c1n0, c1n1, c1n2, c1n3, c1n4,
220  // 50 c2n1, c2n2, c2n3, c2n4, cdcecl1, cdcecl2, cdcecl3, cdcecl4, cdcklm1, cdcklm2,
221  // 60 cdcklm3, cdcklm4, ffb, uuu, uuuo, uub, uuo, c1hie, c1lume, n1hie,
222  // 70 n1lume, c3hie, c3lume, n3hie, n3lume, eed, fed, fp, bha3d, shem,
223  // 80 ohem, lml0, lml1, lml2, lml3, lml4, lml5, lml6, lml7, lml8,
224  // 92 lml9, lml10,
225 
226  // 0
227  // 62 bit. gdl0065c
228  // 10 <= run <= 261
229  {
230  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
231  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
232  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
233  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
234  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
235  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
236  60, 61, 999, 999, 999, 999, 999, 999, 999, 999,
237  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
238  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
239  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
240  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
241  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
242  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
243  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
244  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
245  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
246  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
247  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
248  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
249  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
250  },
251 
252  // 1
253  // 63 bit. gdl0065e, 65h, 65j, 65k
254  // 292 <= run <= 480
255  {
256  0, 1, 2, 3, 4, 5, 62, 7, 8, 9,
257  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
258  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
259  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
260  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
261  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
262  60, 61, 6, 999, 999, 999, 999, 999, 999, 999,
263  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
264  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
265  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
266  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
267  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
268  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
269  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
270  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
271  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
272  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
273  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
274  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
275  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
276  },
277 
278  // 2
279  // 67 bit. gdl0066a
280  // 292 <= run <= 480
281  {
282  0, 1, 2, 3, 4, 5, 62, 7, 8, 9,
283  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
284  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
285  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
286  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
287  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
288  60, 61, 6, 63, 64, 65, 66, 999, 999, 999,
289  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
290  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
291  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
292  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
293  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
294  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
295  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
296  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
297  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
298  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
299  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
300  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
301  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
302  },
303 
304  // 3
305  // 75 bit. gdl0066b(71bit), 66c,e,f,h,k, 67g.
306  // 1512 <= run < 5314
307  {
308  0, 1, 2, 3, 4, 5, 62, 7, 8, 9,
309  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
310  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
311  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
312  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
313  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
314  60, 61, 6, 63, 64, 65, 66, 67, 68, 69,
315  70, 71, 72, 73, 74, 999, 999, 999, 999, 999,
316  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
317  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
318  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
319  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
320  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
321  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
322  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
323  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
324  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
325  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
326  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
327  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
328  },
329 
330  // 4
331  // 88 bit. gdl0068a, 68b
332  // 5314 <= run
333  {
334  0, 1, 2, 3, 4, 5, 62, 7, 8, 9,
335  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
336  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
337  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
338  40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
339  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
340  60, 61, 6, 999, 999, 999, 999, 67, 68, 69,
341  70, 71, 72, 73, 74, 63, 64, 65, 66, 75,
342  76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
343  86, 87, 999, 999, 999, 999, 999, 999, 999, 999,
344  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
345  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
346  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
347  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
348  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
349  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
350  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
351  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
352  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
353  999, 999, 999, 999, 999, 999, 999, 999, 999, 999
354  }
355 
356 };
357 
358 const unsigned
359 TrgBit::_psnmValues[N_PSNM_ARRAY][N_BITS_RESERVED] = {
360 
361  // 0
362  // psn_0055 r59-
363  {
364  0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
365  0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
366  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
367  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
369  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
370  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
371  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
373  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
374  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
375  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
377  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
378  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
379  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
380  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
381  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
382  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
384  },
385 
386  // 1
387  // psn_0056 r108-
388  {
389  0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
390  1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
391  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392  0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
393  0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
394  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
404  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
407  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
409  },
410 
411  // 2
412  // psn_0057 r296-
413  {
414  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
415  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
416  1500, 150, 0, 0, 1, 1, 0, 0, 0, 0,
417  0, 0, 0, 30, 0, 0, 20000, 0, 0, 0,
418  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
419  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
420  1, 0, 20, 0, 0, 0, 0, 0, 0, 0,
421  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
424  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
427  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
428  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
430  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
431  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
434  },
435 
436  // 3
437  // psn_0058 r1512-r1615 ecltiming=1
438  // Not used for good data
439  {
440  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
441  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
442  1500, 150, 0, 0, 1, 1, 0, 1, 0, 0,
443  0, 0, 0, 30, 0, 0, 20000, 0, 0, 0,
444  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
445  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
446  1, 0, 20, 0, 0, 0, 0, 0, 0, 0,
447  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
451  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
452  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
453  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
457  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
459  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
460  },
461 
462  // 4
463  // psn_0057 r1811- ecltiming=0
464  {
465  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
466  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
467  1500, 150, 0, 0, 1, 1, 0, 0, 0, 0,
468  0, 0, 0, 30, 0, 0, 20000, 0, 0, 0,
469  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
470  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
471  1, 0, 20, 0, 0, 0, 0, 0, 0, 0,
472  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
477  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
478  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
484  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
485  },
486 
487  // 5
488  // psn_0059 r1995- 5 Dark bits
489  {
490  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
491  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
492  1500, 150, 0, 0, 1, 1, 0, 0, 0, 0,
493  0, 0, 0, 30, 0, 0, 20000, 0, 0, 0,
494  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
495  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
496  1, 0, 20, 0, 0, 0, 0, 1, 1, 1,
497  1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
498  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
500  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
501  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
502  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
503  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
510  },
511 
512  // 6
513  // psn_0059 r2001- 3 Dark bits
514  {
515  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
516  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
517  1500, 150, 0, 0, 1, 1, 0, 0, 0, 0,
518  0, 0, 0, 30, 0, 0, 20000, 0, 0, 0,
519  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
520  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
521  1, 0, 20, 0, 0, 0, 0, 1, 1, 1,
522  1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
523  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
535  },
536 
537  // 7
538  // psn_0060 r2314- eclnimo03 30->300
539  {
540  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
541  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
542  1500, 150, 0, 0, 1, 1, 0, 0, 0, 0,
543  0, 0, 0, 300, 0, 0, 20000, 0, 0, 0,
544  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
545  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
546  1, 0, 20, 0, 0, 0, 0, 1, 1, 1,
547  1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
548  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
549  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
551  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
552  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
553  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
554  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
555  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
556  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
557  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
558  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
559  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
560  },
561 
562  // 8
563  // psn_0063 e3504- bg(26)->1
564  {
565  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
566  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
567  1500, 150, 0, 0, 1, 1, 1, 0, 0, 0,
568  0, 0, 0, 300, 0, 0, 20000, 0, 0, 0,
569  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
570  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
571  1, 0, 20, 0, 0, 0, 0, 1, 1, 1,
572  1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
573  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
574  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
575  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
576  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
577  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
578  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
579  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
580  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
581  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
583  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
584  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
585  },
586 
587  // 9
588  // psn_0064=65. e5341- eed,fed,fp,bha3d
589  // Can be earlier than 5341 but
590  // runsum files lost.
591  {
592  0, 0, 1, 1, 0, 0, 1, 1, 1, 0,
593  1, 150, 0, 1, 0, 1, 1, 1, 1, 20,
594  1500, 150, 0, 0, 1, 1, 1, 0, 0, 0,
595  0, 0, 0, 300, 0, 0, 20000, 0, 0, 0,
596  0, 0, 400000, 1, 0, 0, 0, 0, 0, 0,
597  0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
598  1, 0, 20, 1, 1, 1, 1, 1, 1, 1,
599  1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
600  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
601  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
602  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
603  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
604  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
605  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
606  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
607  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
608  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
609  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
610  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
611  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
612  }
613 
614 };
615 
616 void
617 TrgBit::mapNumber(unsigned exp, unsigned run)
618 {
619 
620  const unsigned ern = exp * 1000000 + run;
621 
622  // psnm
623  if (ern >= 3005341) nconf_psnm = 9; // 64=65
624  else if (ern >= 3003504) nconf_psnm = 8; // 63
625  else if (ern >= 3002314) nconf_psnm = 7; // 60
626  else if (ern >= 3002001) nconf_psnm = 6; // 59
627  else if (ern >= 3001995) nconf_psnm = 5; // 59 No good data.
628  else if (ern >= 3001811) nconf_psnm = 4; // 57
629  else if (ern >= 3001512) nconf_psnm = 3; // 58 No good data.
630  else if (ern >= 3000296) nconf_psnm = 2; // 57
631  else if (ern >= 3000108) nconf_psnm = 1; // 56
632  else { nconf_psnm = 0; } // 55
633 
634  // ftdl
635  if (ern >= 3005314) nconf_ftdl = 4;
636  else if (ern >= 3001512) nconf_ftdl = 3;
637  else if (ern >= 3001315) nconf_ftdl = 2;
638  else if (ern >= 3000292) nconf_ftdl = 1;
639  else { nconf_ftdl = 0; }
640 
641  // input
642  if (ern >= 3005594) nconf_input = 4;
643  else if (ern >= 3005314) nconf_input = 3;
644  else if (ern >= 3001866) nconf_input = 2;
645  else if (ern >= 3001315) nconf_input = 1;
646  else { nconf_input = 0; }
647 
648  // Find number of using bits
649  n_input = 0;
650  n_output = 0;
651  for (unsigned i = 0; i < N_BITS_RESERVED; i++) {
652  unsigned j;
653  j = _inputMap[nconf_input][i];
654  if (j != 999 && n_input < j) n_input = j;
655  j = _outputMap[nconf_ftdl][i];
656  if (j != 999 && n_output < j) n_output = j;
657  }
658  n_input++;
659  n_output++;
660 
661 };
662 
Abstract base class for different kinds of events.