94 bitset<12> n_1234_888 = ( b_adr14_8 & b_adr24_8 & b_adr34_8 );
95 bitset<12> n_1234_889 = ( b_adr14_8 & b_adr24_8 & b_adr34_9 );
96 bitset<12> n_1234_880 = ( b_adr14_8 & b_adr24_8 & b_adr34_0 );
97 bitset<12> n_1234_881 = ( b_adr14_8 & b_adr24_8 & b_adr34_1 );
98 bitset<12> n_1234_898 = ( b_adr14_8 & b_adr24_9 & b_adr34_8 );
99 bitset<12> n_1234_899 = ( b_adr14_8 & b_adr24_9 & b_adr34_9 );
100 bitset<12> n_1234_890 = ( b_adr14_8 & b_adr24_9 & b_adr34_0 );
101 bitset<12> n_1234_891 = ( b_adr14_8 & b_adr24_9 & b_adr34_1 );
102 bitset<12> n_1234_800 = ( b_adr14_8 & b_adr24_0 & b_adr34_0 );
103 bitset<12> n_1234_801 = ( b_adr14_8 & b_adr24_0 & b_adr34_1 );
104 bitset<12> n_1234_810 = ( b_adr14_8 & b_adr24_1 & b_adr34_0 );
105 bitset<12> n_1234_811 = ( b_adr14_8 & b_adr24_1 & b_adr34_1 );
107 bitset<12> n_1234_988 = ( b_adr14_9 & b_adr24_8 & b_adr34_8 );
108 bitset<12> n_1234_989 = ( b_adr14_9 & b_adr24_8 & b_adr34_9 );
109 bitset<12> n_1234_980 = ( b_adr14_9 & b_adr24_8 & b_adr34_0 );
110 bitset<12> n_1234_981 = ( b_adr14_9 & b_adr24_8 & b_adr34_1 );
111 bitset<12> n_1234_998 = ( b_adr14_9 & b_adr24_9 & b_adr34_8 );
112 bitset<12> n_1234_999 = ( b_adr14_9 & b_adr24_9 & b_adr34_9 );
113 bitset<12> n_1234_990 = ( b_adr14_9 & b_adr24_9 & b_adr34_0 );
114 bitset<12> n_1234_991 = ( b_adr14_9 & b_adr24_9 & b_adr34_1 );
115 bitset<12> n_1234_900 = ( b_adr14_9 & b_adr24_0 & b_adr34_0 );
116 bitset<12> n_1234_901 = ( b_adr14_9 & b_adr24_0 & b_adr34_1 );
117 bitset<12> n_1234_910 = ( b_adr14_9 & b_adr24_1 & b_adr34_0 );
118 bitset<12> n_1234_911 = ( b_adr14_9 & b_adr24_1 & b_adr34_1 );
120 bitset<12> n_123_88 = ( b_adr13_8 & b_adr23_8 );
121 bitset<12> n_123_89 = ( b_adr13_8 & b_adr23_9 );
122 bitset<12> n_123_80 = ( b_adr13_8 & b_adr23_0 );
123 bitset<12> n_123_81 = ( b_adr13_8 & b_adr23_1 );
125 bitset<12> n_123_98 = ( b_adr13_9 & b_adr23_8 );
126 bitset<12> n_123_99 = ( b_adr13_9 & b_adr23_9 );
127 bitset<12> n_123_90 = ( b_adr13_9 & b_adr23_0 );
128 bitset<12> n_123_91 = ( b_adr13_9 & b_adr23_1 );
130 bitset<12> n_124_88 = ( b_adr14_8 & b_adr24_8 );
131 bitset<12> n_124_89 = ( b_adr14_8 & b_adr24_9 );
132 bitset<12> n_124_80 = ( b_adr14_8 & b_adr24_0 );
133 bitset<12> n_124_81 = ( b_adr14_8 & b_adr24_1 );
135 bitset<12> n_124_98 = ( b_adr14_9 & b_adr24_8 );
136 bitset<12> n_124_99 = ( b_adr14_9 & b_adr24_9 );
137 bitset<12> n_124_90 = ( b_adr14_9 & b_adr24_0 );
138 bitset<12> n_124_91 = ( b_adr14_9 & b_adr24_1 );
140 bitset<12> n_134_88 = ( b_adr14_8 & b_adr34_8 );
141 bitset<12> n_134_89 = ( b_adr14_8 & b_adr34_9 );
142 bitset<12> n_134_80 = ( b_adr14_8 & b_adr34_0 );
143 bitset<12> n_134_81 = ( b_adr14_8 & b_adr34_1 );
145 bitset<12> n_134_98 = ( b_adr14_9 & b_adr34_8 );
146 bitset<12> n_134_99 = ( b_adr14_9 & b_adr34_9 );
147 bitset<12> n_134_90 = ( b_adr14_9 & b_adr34_0 );
148 bitset<12> n_134_91 = ( b_adr14_9 & b_adr34_1 );
150 bitset<12> n_234_88 = ( b_adr24_8 & b_adr34_8 );
151 bitset<12> n_234_89 = ( b_adr24_8 & b_adr34_9 );
152 bitset<12> n_234_80 = ( b_adr24_8 & b_adr34_0 );
153 bitset<12> n_234_81 = ( b_adr24_8 & b_adr34_1 );
155 bitset<12> n_234_98 = ( b_adr24_9 & b_adr34_8 );
156 bitset<12> n_234_99 = ( b_adr24_9 & b_adr34_9 );
157 bitset<12> n_234_90 = ( b_adr24_9 & b_adr34_0 );
158 bitset<12> n_234_91 = ( b_adr24_9 & b_adr34_1 );
160 bitset<12> n_12_8 = b_adr12_8;
161 bitset<12> n_12_9 = b_adr12_9;
163 bitset<12> n_13_8 = b_adr13_8;
164 bitset<12> n_13_9 = b_adr13_9;
166 bitset<12> n_14_8 = b_adr14_8;
167 bitset<12> n_14_9 = b_adr14_9;
169 bitset<12> n_23_8 = b_adr23_8;
170 bitset<12> n_23_9 = b_adr23_9;
172 bitset<12> n_24_8 = b_adr24_8;
173 bitset<12> n_24_9 = b_adr24_9;
175 bitset<12> n_34_8 = b_adr34_8;
176 bitset<12> n_34_9 = b_adr34_9;
283 m_thePriorityTable1[67] = ( b_adr12_8[0] & b_adr13_8[0] & b_adr23_8[0] & n_1234_888.any() );
284 m_thePriorityTable1[66] = ( b_adr12_8[0] & b_adr13_8[1] & b_adr23_8[1] & n_1234_889.any() );
285 m_thePriorityTable1[65] = ( b_adr12_8[0] & b_adr13_8[2] & b_adr23_8[2] & n_1234_880.any() );
286 m_thePriorityTable1[64] = ( b_adr12_8[0] & b_adr13_8[3] & b_adr23_8[3] & n_1234_881.any() );
287 m_thePriorityTable1[63] = ( b_adr12_8[1] & b_adr13_8[0] & b_adr23_9[0] & n_1234_898.any() );
288 m_thePriorityTable1[62] = ( b_adr12_8[1] & b_adr13_8[1] & b_adr23_9[1] & n_1234_899.any() );
289 m_thePriorityTable1[61] = ( b_adr12_8[1] & b_adr13_8[2] & b_adr23_9[2] & n_1234_890.any() );
290 m_thePriorityTable1[60] = ( b_adr12_8[1] & b_adr13_8[3] & b_adr23_9[3] & n_1234_891.any() );
291 m_thePriorityTable1[59] = ( b_adr12_8[2] & b_adr13_8[2] & b_adr23_0[2] & n_1234_800.any() );
292 m_thePriorityTable1[58] = ( b_adr12_8[2] & b_adr13_8[3] & b_adr23_0[3] & n_1234_801.any() );
293 m_thePriorityTable1[57] = ( b_adr12_8[3] & b_adr13_8[2] & b_adr23_1[2] & n_1234_810.any() );
294 m_thePriorityTable1[56] = ( b_adr12_8[3] & b_adr13_8[3] & b_adr23_1[3] & n_1234_811.any() );
296 m_thePriorityTable1[55] = ( b_adr12_9[0] & b_adr13_9[0] & b_adr23_8[0] & n_1234_988.any() );
297 m_thePriorityTable1[54] = ( b_adr12_9[0] & b_adr13_9[1] & b_adr23_8[1] & n_1234_989.any() );
298 m_thePriorityTable1[53] = ( b_adr12_9[0] & b_adr13_9[2] & b_adr23_8[2] & n_1234_980.any() );
299 m_thePriorityTable1[52] = ( b_adr12_9[0] & b_adr13_9[3] & b_adr23_8[3] & n_1234_981.any() );
300 m_thePriorityTable1[51] = ( b_adr12_9[1] & b_adr13_9[0] & b_adr23_9[0] & n_1234_998.any() );
301 m_thePriorityTable1[50] = ( b_adr12_9[1] & b_adr13_9[1] & b_adr23_9[1] & n_1234_999.any() );
302 m_thePriorityTable1[49] = ( b_adr12_9[1] & b_adr13_9[2] & b_adr23_9[2] & n_1234_990.any() );
303 m_thePriorityTable1[48] = ( b_adr12_9[1] & b_adr13_9[3] & b_adr23_9[3] & n_1234_991.any() );
304 m_thePriorityTable1[47] = ( b_adr12_9[2] & b_adr13_9[2] & b_adr23_0[2] & n_1234_900.any() );
305 m_thePriorityTable1[46] = ( b_adr12_9[2] & b_adr13_9[3] & b_adr23_0[3] & n_1234_901.any() );
306 m_thePriorityTable1[45] = ( b_adr12_9[3] & b_adr13_9[2] & b_adr23_1[2] & n_1234_910.any() );
307 m_thePriorityTable1[44] = ( b_adr12_9[3] & b_adr13_9[3] & b_adr23_1[3] & n_1234_911.any() );
372 unsigned int global1 = 0;
373 unsigned int group1 = 0;
381 for (
int i = 0;
i < 56;
i++ ) {
389 unsigned int global2 = 0;
390 unsigned int group2 = 0;
426 if ( ( s2_2 == 15 && s3_2 == 15 && s4_2 == 15 ) ||
427 ( s1_2 == 15 && s3_2 == 15 && s4_2 == 15 ) ||
428 ( s1_2 == 15 && s2_2 == 15 && s4_2 == 15 ) ||
429 ( s1_2 == 15 && s2_2 == 15 && s3_2 == 15 ) ) {
478 cout <<
"Track Assembler : " << endl;
542 if ( global == 31 ) {
575 case 21 : { group = prio1234a; priority = 56 +
group;
break; }
576 case 20 : { group = prio1234b; priority = 44 +
group;
break; }
577 case 19 : { group = prio123a; priority = 40 +
group;
break; }
578 case 18 : { group = prio123b; priority = 36 +
group;
break; }
579 case 17 : { group = prio124a; priority = 32 +
group;
break; }
580 case 16 : { group = prio124b; priority = 28 +
group;
break; }
581 case 15 : { group = prio134a; priority = 24 +
group;
break; }
582 case 14 : { group = prio134b; priority = 20 +
group;
break; }
583 case 13 : { group = prio234a; priority = 16 +
group;
break; }
584 case 12 : { group = prio234b; priority = 12 +
group;
break; }
585 default : { group = 15; priority = global;
break; }
638 if ( global == 31 ) {
669 case 20 : { group = prio1234b; priority = 44 +
group;
break; }
670 case 19 : { group = prio123a; priority = 40 +
group;
break; }
671 case 18 : { group = prio123b; priority = 36 +
group;
break; }
672 case 17 : { group = prio124a; priority = 32 +
group;
break; }
673 case 16 : { group = prio124b; priority = 28 +
group;
break; }
674 case 15 : { group = prio134a; priority = 24 +
group;
break; }
675 case 14 : { group = prio134b; priority = 20 +
group;
break; }
676 case 13 : { group = prio234a; priority = 16 +
group;
break; }
677 case 12 : { group = prio234b; priority = 12 +
group;
break; }
678 default : { group = 15; priority = global;
break; }
692 case 21 : { tc =
T1234;
709 case 20 : { tc =
T1234;
726 case 19 : { tc =
T123;
735 case 18 : { tc =
T123;
744 case 17 : { tc =
T124;
753 case 16 : { tc =
T124;
762 case 15 : { tc =
T134;
771 case 14 : { tc =
T134;
780 case 13 : { tc =
T234;
789 case 12 : { tc =
T234;
827 case 20 : { tc =
T1234;
844 case 19 : { tc =
T123;
853 case 18 : { tc =
T123;
862 case 17 : { tc =
T124;
871 case 16 : { tc =
T124;
880 case 15 : { tc =
T134;
889 case 14 : { tc =
T134;
898 case 13 : { tc =
T234;
907 case 12 : { tc =
T234;
944 for (
int i = 0;
i < 12;
i++ ) {
945 if ( input.test(
i) ) result =
i;
960 for (
int i = 0;
i < 4;
i++ ) {
961 if ( input.test(
i) ) result =
i;
976 for (
int i = 0;
i < 22;
i++ ) {
977 if ( input.test(
i) ) result =
i;
992 for (
int i = 0;
i < 21;
i++ ) {
993 if ( input.test(
i) ) result =
i;
1008 unsigned int result = 15;
1010 for (
int i = 0;
i < 12;
i++ ) {
1011 if ( input.test(
i) ) {
1029 unsigned int result = 15;
1031 for (
int i = 0;
i < 11;
i += 2 ) {
1032 if ( input.test(
i) || input.test(
i+1) ) {
1033 if ( input.test(
i) ) result =
i;
1034 if ( input.test(
i+1) ) result =
i+1;
1048 bitset<68>
s(input);
1050 for (
int i = pos+length;
i < 68;
i++ ) s.reset(
i);
1054 return s.to_ulong();
1064 bitset<56>
s(input);
1066 for (
int i = pos+length;
i < 56;
i++ ) s.reset(
i);
1070 return s.to_ulong();
1085 case 67 : { bitset<56>
b(
string(
"00000111111100000111000001110000011100000111010101010101"));
return b;
break; }
1086 case 66 : { bitset<56>
b(
string(
"00001011111100000111000001110000101100001011010101010110"));
return b;
break; }
1087 case 65 : { bitset<56>
b(
string(
"00001101010100000111000001110000110100001101010101010111"));
return b;
break; }
1088 case 64 : { bitset<56>
b(
string(
"00001110101000000111000001110000111000001110010101010111"));
return b;
break; }
1089 case 63 : { bitset<56>
b(
string(
"01110000111100001011000010110000011101110000010101101001"));
return b;
break; }
1090 case 62 : { bitset<56>
b(
string(
"10110000111100001011000010110000101110110000010101101010"));
return b;
break; }
1091 case 61 : { bitset<56>
b(
string(
"11010000111100001011000010110000110111010000010101101011"));
return b;
break; }
1092 case 60 : { bitset<56>
b(
string(
"11100000111100001011000010110000111011100000010101101011"));
return b;
break; }
1093 case 59 : { bitset<56>
b(
string(
"11011101000100001101000011010000110111011101010101111111"));
return b;
break; }
1094 case 58 : { bitset<56>
b(
string(
"11101110001000001101000011010000111011101110010101111111"));
return b;
break; }
1095 case 57 : { bitset<56>
b(
string(
"11011101010000001110000011100000110111011101010101111111"));
return b;
break; }
1096 case 56 : { bitset<56>
b(
string(
"11101110100000001110000011100000111011101110010101111111"));
return b;
break; }
1098 case 55 : { bitset<56>
b(
string(
"00000000000001110000011100000111000000000111101010010101"));
return b;
break; }
1099 case 54 : { bitset<56>
b(
string(
"00000000000001110000011100001011000000001011101010010110"));
return b;
break; }
1100 case 53 : { bitset<56>
b(
string(
"00000000000001110000011100001101000000001101101010010111"));
return b;
break; }
1101 case 52 : { bitset<56>
b(
string(
"00000000000001110000011100001110000000001110101010010111"));
return b;
break; }
1102 case 51 : { bitset<56>
b(
string(
"00000000000010110000101100000111000001110000101010101001"));
return b;
break; }
1103 case 50 : { bitset<56>
b(
string(
"00000000000010110000101100001011000010110000101010101010"));
return b;
break; }
1104 case 49 : { bitset<56>
b(
string(
"00000000000010110000101100001101000011010000101010101011"));
return b;
break; }
1105 case 48 : { bitset<56>
b(
string(
"00000000000010110000101100001110000011100000101010101011"));
return b;
break; }
1106 case 47 : { bitset<56>
b(
string(
"00000000000011010000110100001101000011011101101010111111"));
return b;
break; }
1107 case 46 : { bitset<56>
b(
string(
"00000000000011010000110100001110000011101110101010111111"));
return b;
break; }
1108 case 45 : { bitset<56>
b(
string(
"00000000000011100000111000001101000011011101101010111111"));
return b;
break; }
1109 case 44 : { bitset<56>
b(
string(
"00000000000011100000111000001110000011101110101010111111"));
return b;
break; }
1111 case 43 : { bitset<56>
b(
string(
"00000000000000000111000001110000111100001111010101010111"));
return b;
break; }
1112 case 42 : { bitset<56>
b(
string(
"00000000000000001011000010110000111111110000010101101011"));
return b;
break; }
1113 case 41 : { bitset<56>
b(
string(
"00000000000000001101000011010000111111111111010101111111"));
return b;
break; }
1114 case 40 : { bitset<56>
b(
string(
"00000000000000001110000011100000111111111111010101111111"));
return b;
break; }
1116 case 39 : { bitset<56>
b(
string(
"00000000000000000000011100001111000000001111101010010111"));
return b;
break; }
1117 case 38 : { bitset<56>
b(
string(
"00000000000000000000101100001111000011110000101010101011"));
return b;
break; }
1118 case 37 : { bitset<56>
b(
string(
"00000000000000000000110100001111000011111111101010111111"));
return b;
break; }
1119 case 36 : { bitset<56>
b(
string(
"00000000000000000000111000001111000011111111101010111111"));
return b;
break; }
1121 case 35 : { bitset<56>
b(
string(
"00000000000000000000000001110000111100001111010101010111"));
return b;
break; }
1122 case 34 : { bitset<56>
b(
string(
"00000000000000000000000010110000111111110000010101101011"));
return b;
break; }
1123 case 33 : { bitset<56>
b(
string(
"00000000000000000000000011010000111111111111010101111111"));
return b;
break; }
1124 case 32 : { bitset<56>
b(
string(
"00000000000000000000000011100000111111111111010101111111"));
return b;
break; }
1126 case 31 : { bitset<56>
b(
string(
"00000000000000000000011100001111000000001111101010010111"));
return b;
break; }
1127 case 30 : { bitset<56>
b(
string(
"00000000000000000000101100001111000011110000101010101011"));
return b;
break; }
1128 case 29 : { bitset<56>
b(
string(
"00000000000000000000110100001111000011111111101010111111"));
return b;
break; }
1129 case 28 : { bitset<56>
b(
string(
"00000000000000000000111000001111000011111111101010111111"));
return b;
break; }
1131 case 27 : { bitset<56>
b(
string(
"00000000000000000000000000000000011101110111010101111101"));
return b;
break; }
1132 case 26 : { bitset<56>
b(
string(
"00000000000000000000000000000000101110111011010101111110"));
return b;
break; }
1133 case 25 : { bitset<56>
b(
string(
"00000000000000000000000000000000110111011101010101111111"));
return b;
break; }
1134 case 24 : { bitset<56>
b(
string(
"00000000000000000000000000000000111011101110010101111111"));
return b;
break; }
1136 case 23 : { bitset<56>
b(
string(
"00000000000000000000000000000000000001110111101010111101"));
return b;
break; }
1137 case 22 : { bitset<56>
b(
string(
"00000000000000000000000000000000000010111011101010111110"));
return b;
break; }
1138 case 21 : { bitset<56>
b(
string(
"00000000000000000000000000000000000011011101101010111111"));
return b;
break; }
1139 case 20 : { bitset<56>
b(
string(
"00000000000000000000000000000000000011101110101010111111"));
return b;
break; }
1141 case 19 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000111111111010101"));
return b;
break; }
1142 case 18 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001011111111010110"));
return b;
break; }
1143 case 17 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001101111111010111"));
return b;
break; }
1144 case 16 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000001110111111010111"));
return b;
break; }
1146 case 15 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101001"));
return b;
break; }
1147 case 14 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101010"));
return b;
break; }
1148 case 13 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101011"));
return b;
break; }
1149 case 12 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000111111101011"));
return b;
break; }
1151 case 11 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000010101111111"));
return b;
break; }
1152 case 10 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000001010111111"));
return b;
break; }
1154 case 9 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000101111111"));
return b;
break; }
1155 case 8 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000010111111"));
return b;
break; }
1157 case 7 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000001111111"));
return b;
break; }
1158 case 6 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000111111"));
return b;
break; }
1160 case 5 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000010111"));
return b;
break; }
1161 case 4 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000001011"));
return b;
break; }
1163 case 3 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000111"));
return b;
break; }
1164 case 2 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000011"));
return b;
break; }
1166 case 1 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000001"));
return b;
break; }
1167 case 0 : { bitset<56>
b(
string(
"00000000000000000000000000000000000000000000000000000000"));
return b;
break; }
1168 default : { bitset<56>
b;
return b;
break; }
static unsigned int addressEncoder12(const std::bitset< 12 > &input)
12 bit address encoder
void reset()
reset address array
static unsigned int addressEncoder12s(const std::bitset< 12 > &input)
special 12 bit address encoder
void runAddressAssignment1(int global, int group)
run the first Address Assignment Sub-Unit
void print() const
print result of Track Assembler
L1MuDTAddressArray m_theAddresses[2]
static unsigned int priorityEncoder12(const std::bitset< 12 > &input)
12 bit priority encoder
const unsigned int tc2bitmap(const TrackClass tc)
unsigned int m_theLastAddress[68]
static std::string const input
static unsigned int priorityEncoder22(const std::bitset< 22 > &input)
22 bit priority encoder
L1MuDTTrackAssembler(const L1MuDTSectorProcessor &)
constructor
const L1MuDTSectorProcessor & m_sp
void runEncoderSubUnit2(unsigned &global, unsigned &group, unsigned &priority)
run the second Priority Encoder Sub-Unit
virtual void run()
run Track Assembler
virtual void reset()
reset Track Assembler
virtual ~L1MuDTTrackAssembler()
destructor
std::bitset< 4 > m_theBitMaps[2]
static std::bitset< 56 > getCancelationTable(unsigned int)
cancel Out Table
static unsigned int priorityEncoder21(const std::bitset< 21 > &input)
21 bit priority encoder
void setStations(int adr1, int adr2, int adr3, int adr4)
set addresses of all four stations
std::bitset< 68 > m_thePriorityTable1
unsigned int m_theLastAddressI[12]
static unsigned int priorityEncoder4(const std::bitset< 4 > &input)
4 bit priority encoder
void runAddressAssignment2(int global, int group)
run the second Address Assignment Sub-Unit
void setStation(int stat, int adr)
set address of a given station [1-4]
static unsigned long subBitset56(const std::bitset< 56 > &input, int pos, int length)
get sub-bitmap of a 56-bit word
void runEncoderSubUnit1(unsigned &global, unsigned &group, unsigned &priority)
run the first Priority Encoder Sub-Unit
std::bitset< 56 > m_thePriorityTable2
const L1MuDTExtrapolationUnit * EU() const
return pointer to Extrapolation Unit
static unsigned long subBitset68(const std::bitset< 68 > &input, int pos, int length)
get sub-bitmap of a 68-bit word
unsigned short station(int stat) const
get address of a given station [1-4]