2 #include <trg/gdl/TrgBit.h>
3 #include <framework/datastore/StoreObjPtr.h>
16 return _ftdlVersion[nconf_ftdl];
29 _exp = bevt->getExperiment();
30 _run = bevt->getRun();
33 mapNumber(_exp, _run);
37 for (
unsigned i = 0; i < 6; i++) {
38 unsigned i32b = trgsum->getInputBits(i);
39 unsigned f32b = trgsum->getFtdlBits(i);
40 unsigned p32b = trgsum->getPsnmBits(i);
44 for (
unsigned j = 0; j < 32; j++) {
45 if (j + i * 32 < n_input)
_itdVector.push_back((i32b & (1 << j)) ? 1 : 0);
46 if (j + i * 32 < n_output) _ftdVector.push_back((f32b & (1 << j)) ? 1 : 0);
47 if (j + i * 32 < n_output) _psnVector.push_back((p32b & (1 << j)) ? 1 : 0);
50 timtype = trgsum->getTimType();
51 _isFiredFilled =
true;
62 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
63 if (! strcmp(_inputBitNames[i], bitname)) {
67 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
68 if (! strcmp(_outputBitNames[i], bitname)) {
78 unsigned bit = _inputMap[nconf_input][a];
79 if (bit == 999)
return false;
84 TrgBit::isFiredInput(input a)
const
86 unsigned bit = _inputMap[nconf_input][a];
87 if (bit == 999)
return false;
94 unsigned bit = _outputMap[nconf_ftdl][a];
95 if (bit == 999)
return false;
100 TrgBit::isFiredFtdl(output a)
const
102 unsigned bit = _outputMap[nconf_ftdl][a];
103 if (bit == 999)
return false;
108 TrgBit::isFiredInput(
unsigned ith_bit)
const
110 return _input.
isFired(ith_bit);
114 TrgBit::isFiredInput(
const char* bitname)
const
117 if (bit == 999)
return false;
122 TrgBit::isFiredFtdl(
unsigned ith_bit)
const
128 TrgBit::isFiredFtdl(
const char* bitname)
const
131 if (bit == 999)
return false;
136 TrgBit::isFiredPsnm(output a)
const
138 unsigned bit = _outputMap[nconf_ftdl][a];
139 if (bit == 999)
return false;
144 TrgBit::isFiredPsnm(
const char* bitname)
const
147 if (bit == 999)
return false;
152 TrgBit::isFiredPsnm(
unsigned ith_bit)
const
166 if (_outputMap[nconf_ftdl][a] == 999)
return 0;
167 return _psnmValues[nconf_psnm][_outputMap[nconf_ftdl][a]];
173 return _psnmValues[nconf_psnm][i];
191 unsigned wd = bit / 32;
192 unsigned position = bit % 32;
193 return (_pattern[wd] >> position) & 1;
199 unsigned wd = bit / 32;
200 unsigned position = bit % 32;
201 return (_pattern[wd] >> position) & 1;
207 if (a >= 32 * N_INPUT_ARRAY)
return 0;
208 const unsigned i = a / 32;
209 const unsigned j = a % 32;
211 if ((_pattern[i] >> j) & 1)
return 1;
218 if (a >= 32 * N_OUTPUT_ARRAY)
return 0;
219 const unsigned i = a / 32;
220 const unsigned j = a % 32;
222 if ((_pattern[i] >> j) & 1)
return 1;
229 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
230 unsigned j = _inputMap[nconf_input][i];
231 if (ith_bit == j)
return _inputBitNames[i];
237 TrgBit::getOutputBitName(
unsigned ith_bit)
const
239 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
240 unsigned j = _outputMap[nconf_ftdl][i];
241 if (ith_bit == j)
return _outputBitNames[i];
249 for (
unsigned i = 0; i < n_output; i++) {
250 for (
unsigned j = 0; j < N_BITS_RESERVED; j++) {
251 unsigned k = _outputMap[nconf_ftdl][j];
253 printf(
"%3d %10s %d\n", i, _outputBitNames[j], _psnmValues[nconf_psnm][i]);
263 printf(
"TrgBit class: exp(%d), run(%d), nconf_psnm(%d), nconf_ftdl(%d), nconf_input(%d), n_input(%d), n_output(%d)\n", _exp, _run,
264 nconf_psnm, nconf_ftdl, nconf_input, n_input, n_output);
281 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
282 if (! strcmp(_inputBitNames[i], bitname)) {
283 return _inputMap[nconf_input][i];
292 for (
unsigned i = 0; i < N_BITS_RESERVED; i++) {
293 if (! strcmp(_outputBitNames[i], bitname)) {
294 return _outputMap[nconf_ftdl][i];
303 unsigned bit = _inputMap[nconf_input][a];
304 if (bit == 999)
return false;
311 unsigned bit = _outputMap[nconf_ftdl][a];
312 if (bit == 999)
return false;