File indexing completed on 2025-04-11 03:31:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "L1Trigger/DTBti/interface/DTBtiChip.h"
0025
0026
0027
0028
0029 #include "L1Trigger/DTBti/interface/DTBtiHit.h"
0030
0031
0032
0033
0034 #include <iostream>
0035
0036 using namespace std;
0037
0038 void DTBtiChip::computeSums() {
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 if (config()->debug() > 3) {
0050 cout << "DTBtiChip::computeSums called" << endl;
0051 }
0052
0053 sum(1, 2, 1);
0054 sum(2, 3, 1);
0055 sum(3, 4, 1);
0056 sum(4, 6, 1);
0057 sum(5, 8, 1);
0058 sum(6, 3, 2);
0059 sum(7, 4, 2);
0060 sum(8, 5, 2);
0061 sum(9, 4, 3);
0062 sum(10, 5, 3);
0063 sum(11, 6, 3);
0064 sum(12, 8, 3);
0065 sum(13, 5, 4);
0066 sum(14, 6, 4);
0067 sum(15, 7, 4);
0068 sum(16, 9, 4);
0069 sum(17, 6, 5);
0070 sum(18, 7, 5);
0071 sum(19, 8, 5);
0072 sum(20, 7, 6);
0073 sum(21, 8, 6);
0074 sum(22, 9, 6);
0075 sum(23, 8, 7);
0076 sum(24, 9, 7);
0077 sum(25, 9, 8);
0078 }
0079
0080 void DTBtiChip::sum(const int s, const int a, const int b) {
0081
0082
0083
0084
0085
0086
0087 if (_thisStepUsedHit[a - 1] != nullptr && _thisStepUsedHit[b - 1] != nullptr) {
0088 _sums[s - 1] = (float)(_thisStepUsedHit[a - 1]->jtrig() + _thisStepUsedHit[b - 1]->jtrig());
0089 _difs[s - 1] = (float)(_thisStepUsedHit[a - 1]->jtrig() - _thisStepUsedHit[b - 1]->jtrig());
0090 } else {
0091 _sums[s - 1] = 1000;
0092 _difs[s - 1] = 1000;
0093 }
0094 }
0095
0096 void DTBtiChip::reSumSet() {
0097 reSumAr[2][2 + 2] = 0;
0098 reSumAr[2][1 + 2] = 0;
0099 reSumAr[2][0 + 2] = 0;
0100 reSumAr[2][-1 + 2] = -1;
0101 reSumAr[2][-2 + 2] = -1;
0102
0103 reSumAr[1][2 + 2] = 1;
0104 reSumAr[1][1 + 2] = 1;
0105 reSumAr[1][0 + 2] = 0;
0106 reSumAr[1][-1 + 2] = 0;
0107 reSumAr[1][-2 + 2] = 0;
0108
0109 reSumAr[0][2 + 2] = 1;
0110 reSumAr[0][1 + 2] = 0;
0111 reSumAr[0][0 + 2] = 0;
0112 reSumAr[0][-1 + 2] = 0;
0113 reSumAr[0][-2 + 2] = -1;
0114
0115 reSumAr23[2][2 + 2] = 1;
0116 reSumAr23[2][1 + 2] = 1;
0117 reSumAr23[2][0 + 2] = 1;
0118 reSumAr23[2][-1 + 2] = 0;
0119 reSumAr23[2][-2 + 2] = 0;
0120
0121 reSumAr23[1][2 + 2] = 1;
0122 reSumAr23[1][1 + 2] = 1;
0123 reSumAr23[1][0 + 2] = 0;
0124 reSumAr23[1][-1 + 2] = 0;
0125 reSumAr23[1][-2 + 2] = 0;
0126
0127 reSumAr23[0][2 + 2] = 1;
0128 reSumAr23[0][1 + 2] = 0;
0129 reSumAr23[0][0 + 2] = 0;
0130 reSumAr23[0][-1 + 2] = 0;
0131 reSumAr23[0][-2 + 2] = -1;
0132 }
0133
0134 void DTBtiChip::computeEqs() {
0135
0136
0137
0138
0139 float K0 = config()->ST();
0140
0141
0142
0143 int PTMS[32];
0144 for (int i = 0; i < 32; i++) {
0145 PTMS[i] = config()->PTMSflag(i);
0146 }
0147
0148 int i;
0149
0150 i = 0;
0151 if (PTMS[i]) {
0152 _Keq[i][0] = _difs[1] + 2. * K0;
0153 _Keq[i][1] = -_sums[5] + 2. * K0;
0154 _Keq[i][2] = _sums[6];
0155 _Keq[i][3] = -(_sums[0] / 2.) + 2. * K0 + 0.01;
0156 _Keq[i][4] = (_difs[8] / 2.) + K0 + 0.01;
0157
0158 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_difs[2]), 3.))) + int((double(_difs[2]) / 3.));
0159
0160
0161
0162
0163 float TshiftB = 0;
0164 float TshiftC = 0;
0165 if (_thisStepUsedHit[3 - 1] == nullptr) {
0166 if (_hits[3 - 1].empty())
0167 TshiftB = 0;
0168 if (!_hits[3 - 1].empty() && (*(_hits[3 - 1].begin()))->clockTime() <= -K0)
0169 TshiftB = K0 + 1;
0170 } else
0171 TshiftB = _thisStepUsedHit[3 - 1]->jtrig();
0172
0173 if (_thisStepUsedHit[2 - 1] == nullptr) {
0174 if (_hits[2 - 1].empty())
0175 TshiftC = 0;
0176 if (!_hits[2 - 1].empty() && (*(_hits[2 - 1].begin()))->clockTime() <= -K0)
0177 TshiftC = K0 + 1;
0178 } else
0179 TshiftC = _thisStepUsedHit[2 - 1]->jtrig();
0180
0181 float _difs_p0 = (float)(TshiftB - TshiftC);
0182
0183
0184 _XeqAB_patt0 = (_sums[1] - K0) / 4.;
0185 _Xeq[i][0] = (_difs_p0 + K0) / 4.;
0186 _XeqCD_patt0 = (_difs[6] + K0) / 4.;
0187 _XeqAC_patt0 = -(_difs[0]) / 4.;
0188 _XeqBD_patt0 = (_sums[8]) / 4.;
0189 _Xeq[i][1] = (_sums[2] - K0) / 4.;
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200 }
0201
0202 i = 1;
0203 if (PTMS[i]) {
0204 _Keq[i][0] = _difs[1] + 2. * K0;
0205 _Keq[i][1] = -(_sums[5]) + 2. * K0;
0206 _Keq[i][2] = -_difs[6] + 2. * K0;
0207 _Keq[i][3] = -(_sums[0] / 2.) + 2. * K0 + 0.01;
0208 _Keq[i][4] = -(_sums[8] / 2.) + 2. * K0 + 0.01;
0209
0210 _Keq[i][5] = ST2 + reSum23(0, int(fmod(double(-_sums[2]), 3.))) + int((double(-_sums[2]) / 3.));
0211
0212 _Xeq[i][0] = (_difs[5] + K0) / 4.;
0213 _Xeq[i][1] = (-_difs[2] + K0) / 4.;
0214 }
0215
0216 i = 2;
0217 if (PTMS[i]) {
0218 _Keq[i][0] = _sums[1];
0219 _Keq[i][1] = -_sums[5] + 2. * K0;
0220 _Keq[i][2] = _sums[6];
0221 _Keq[i][3] = -(_difs[0] / 2.) + K0 + 0.01;
0222 _Keq[i][4] = (_difs[8] / 2.) + K0 + 0.01;
0223
0224 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(_sums[2]), 3.))) + int((double(_sums[2]) / 3.));
0225
0226
0227
0228
0229
0230
0231
0232
0233 _Xeq[i][0] = (_difs[5] + K0) / 4.;
0234 _Xeq[i][1] = (_difs[2] + K0) / 4.;
0235 }
0236
0237 i = 3;
0238 if (PTMS[i]) {
0239 _Keq[i][0] = _sums[1];
0240 _Keq[i][1] = -_sums[5] + 2. * K0;
0241 _Keq[i][2] = -_difs[6] + 2. * K0;
0242 _Keq[i][3] = -(_difs[0] / 2.) + K0 + 0.01;
0243 _Keq[i][4] = -(_sums[8] / 2.) + 2. * K0 + 0.01;
0244
0245 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(-_difs[2]), 3.))) + int((double(-_difs[2]) / 3.));
0246
0247 _Xeq[i][0] = (_difs[5] + K0) / 4.;
0248 _Xeq[i][1] = (-_sums[2] + 3. * K0) / 4.;
0249 }
0250
0251 i = 4;
0252 if (PTMS[i]) {
0253 _Keq[i][0] = _difs[1] + 2. * K0;
0254 _Keq[i][1] = _difs[10] + 2. * K0;
0255 _Keq[i][2] = -(_sums[13]) + 2. * K0;
0256 _Keq[i][3] = (_difs[3] / 2.) + 2. * K0 + 0.01;
0257 _Keq[i][4] = -(_sums[8] / 2.) + 2. * K0 + 0.01;
0258
0259 _Keq[i][5] = ST2 + reSum23(0, int(fmod(double(-_sums[2]), 3.))) + int((double(-_sums[2]) / 3.));
0260
0261 _Xeq[i][0] = (_sums[10] + K0) / 4.;
0262 _Xeq[i][1] = (-_difs[2] + K0) / 4.;
0263 }
0264
0265 i = 5;
0266 if (PTMS[i]) {
0267 _Keq[i][0] = _sums[1];
0268 _Keq[i][1] = _difs[10] + 2. * K0;
0269 _Keq[i][2] = -_sums[13] + 2. * K0;
0270 _Keq[i][3] = (_sums[3] / 2.) + K0 + 0.01;
0271 _Keq[i][4] = -(_sums[8] / 2.) + 2. * K0 + 0.01;
0272
0273 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(-_difs[2]), 3.))) + int((double(-_difs[2]) / 3.));
0274
0275 _Xeq[i][0] = (_sums[10] + K0) / 4.;
0276 _Xeq[i][1] = (-_sums[2] + 3. * K0) / 4.;
0277 }
0278
0279 i = 6;
0280 if (PTMS[i]) {
0281 _Keq[i][0] = -_difs[1] + 2. * K0;
0282 _Keq[i][1] = _sums[10];
0283 _Keq[i][2] = -_sums[13] + 2. * K0;
0284 _Keq[i][3] = (_sums[3] / 2.) + K0 + 0.01;
0285 _Keq[i][4] = -(_difs[8] / 2.) + K0 + 0.01;
0286
0287 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(-_difs[2]), 3.))) + int((double(-_difs[2]) / 3.));
0288
0289 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0290 _Xeq[i][1] = (-_sums[2] + 3. * K0) / 4.;
0291 }
0292
0293 i = 7;
0294 if (PTMS[i]) {
0295 _Keq[i][0] = -_difs[1] + 2. * K0;
0296 _Keq[i][1] = (_sums[10]);
0297 _Keq[i][2] = _difs[20] + 2. * K0;
0298 _Keq[i][3] = (_sums[3] / 2.) + K0 + 0.01;
0299 _Keq[i][4] = (_sums[11] / 2.) + K0 + 0.01;
0300
0301 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_sums[4]), 3.))) + int((double(_sums[4]) / 3.));
0302
0303 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0304 _Xeq[i][1] = (_difs[4] + 3. * K0) / 4.;
0305 }
0306
0307 i = 8;
0308 if (PTMS[i]) {
0309 _Keq[i][0] = -_difs[1] + 2. * K0;
0310 _Keq[i][1] = -_difs[10] + 2. * K0;
0311 _Keq[i][2] = (_sums[20]);
0312 _Keq[i][3] = -(_difs[3] / 2.) + 2. * K0 + 0.01;
0313 _Keq[i][4] = (_sums[11] / 2.) + K0 + 0.01;
0314
0315 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_sums[4]), 3.))) + int((double(_sums[4]) / 3.));
0316
0317 _Xeq[i][0] = (-_sums[10] + 5. * K0) / 4.;
0318 _Xeq[i][1] = (_difs[4] + 3. * K0) / 4.;
0319 }
0320
0321 i = 9;
0322 if (PTMS[i]) {
0323 _Keq[i][0] = (_sums[1]);
0324 _Keq[i][1] = _difs[10] + 2. * K0;
0325 _Keq[i][2] = _difs[20] + 2. * K0;
0326 _Keq[i][3] = (_sums[3] / 2.) + K0 + 0.01;
0327 _Keq[i][4] = (_difs[11] / 2.) + 2. * K0 + 0.01;
0328
0329 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_sums[4]), 3.))) + int((double(_sums[4]) / 3.));
0330
0331 _Xeq[i][0] = (_sums[10] + K0) / 4.;
0332 _Xeq[i][1] = (_difs[4] + 3. * K0) / 4.;
0333 }
0334
0335 i = 10;
0336 if (PTMS[i]) {
0337 _Keq[i][0] = -_difs[9];
0338 _Keq[i][1] = -_sums[5] + 2. * K0;
0339 _Keq[i][2] = _sums[6];
0340 _Keq[i][3] = -(_sums[7] / 2.) + K0 + 0.01;
0341 _Keq[i][4] = (_difs[8] / 2.) + K0 + 0.01;
0342
0343 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_difs[12]), 3.))) + int((double(-_difs[12]) / 3.));
0344
0345 _Xeq[i][0] = (_difs[5] + K0) / 4.;
0346 _Xeq[i][1] = (_sums[12] + K0) / 4.;
0347 }
0348
0349 i = 11;
0350 if (PTMS[i]) {
0351 _Keq[i][0] = -_sums[9] + 2. * K0;
0352 _Keq[i][1] = _difs[5];
0353 _Keq[i][2] = _sums[6];
0354 _Keq[i][3] = -(_sums[7] / 2.) + K0 + 0.01;
0355 _Keq[i][4] = (_sums[8] / 2. + 0.01);
0356
0357 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_difs[12]), 3.))) + int((double(-_difs[12]) / 3.));
0358
0359 _Xeq[i][0] = (-_sums[5] + 3. * K0) / 4.;
0360 _Xeq[i][1] = (_sums[12] + K0) / 4.;
0361 }
0362
0363 i = 12;
0364 if (PTMS[i]) {
0365 _Keq[i][0] = _difs[9];
0366 _Keq[i][1] = _difs[5];
0367 _Keq[i][2] = (_sums[6]);
0368 _Keq[i][3] = (_difs[7] / 2.) + 0.01;
0369 _Keq[i][4] = (_sums[8] / 2.) + 0.01;
0370 _Keq[i][5] = (_sums[12] / 3.) + 0.51;
0371
0372 _Xeq[i][0] = (-_sums[5] + 3. * K0) / 4.;
0373 _Xeq[i][1] = (-_difs[12] + 3. * K0) / 4.;
0374 }
0375
0376 i = 13;
0377 if (PTMS[i]) {
0378 _Keq[i][0] = -_sums[9] + 2. * K0;
0379 _Keq[i][1] = _sums[10];
0380 _Keq[i][2] = -_difs[13];
0381 _Keq[i][3] = (_difs[16] / 2.) + K0 + 0.01;
0382 _Keq[i][4] = (_sums[8] / 2. + 0.01);
0383
0384 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_difs[12]), 3.))) + int((double(-_difs[12]) / 3.));
0385
0386 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0387 _Xeq[i][1] = (_sums[12] + K0) / 4.;
0388 }
0389
0390 i = 14;
0391 if (PTMS[i]) {
0392 _Keq[i][0] = -_sums[9] + 2. * K0;
0393 _Keq[i][1] = _sums[10];
0394 _Keq[i][2] = -_sums[13] + 2. * K0;
0395 _Keq[i][3] = (_difs[16] / 2.) + K0 + 0.01;
0396 _Keq[i][4] = -(_difs[8] / 2.) + K0 + 0.01;
0397
0398 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(-_sums[12]), 3.))) + int((double(-_sums[12]) / 3.));
0399
0400 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0401 _Xeq[i][1] = (_difs[12] + 3. * K0) / 4.;
0402 }
0403
0404 i = 15;
0405 if (PTMS[i]) {
0406 _Keq[i][0] = _difs[9];
0407 _Keq[i][1] = (_sums[10]);
0408 _Keq[i][2] = -_difs[13];
0409 _Keq[i][3] = (_sums[16] / 2. + 0.01);
0410 _Keq[i][4] = (_sums[8] / 2. + 0.01);
0411 _Keq[i][5] = (_sums[12] / 3.) + 0.51;
0412
0413 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0414 _Xeq[i][1] = (-_difs[12] + 3. * K0) / 4.;
0415 }
0416
0417 i = 16;
0418 if (PTMS[i]) {
0419 _Keq[i][0] = _difs[9];
0420 _Keq[i][1] = _sums[10];
0421 _Keq[i][2] = -_sums[13] + 2. * K0;
0422 _Keq[i][3] = (_sums[16] / 2. + 0.01);
0423 _Keq[i][4] = -(_difs[8] / 2.) + K0 + 0.01;
0424
0425 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(_difs[12]), 3.))) + int((double(_difs[12]) / 3.));
0426
0427 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0428 _Xeq[i][1] = (-_sums[12] + 5. * K0) / 4.;
0429 }
0430
0431 i = 17;
0432 if (PTMS[i]) {
0433 _Keq[i][0] = -_sums[9] + 2. * K0;
0434 _Keq[i][1] = _sums[10];
0435 _Keq[i][2] = _difs[20] + 2. * K0;
0436 _Keq[i][3] = (_difs[16] / 2.) + K0 + 0.01;
0437 _Keq[i][4] = (_sums[11] / 2.) + K0 + 0.01;
0438
0439 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_difs[18]), 3.))) + int((double(_difs[18]) / 3.));
0440
0441 _Xeq[i][0] = (_difs[10] + 3. * K0) / 4.;
0442 _Xeq[i][1] = (_sums[18] + 3. * K0) / 4.;
0443 }
0444
0445 i = 18;
0446 if (PTMS[i]) {
0447 _Keq[i][0] = -_sums[9] + 2. * K0;
0448 _Keq[i][1] = -_difs[10] + 2. * K0;
0449 _Keq[i][2] = _sums[20];
0450 _Keq[i][3] = -(_sums[16] / 2.) + 2. * K0 + 0.01;
0451 _Keq[i][4] = (_sums[11] / 2.) + K0 + 0.01;
0452
0453 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_difs[18]), 3.))) + int((double(_difs[18]) / 3.));
0454
0455 _Xeq[i][0] = (-_sums[10] + 5. * K0) / 4.;
0456 _Xeq[i][1] = (_sums[18] + 3. * K0) / 4.;
0457 }
0458
0459 i = 19;
0460 if (PTMS[i]) {
0461 _Keq[i][0] = -(_sums[9]) + 2. * K0;
0462 _Keq[i][1] = -_difs[10] + 2. * K0;
0463 _Keq[i][2] = -_difs[20] + 2. * K0;
0464 _Keq[i][3] = -(_sums[16] / 2.) + 2. * K0 + 0.01;
0465 _Keq[i][4] = -(_difs[11] / 2.) + 2. * K0 + 0.01;
0466
0467 _Keq[i][5] = ST2 + reSum23(0, int(fmod(double(-_sums[18]), 3.))) + int((double(-_sums[18]) / 3.));
0468
0469 _Xeq[i][0] = (-_sums[10] + 5. * K0) / 4.;
0470 _Xeq[i][1] = (-_difs[18] + 5. * K0) / 4.;
0471 }
0472
0473 i = 20;
0474 if (PTMS[i]) {
0475 _Keq[i][0] = _sums[17];
0476 _Keq[i][1] = -_difs[19];
0477 _Keq[i][2] = -_sums[13] + 2. * K0;
0478 _Keq[i][3] = (_sums[16] / 2. + 0.01);
0479 _Keq[i][4] = -(_sums[14] / 2.) + K0 + 0.01;
0480
0481 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(_difs[12]), 3.))) + int((double(_difs[12]) / 3.));
0482
0483 _Xeq[i][0] = (_sums[19] + 3. * K0) / 4.;
0484 _Xeq[i][1] = (-_sums[12] + 5. * K0) / 4.;
0485 }
0486
0487 i = 21;
0488 if (PTMS[i]) {
0489 _Keq[i][0] = _sums[17];
0490 _Keq[i][1] = -_sums[19] + 2. * K0;
0491 _Keq[i][2] = _difs[13];
0492 _Keq[i][3] = -(_difs[16] / 2.) + K0 + 0.01;
0493 _Keq[i][4] = -(_sums[14] / 2.) + K0 + 0.01;
0494
0495 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(_difs[12]), 3.))) + int((double(_difs[12]) / 3.));
0496
0497 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0498 _Xeq[i][1] = (-_sums[12] + 5. * K0) / 4.;
0499 }
0500
0501 i = 22;
0502 if (PTMS[i]) {
0503 _Keq[i][0] = (_sums[17]);
0504 _Keq[i][1] = -_difs[19];
0505 _Keq[i][2] = -_difs[13];
0506 _Keq[i][3] = (_sums[16] / 2. + 0.01);
0507 _Keq[i][4] = -(_difs[14] / 2.) + 0.01;
0508 _Keq[i][5] = (_sums[12] / 3.) + 0.51;
0509
0510 _Xeq[i][0] = (_sums[19] + 3. * K0) / 4.;
0511 _Xeq[i][1] = (-_difs[12] + 3. * K0) / 4.;
0512 }
0513
0514 i = 23;
0515 if (PTMS[i]) {
0516 _Keq[i][0] = -_difs[23];
0517 _Keq[i][1] = -_difs[19];
0518 _Keq[i][2] = -(_sums[13]) + 2. * K0;
0519 _Keq[i][3] = -(_difs[21] / 2.) + 0.01;
0520 _Keq[i][4] = -(_sums[14] / 2.) + K0 + 0.01;
0521
0522 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_sums[15]), 3.))) + int((double(-_sums[15]) / 3.));
0523
0524 _Xeq[i][0] = (_sums[19] + 3. * K0) / 4.;
0525 _Xeq[i][1] = (_difs[15] + 5. * K0) / 4.;
0526 }
0527
0528 i = 24;
0529 if (PTMS[i]) {
0530 _Keq[i][0] = -_difs[23];
0531 _Keq[i][1] = -(_sums[19]) + 2. * K0;
0532 _Keq[i][2] = _difs[13];
0533 _Keq[i][3] = -(_sums[21] / 2.) + K0 + 0.01;
0534 _Keq[i][4] = -(_sums[14] / 2.) + K0 + 0.01;
0535
0536 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_sums[15]), 3.))) + int((double(-_sums[15]) / 3.));
0537
0538 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0539 _Xeq[i][1] = (_difs[15] + 5. * K0) / 4.;
0540 }
0541
0542 i = 25;
0543 if (PTMS[i]) {
0544 _Keq[i][0] = -(_sums[23]) + 2. * K0;
0545 _Keq[i][1] = _difs[19];
0546 _Keq[i][2] = _difs[13];
0547 _Keq[i][3] = -(_sums[21] / 2.) + K0 + 0.01;
0548 _Keq[i][4] = (_difs[14] / 2.) + 0.01;
0549
0550 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_sums[15]), 3.))) + int((double(-_sums[15]) / 3.));
0551
0552 _Xeq[i][0] = (-_sums[19] + 7. * K0) / 4.;
0553 _Xeq[i][1] = (_difs[15] + 5. * K0) / 4.;
0554 }
0555
0556 i = 26;
0557 if (PTMS[i]) {
0558 _Keq[i][0] = _difs[17] + 2. * K0;
0559 _Keq[i][1] = -_sums[19] + 2. * K0;
0560 _Keq[i][2] = _sums[20];
0561 _Keq[i][3] = -(_sums[16] / 2.) + 2. * K0 + 0.01;
0562 _Keq[i][4] = (_difs[22] / 2.) + K0 + 0.01;
0563
0564 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(_difs[18]), 3.))) + int((double(_difs[18]) / 3.));
0565
0566 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0567 _Xeq[i][1] = (_sums[18] + 3. * K0) / 4.;
0568 }
0569
0570 i = 27;
0571 if (PTMS[i]) {
0572 _Keq[i][0] = _difs[17] + 2. * K0;
0573 _Keq[i][1] = -(_sums[19]) + 2. * K0;
0574 _Keq[i][2] = -_difs[20] + 2. * K0;
0575 _Keq[i][3] = -(_sums[16] / 2.) + 2. * K0 + 0.01;
0576 _Keq[i][4] = -(_sums[22] / 2.) + 2. * K0 + 0.01;
0577
0578 _Keq[i][5] = ST2 + reSum23(0, int(fmod(double(-_sums[18]), 3.))) + int((double(-_sums[18]) / 3.));
0579
0580 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0581 _Xeq[i][1] = (-_difs[18] + 5. * K0) / 4.;
0582 }
0583
0584 i = 28;
0585 if (PTMS[i]) {
0586 _Keq[i][0] = _sums[17];
0587 _Keq[i][1] = -_sums[19] + 2. * K0;
0588 _Keq[i][2] = _sums[20];
0589 _Keq[i][3] = -(_difs[16] / 2.) + K0 + 0.01;
0590 _Keq[i][4] = (_difs[22] / 2.) + K0 + 0.01;
0591
0592 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(_sums[18]), 3.))) + int((double(_sums[18]) / 3.));
0593
0594 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0595 _Xeq[i][1] = (_difs[18] + 5. * K0) / 4.;
0596 }
0597
0598 i = 29;
0599 if (PTMS[i]) {
0600 _Keq[i][0] = _sums[17];
0601 _Keq[i][1] = -_sums[19] + 2. * K0;
0602 _Keq[i][2] = -_difs[20] + 2. * K0;
0603 _Keq[i][3] = -(_difs[16] / 2.) + K0 + 0.01;
0604 _Keq[i][4] = -(_sums[22] / 2.) + 2. * K0 + 0.01;
0605
0606 _Keq[i][5] = ST43 + reSum(RE43, int(fmod(double(-_difs[18]), 3.))) + int((double(-_difs[18]) / 3.));
0607
0608 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0609 _Xeq[i][1] = (-_sums[18] + 7. * K0) / 4.;
0610 }
0611
0612 i = 30;
0613 if (PTMS[i]) {
0614 _Keq[i][0] = -_difs[23];
0615 _Keq[i][1] = -_sums[19] + 2. * K0;
0616 _Keq[i][2] = _sums[20];
0617 _Keq[i][3] = -(_sums[21] / 2.) + K0 + 0.01;
0618 _Keq[i][4] = (_difs[22] / 2.) + K0 + 0.01;
0619
0620 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_difs[24]), 3.))) + int((double(-_difs[24]) / 3.));
0621
0622 _Xeq[i][0] = (_difs[19] + 5. * K0) / 4.;
0623 _Xeq[i][1] = (_sums[24] + 5. * K0) / 4.;
0624 }
0625
0626 i = 31;
0627 if (PTMS[i]) {
0628 _Keq[i][0] = -_sums[23] + 2. * K0;
0629 _Keq[i][1] = _difs[19];
0630 _Keq[i][2] = _sums[20];
0631 _Keq[i][3] = -(_sums[21] / 2.) + K0 + 0.01;
0632 _Keq[i][4] = (_sums[22] / 2.) + 0.01;
0633
0634 _Keq[i][5] = ST23 + reSum23(RE23, int(fmod(double(-_difs[24]), 3.))) + int((double(-_difs[24]) / 3.));
0635
0636 _Xeq[i][0] = (-_sums[19] + 7. * K0) / 4.;
0637 _Xeq[i][1] = (_sums[24] + 5. * K0) / 4.;
0638 }
0639
0640
0641 if (config()->debug() > 3) {
0642 cout << endl << " Step: " << currentStep() << endl;
0643 for (i = 0; i < 32; i++) {
0644 if (PTMS[i]) {
0645 cout << "K Equation " << i << " --> ";
0646 int j = 0;
0647 for (j = 0; j < 6; j++) {
0648 cout << _Keq[i][j] << " ";
0649 }
0650 cout << endl;
0651 cout << "X Equation " << i << " --> ";
0652 for (j = 0; j < 2; j++) {
0653 cout << _Xeq[i][j] << " ";
0654 }
0655 if (i == 0) {
0656 cout << _XeqAB_patt0 << " " << _XeqCD_patt0 << " ";
0657 cout << _XeqAC_patt0 << " " << _XeqBD_patt0 << " ";
0658 }
0659 cout << endl;
0660 }
0661 }
0662 }
0663
0664 }