15{
16
17 VDIGIT::iterator digit_it = cache.
Digits.begin();
18 VDIGIT::iterator digit_it_end = cache.
Digits.end();
19
24
29
30 for (; digit_it != digit_it_end; ++digit_it) {
31
32 unsigned short tubeID = (*digit_it)->getTubeID();
33 bool isHit = (*digit_it)->isHit();
34
35 if (tubeID < 16) {
36 data_word0 |= (isHit << (tubeID - 0));
38 } else if (tubeID < 20) {
39 data_word2 |= (isHit << (tubeID - 16));
41 } else if (tubeID < 36) {
42 data_word1 |= (isHit << (tubeID - 20));
44 } else if (tubeID < 40) {
45 data_word3 |= (isHit << (tubeID - 36));
47 } else {
48 log << MSG::ERROR <<
" Unknown tubeID: " << tubeID <<
endmsg;
49 }
50 }
51
56
57 data_block.push_back(data_word0);
58 data_block.push_back(data_word1);
59 data_block.push_back(data_word2);
60 data_block.push_back(data_word3);
61
63}