26 if (slbout.
isValid() ==
false) {
37 int adjacentOfSLB = -1;
38 int channelInSLB = -1;
45 if (orChannel ==
false) {
46 if (channel % numberOfLayer == 1) {
51 (channel + block * channelInBlock) / numberOfLayer +
54 if (channel % numberOfLayer == 0) {
59 (channel + block * channelInBlock) / numberOfLayer +
63 if (orChannel ==
true) {
64 if (channel % numberOfLayer == 1) {
69 (channel + block * channelInBlock) / numberOfLayer +
72 if (channel % numberOfLayer == 0) {
77 (channel + block * channelInBlock) / numberOfLayer +
86 if (orChannel ==
false) {
87 if (channel % numberOfLayer == 1) {
92 (channel + block * channelInBlock) / numberOfLayer +
95 if (channel % numberOfLayer == 0) {
100 (channel + block * channelInBlock) / numberOfLayer +
104 if (orChannel ==
true) {
105 if (channel % numberOfLayer == 1) {
110 (channel + block * channelInBlock) / numberOfLayer +
113 if (channel % numberOfLayer == 0) {
118 (channel + block * channelInBlock) / numberOfLayer +
128 if ((channel + block * channelInBlock) % numberOfLayer == 2) {
133 (channel + block * channelInBlock) / numberOfLayer +
136 if ((channel + block * channelInBlock) % numberOfLayer == 1) {
141 (channel + block * channelInBlock) / numberOfLayer +
144 if ((channel + block * channelInBlock) % numberOfLayer == 0) {
149 (channel + block * channelInBlock) / numberOfLayer +
159 if (orChannel ==
false) {
160 if (channel % numberOfLayer == 1) {
165 (channel + block * channelInBlock) / numberOfLayer +
168 if (channel % numberOfLayer == 0) {
173 (channel + block * channelInBlock) / numberOfLayer +
177 if (orChannel ==
true) {
178 if (channel % numberOfLayer == 1) {
183 (channel + block * channelInBlock) / numberOfLayer +
186 if (channel % numberOfLayer == 0) {
191 (channel + block * channelInBlock) / numberOfLayer +
201 if (channelInSLB != -1) {
204 return std::make_unique<TGCChannelSLBIn>(
214 if (slbin.
isValid() ==
false) {
228 moduleType, cellType, channelInCell);
236 switch (moduleType) {
238 if (orChannel ==
false) {
241 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
244 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
246 block = channel / channelInBlock;
247 channel = channel % channelInBlock;
249 if (orChannel ==
true) {
252 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
255 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
257 block = channel / channelInBlock;
258 channel = channel % channelInBlock;
262 if (orChannel ==
false) {
265 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
268 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
270 block = channel / channelInBlock;
271 channel = channel % channelInBlock;
273 if (orChannel ==
true) {
276 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
279 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
281 block = channel / channelInBlock;
282 channel = channel % channelInBlock;
287 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer + 2;
290 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
293 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
295 block = channel / channelInBlock;
296 channel = channel % channelInBlock;
305 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
308 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
310 block = channel / channelInBlock;
311 channel = channel % channelInBlock;
317 (channelInSLB - adjacentOfSLB) * numberOfLayer + 1;
320 channel = (channelInSLB - adjacentOfSLB) * numberOfLayer;
322 block = channel / channelInBlock;
323 channel = channel % channelInBlock;
330 if (block != -1 && channel != -1) {
331 return std::make_unique<TGCChannelSLBOut>(