13 std::shared_ptr<GlobalCoordsObtainer> &globalcoordsobtainer)
15 debug_(pset.getUntrackedParameter<bool>(
"debug")),
16 chi2Th_(pset.getUntrackedParameter<double>(
"chi2Th")),
17 tanPhiTh_(pset.getUntrackedParameter<double>(
"tanPhiTh")),
18 tanPhiThw2max_(pset.getUntrackedParameter<double>(
"tanPhiThw2max")),
19 tanPhiThw2min_(pset.getUntrackedParameter<double>(
"tanPhiThw2min")),
20 tanPhiThw1max_(pset.getUntrackedParameter<double>(
"tanPhiThw1max")),
21 tanPhiThw1min_(pset.getUntrackedParameter<double>(
"tanPhiThw1min")),
22 tanPhiThw0_(pset.getUntrackedParameter<double>(
"tanPhiThw0")),
25 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"MuonPathAnalyzer: constructor";
38 while (ifin3.good()) {
39 ifin3 >> rawId >>
shift;
52 while (ifin4.good()) {
53 ifin4 >> rawId >>
shift;
60 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"chosen sl must be 1,3 or 4(both superlayers)";
70 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"MuonPathAnalyzer: destructor";
78 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"MuonPathAnalyticAnalyzer::initialiase";
88 std::vector<metaPrimitive> &metaPrimitives) {
90 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"MuonPathAnalyticAnalyzer: run";
93 for (
auto &muonpath : muonpaths) {
94 analyze(muonpath, metaPrimitives);
100 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"MuonPathAnalyzer: finish";
109 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"DTp2:analyze \t\t\t\t starts";
112 if (inMPath->primitive(0)->tdcTimeStamp() != -1)
113 selected_Id = inMPath->primitive(0)->cameraId();
114 else if (inMPath->primitive(1)->tdcTimeStamp() != -1)
115 selected_Id = inMPath->primitive(1)->cameraId();
116 else if (inMPath->primitive(2)->tdcTimeStamp() != -1)
117 selected_Id = inMPath->primitive(2)->cameraId();
118 else if (inMPath->primitive(3)->tdcTimeStamp() != -1)
119 selected_Id = inMPath->primitive(3)->cameraId();
123 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"Building up MuonPathSLId from rawId in the Primitive";
126 LogDebug(
"MuonPathAnalyticAnalyzer") <<
"The MuonPathSLId is" << MuonPathSLId;
129 LogDebug(
"MuonPathAnalyticAnalyzer")
130 <<
"DTp2:analyze \t\t\t\t In analyze function checking if inMPath->isAnalyzable() " << inMPath->isAnalyzable();
135 auto mPath = std::make_shared<MuonPath>(inMPath);
136 mPath->setQuality(
NOPATH);
138 int wi[4],
wires[4], t0s[4], valids[4];
141 if (mPath->primitive(
j)->isValidTime()) {
142 wi[
j] = mPath->primitive(
j)->channelId();
143 wires[
j] = mPath->primitive(
j)->channelId();
144 t0s[
j] = mPath->primitive(
j)->tdcTimeStamp();
164 int cell_horiz_layout[4];
166 cell_horiz_layout[lay] = (wi[lay] - wi[0]) * 2;
168 cell_horiz_layout[lay]--;
175 int coarse_pos = (wi[
tmp] * 2 - cell_horiz_layout[
tmp]) * 21 *
std::pow(2, 4);
180 xwire_mm[lay] = 21 * cell_horiz_layout[lay];
184 int valid_coarse_times[4], min_coarse_time = 999999, max_coarse_time = -999999;
186 if (valids[lay] == 1) {
188 if (valid_coarse_times[lay] < min_coarse_time) {
189 min_coarse_time = valid_coarse_times[lay];
191 if (valid_coarse_times[lay] > max_coarse_time) {
192 max_coarse_time = valid_coarse_times[lay];
195 valid_coarse_times[lay] = -1;
201 if (max_coarse_time - min_coarse_time >= 2)
203 int coarse_offset = max_coarse_time - 1;
205 int reduced_times[4];
211 std::vector<LATCOMB_CONSTANTS> latcomb_consts_arr;
213 if (elem.cell_valid_layout.valid[0] == valids[0] && elem.cell_valid_layout.valid[1] == valids[1] &&
214 elem.cell_valid_layout.valid[2] == valids[2] && elem.cell_valid_layout.valid[3] == valids[3] &&
215 elem.cell_valid_layout.cell_horiz_layout[0] == cell_horiz_layout[0] &&
216 elem.cell_valid_layout.cell_horiz_layout[1] == cell_horiz_layout[1] &&
217 elem.cell_valid_layout.cell_horiz_layout[2] == cell_horiz_layout[2] &&
218 elem.cell_valid_layout.cell_horiz_layout[3] == cell_horiz_layout[3])
219 for (
auto &ind_latcomb_consts : elem.latcomb_constants)
220 latcomb_consts_arr.push_back(ind_latcomb_consts);
221 for (
auto &latcomb_consts : latcomb_consts_arr) {
239 result += constants.
coeff[lay] * t0s[lay];
241 result = ((result * int(
std::pow(2, INCREASED_RES)) + constants.
add) * constants.
mult) >> DIV_SHR_BITS;
250 int reduced_times[4],
251 int cell_horiz_layout[4],
256 std::vector<cmsdt::metaPrimitive> &metaPrimitives) {
257 auto latcomb = latcomb_consts.
latcomb;
259 bool is_four_hit =
true;
266 if (((latcomb >> lay) & 1) != 0) {
284 int drift_time = reduced_times[lay] - time;
285 if (valid[lay] == 1 && (drift_time < 0 || drift_time >
MAXDRIFT))
289 int xdist = xwire_mm[lay] *
pow(2, 4) - (pos - coarse_pos) + lat_array[lay] * drift_dist;
290 xdist -= (3 - 2 * (3 - lay)) * slope_xhh;
292 if (valid[lay] == 0) {
296 chi2_mm2_p += res * res * 4;
304 double pos_f, slope_f, chi2_f;
305 DTWireId wireId(MuonPathSLId, 2, 1);
307 pos_f = double(pos) +
311 chi2_f = double(chi2_mm2_p) / (16. * 64. * 100.);
327 double phi_cmssw = -999.;
328 double phiB_cmssw = -999.;
332 double z3 = -1. * z1;
333 if (ChId.station() == 3
or ChId.station() == 4) {
344 int thisec = MuonPathSLId.
sector();
349 phi_cmssw = jm_x_cmssw_global.
phi() -
PHI_CONV * (thisec - 1);
350 double psi = atan(slope_f);
351 phiB_cmssw =
hasPosRF(MuonPathSLId.
wheel(), MuonPathSLId.
sector()) ? psi - phi_cmssw : -psi - phi_cmssw;
355 phi = global_coords[0];
356 phiB = global_coords[1];
367 if (MuonPathSLId.
wheel() == 0) {
375 double jm_y =
hasPosRF(MuonPathSLId.
wheel(), MuonPathSLId.
sector()) ? z_shift - pos_f : z_shift + pos_f;
383 double x_shift = wire1_in_sl.
x();
388 phiB_cmssw = slope_f;
395 lateralities[lay] = -1;
438 std::vector<int> binaryNum = {};
439 while (latcomb > 1) {
440 binaryNum.push_back(latcomb % 2);
441 latcomb = latcomb / 2;
443 binaryNum.push_back(latcomb);
444 while (binaryNum.size() < 4)
445 binaryNum.push_back(0);
454 {-6170, {1, 0, 0, -1}, 56936},
455 {239, {0, 1, 0, -1}, 4380},
456 {37, {0, 1, 0, -1}, 3559},
457 {776, {2, 3, 0, -1}, 16384},
461 {-30885, {-1, 3, 0, -2}, 18979},
462 {-1583769, {1, 0, 0, -1}, 2920},
463 {-6133, {1, 0, 0, -1}, 2372},
464 {-771, {2, 3, 0, 1}, 10923},
468 {-6170, {1, 0, 0, -1}, 56936},
469 {-1584008, {-1, 1, 0, 0}, 8759},
470 {-6170, {-1, 1, 0, 0}, 7117},
471 {-773, {-2, 3, 0, 1}, 32768},
475 {-6170, {-1, 0, 0, 1}, 56936},
476 {-1584008, {1, -1, 0, 0}, 8759},
477 {-6170, {1, -1, 0, 0}, 7117},
478 {775, {-2, 3, 0, 1}, 32768},
482 {-30885, {1, -3, 0, 2}, 18979},
483 {-1583769, {-1, 0, 0, 1}, 2920},
484 {-6133, {-1, 0, 0, 1}, 2372},
485 {777, {2, 3, 0, 1}, 10923},
489 {-6170, {-1, 0, 0, 1}, 56936},
490 {239, {0, -1, 0, 1}, 4380},
491 {37, {0, -1, 0, 1}, 3559},
492 {-772, {2, 3, 0, -1}, 16384},
499 {-6170, {0, 1, -1, 0}, 56936},
500 {1584248, {0, 0, 1, -1}, 8759},
501 {6206, {0, 0, 1, -1}, 7117},
502 {1, {0, 1, 2, -1}, 32768},
506 {-6170, {0, -1, 1, 0}, 56936},
507 {3168495, {0, 1, 0, -1}, 4380},
508 {12413, {0, 1, 0, -1}, 3559},
509 {2, {0, 1, 2, 1}, 16384},
513 {-6170, {0, 2, -1, -1}, 56936},
514 {1584248, {0, -1, 1, 0}, 8759},
515 {6206, {0, -1, 1, 0}, 7117},
516 {1, {0, -1, 2, 1}, 32768},
520 {-6170, {0, -2, 1, 1}, 56936},
521 {1584248, {0, 1, -1, 0}, 8759},
522 {6206, {0, 1, -1, 0}, 7117},
523 {1, {0, -1, 2, 1}, 32768},
527 {-6170, {0, 1, -1, 0}, 56936},
528 {3168495, {0, -1, 0, 1}, 4380},
529 {12413, {0, -1, 0, 1}, 3559},
530 {2, {0, 1, 2, 1}, 16384},
534 {-6170, {0, -1, 1, 0}, 56936},
535 {1584248, {0, 0, -1, 1}, 8759},
536 {6206, {0, 0, -1, 1}, 7117},
537 {1, {0, 1, 2, -1}, 32768},
544 {-18546, {1, 0, 0, -1}, 56936},
545 {-3168017, {0, 1, 0, -1}, 4380},
546 {-12339, {0, 1, 0, -1}, 3559},
547 {2, {2, 3, 0, -1}, 16384},
551 {-55637, {-1, 3, 0, -2}, 18979},
552 {-4752025, {1, 0, 0, -1}, 2920},
553 {-18509, {1, 0, 0, -1}, 2372},
554 {3, {2, 3, 0, 1}, 10923},
558 {-18546, {1, 0, 0, -1}, 56936},
559 {-1584008, {-1, 1, 0, 0}, 8759},
560 {-6170, {-1, 1, 0, 0}, 7117},
561 {1, {-2, 3, 0, 1}, 32768},
565 {-18546, {-1, 0, 0, 1}, 56936},
566 {-1584008, {1, -1, 0, 0}, 8759},
567 {-6170, {1, -1, 0, 0}, 7117},
568 {1, {-2, 3, 0, 1}, 32768},
572 {-55637, {1, -3, 0, 2}, 18979},
573 {-4752025, {-1, 0, 0, 1}, 2920},
574 {-18509, {-1, 0, 0, 1}, 2372},
575 {3, {2, 3, 0, 1}, 10923},
579 {-18546, {-1, 0, 0, 1}, 56936},
580 {-3168017, {0, -1, 0, 1}, 4380},
581 {-12339, {0, -1, 0, 1}, 3559},
582 {2, {2, 3, 0, -1}, 16384},
589 {6206, {0, 1, -1, 0}, 56936},
590 {1584248, {0, 0, 1, -1}, 8759},
591 {6206, {0, 0, 1, -1}, 7117},
592 {775, {0, 1, 2, -1}, 32768},
596 {6206, {0, -1, 1, 0}, 56936},
597 {239, {0, 1, 0, -1}, 4380},
598 {37, {0, 1, 0, -1}, 3559},
599 {-772, {0, 1, 2, 1}, 16384},
603 {18582, {0, 2, -1, -1}, 56936},
604 {-1584008, {0, -1, 1, 0}, 8759},
605 {-6170, {0, -1, 1, 0}, 7117},
606 {-773, {0, -1, 2, 1}, 32768},
610 {18582, {0, -2, 1, 1}, 56936},
611 {-1584008, {0, 1, -1, 0}, 8759},
612 {-6170, {0, 1, -1, 0}, 7117},
613 {775, {0, -1, 2, 1}, 32768},
617 {6206, {0, 1, -1, 0}, 56936},
618 {239, {0, -1, 0, 1}, 4380},
619 {37, {0, -1, 0, 1}, 3559},
620 {776, {0, 1, 2, 1}, 16384},
624 {6206, {0, -1, 1, 0}, 56936},
625 {1584248, {0, 0, -1, 1}, 8759},
626 {6206, {0, 0, -1, 1}, 7117},
627 {-773, {0, 1, 2, -1}, 32768},
634 {18582, {1, 1, -2, 0}, 56936},
635 {1584248, {0, 1, -1, 0}, 8759},
636 {6206, {0, 1, -1, 0}, 7117},
637 {1, {1, 2, -1, 0}, 32768},
641 {18582, {0, 1, -1, 0}, 56936},
642 {3168495, {1, 0, -1, 0}, 4380},
643 {12413, {1, 0, -1, 0}, 3559},
644 {2, {1, 2, 1, 0}, 16384},
648 {18582, {0, 1, -1, 0}, 56936},
649 {1584248, {-1, 1, 0, 0}, 8759},
650 {6206, {-1, 1, 0, 0}, 7117},
651 {1, {-1, 2, 1, 0}, 32768},
655 {18582, {0, -1, 1, 0}, 56936},
656 {1584248, {1, -1, 0, 0}, 8759},
657 {6206, {1, -1, 0, 0}, 7117},
658 {1, {-1, 2, 1, 0}, 32768},
662 {18582, {0, -1, 1, 0}, 56936},
663 {3168495, {-1, 0, 1, 0}, 4380},
664 {12413, {-1, 0, 1, 0}, 3559},
665 {2, {1, 2, 1, 0}, 16384},
669 {18582, {-1, -1, 2, 0}, 56936},
670 {1584248, {0, -1, 1, 0}, 8759},
671 {6206, {0, -1, 1, 0}, 7117},
672 {1, {1, 2, -1, 0}, 32768},
679 {-6170, {1, 0, 0, -1}, 56936},
680 {-1584008, {0, 0, 1, -1}, 8759},
681 {-6170, {0, 0, 1, -1}, 7117},
682 {-773, {1, 0, 3, -2}, 32768},
686 {-6133, {-2, 0, 3, -1}, 18979},
687 {-1583769, {1, 0, 0, -1}, 2920},
688 {-6133, {1, 0, 0, -1}, 2372},
689 {777, {1, 0, 3, 2}, 10923},
693 {-6170, {1, 0, 0, -1}, 56936},
694 {239, {-1, 0, 1, 0}, 4380},
695 {37, {-1, 0, 1, 0}, 3559},
696 {776, {-1, 0, 3, 2}, 16384},
700 {-6170, {-1, 0, 0, 1}, 56936},
701 {239, {1, 0, -1, 0}, 4380},
702 {37, {1, 0, -1, 0}, 3559},
703 {-772, {-1, 0, 3, 2}, 16384},
707 {-6133, {2, 0, -3, 1}, 18979},
708 {-1583769, {-1, 0, 0, 1}, 2920},
709 {-6133, {-1, 0, 0, 1}, 2372},
710 {-771, {1, 0, 3, 2}, 10923},
714 {-6170, {-1, 0, 0, 1}, 56936},
715 {-1584008, {0, 0, -1, 1}, 8759},
716 {-6170, {0, 0, -1, 1}, 7117},
717 {775, {1, 0, 3, -2}, 32768},
724 {-18546, {1, 1, -2, 0}, 56936},
725 {-1584008, {0, 1, -1, 0}, 8759},
726 {-6170, {0, 1, -1, 0}, 7117},
727 {1, {1, 2, -1, 0}, 32768},
731 {-18546, {0, 1, -1, 0}, 56936},
732 {-3168017, {1, 0, -1, 0}, 4380},
733 {-12339, {1, 0, -1, 0}, 3559},
734 {2, {1, 2, 1, 0}, 16384},
738 {-18546, {0, 1, -1, 0}, 56936},
739 {-1584008, {-1, 1, 0, 0}, 8759},
740 {-6170, {-1, 1, 0, 0}, 7117},
741 {1, {-1, 2, 1, 0}, 32768},
745 {-18546, {0, -1, 1, 0}, 56936},
746 {-1584008, {1, -1, 0, 0}, 8759},
747 {-6170, {1, -1, 0, 0}, 7117},
748 {1, {-1, 2, 1, 0}, 32768},
752 {-18546, {0, -1, 1, 0}, 56936},
753 {-3168017, {-1, 0, 1, 0}, 4380},
754 {-12339, {-1, 0, 1, 0}, 3559},
755 {2, {1, 2, 1, 0}, 16384},
759 {-18546, {-1, -1, 2, 0}, 56936},
760 {-1584008, {0, -1, 1, 0}, 8759},
761 {-6170, {0, -1, 1, 0}, 7117},
762 {1, {1, 2, -1, 0}, 32768},
769 {-18546, {0, 1, -1, 0}, 56936},
770 {-1584008, {0, 0, 1, -1}, 8759},
771 {-6170, {0, 0, 1, -1}, 7117},
772 {1, {0, 1, 2, -1}, 32768},
776 {-18546, {0, -1, 1, 0}, 56936},
777 {-3168017, {0, 1, 0, -1}, 4380},
778 {-12339, {0, 1, 0, -1}, 3559},
779 {2, {0, 1, 2, 1}, 16384},
783 {-18546, {0, 2, -1, -1}, 56936},
784 {-1584008, {0, -1, 1, 0}, 8759},
785 {-6170, {0, -1, 1, 0}, 7117},
786 {1, {0, -1, 2, 1}, 32768},
790 {-18546, {0, -2, 1, 1}, 56936},
791 {-1584008, {0, 1, -1, 0}, 8759},
792 {-6170, {0, 1, -1, 0}, 7117},
793 {1, {0, -1, 2, 1}, 32768},
797 {-18546, {0, 1, -1, 0}, 56936},
798 {-3168017, {0, -1, 0, 1}, 4380},
799 {-12339, {0, -1, 0, 1}, 3559},
800 {2, {0, 1, 2, 1}, 16384},
804 {-18546, {0, -1, 1, 0}, 56936},
805 {-1584008, {0, 0, -1, 1}, 8759},
806 {-6170, {0, 0, -1, 1}, 7117},
807 {1, {0, 1, 2, -1}, 32768},
814 {-18546, {0, 1, -1, 0}, 56936},
815 {1584248, {0, 0, 1, -1}, 8759},
816 {6206, {0, 0, 1, -1}, 7117},
817 {775, {0, 1, 2, -1}, 32768},
821 {-18546, {0, -1, 1, 0}, 56936},
822 {239, {0, 1, 0, -1}, 4380},
823 {37, {0, 1, 0, -1}, 3559},
824 {-772, {0, 1, 2, 1}, 16384},
828 {-6170, {0, 2, -1, -1}, 56936},
829 {-1584008, {0, -1, 1, 0}, 8759},
830 {-6170, {0, -1, 1, 0}, 7117},
831 {-773, {0, -1, 2, 1}, 32768},
835 {-6170, {0, -2, 1, 1}, 56936},
836 {-1584008, {0, 1, -1, 0}, 8759},
837 {-6170, {0, 1, -1, 0}, 7117},
838 {775, {0, -1, 2, 1}, 32768},
842 {-18546, {0, 1, -1, 0}, 56936},
843 {239, {0, -1, 0, 1}, 4380},
844 {37, {0, -1, 0, 1}, 3559},
845 {776, {0, 1, 2, 1}, 16384},
849 {-18546, {0, -1, 1, 0}, 56936},
850 {1584248, {0, 0, -1, 1}, 8759},
851 {6206, {0, 0, -1, 1}, 7117},
852 {-773, {0, 1, 2, -1}, 32768},
859 {-18546, {1, 1, -2, 0}, 56936},
860 {-1584008, {0, 1, -1, 0}, 8759},
861 {-6170, {0, 1, -1, 0}, 7117},
862 {1, {1, 2, -1, 0}, 32768},
866 {-18546, {0, 1, -1, 0}, 56936},
867 {-3168017, {1, 0, -1, 0}, 4380},
868 {-12339, {1, 0, -1, 0}, 3559},
869 {2, {1, 2, 1, 0}, 16384},
873 {-18546, {0, 1, -1, 0}, 56936},
874 {-1584008, {-1, 1, 0, 0}, 8759},
875 {-6170, {-1, 1, 0, 0}, 7117},
876 {1, {-1, 2, 1, 0}, 32768},
880 {-18546, {0, -1, 1, 0}, 56936},
881 {-1584008, {1, -1, 0, 0}, 8759},
882 {-6170, {1, -1, 0, 0}, 7117},
883 {1, {-1, 2, 1, 0}, 32768},
887 {-18546, {0, -1, 1, 0}, 56936},
888 {-3168017, {-1, 0, 1, 0}, 4380},
889 {-12339, {-1, 0, 1, 0}, 3559},
890 {2, {1, 2, 1, 0}, 16384},
894 {-18546, {-1, -1, 2, 0}, 56936},
895 {-1584008, {0, -1, 1, 0}, 8759},
896 {-6170, {0, -1, 1, 0}, 7117},
897 {1, {1, 2, -1, 0}, 32768},
904 {18582, {0, 1, -1, 0}, 56936},
905 {-1584008, {0, 0, 1, -1}, 8759},
906 {-6170, {0, 0, 1, -1}, 7117},
907 {-773, {0, 1, 2, -1}, 32768},
911 {18582, {0, -1, 1, 0}, 56936},
912 {239, {0, 1, 0, -1}, 4380},
913 {37, {0, 1, 0, -1}, 3559},
914 {776, {0, 1, 2, 1}, 16384},
918 {6206, {0, 2, -1, -1}, 56936},
919 {1584248, {0, -1, 1, 0}, 8759},
920 {6206, {0, -1, 1, 0}, 7117},
921 {775, {0, -1, 2, 1}, 32768},
925 {6206, {0, -2, 1, 1}, 56936},
926 {1584248, {0, 1, -1, 0}, 8759},
927 {6206, {0, 1, -1, 0}, 7117},
928 {-773, {0, -1, 2, 1}, 32768},
932 {18582, {0, 1, -1, 0}, 56936},
933 {239, {0, -1, 0, 1}, 4380},
934 {37, {0, -1, 0, 1}, 3559},
935 {-772, {0, 1, 2, 1}, 16384},
939 {18582, {0, -1, 1, 0}, 56936},
940 {-1584008, {0, 0, -1, 1}, 8759},
941 {-6170, {0, 0, -1, 1}, 7117},
942 {775, {0, 1, 2, -1}, 32768},
949 {-222510, {-6, -5, 14, -3}, 4067},
950 {-6334836, {4, 1, 0, -5}, 626},
951 {-24494, {4, 1, 0, -5}, 508},
952 {-3087, {1, 2, 7, 4}, 4681},
956 {-24715, {-1, 1, 1, -1}, 28468},
957 {-6335315, {3, -1, 1, -3}, 876},
958 {-24568, {3, -1, 1, -3}, 712},
959 {-772, {1, 1, 1, 1}, 16384},
963 {-37018, {5, 2, -1, -6}, 9489},
964 {-3168017, {-1, 0, 1, 0}, 4380},
965 {-12339, {-1, 0, 1, 0}, 3559},
966 {-2318, {-2, 1, 4, 3}, 10923},
970 {0, {0, 0, 0, 0}, 0},
971 {0, {0, 0, 0, 0}, 0},
972 {0, {0, 0, 0, 0}, 0},
973 {0, {0, 0, 0, 0}, 0},
977 {0, {0, 0, 0, 0}, 0},
978 {0, {0, 0, 0, 0}, 0},
979 {0, {0, 0, 0, 0}, 0},
980 {0, {0, 0, 0, 0}, 0},
984 {0, {0, 0, 0, 0}, 0},
985 {0, {0, 0, 0, 0}, 0},
986 {0, {0, 0, 0, 0}, 0},
987 {0, {0, 0, 0, 0}, 0},
994 {18582, {0, 1, -1, 0}, 56936},
995 {1584248, {0, 0, 1, -1}, 8759},
996 {6206, {0, 0, 1, -1}, 7117},
997 {1, {0, 1, 2, -1}, 32768},
1001 {18582, {0, -1, 1, 0}, 56936},
1002 {3168495, {0, 1, 0, -1}, 4380},
1003 {12413, {0, 1, 0, -1}, 3559},
1004 {2, {0, 1, 2, 1}, 16384},
1008 {18582, {0, 2, -1, -1}, 56936},
1009 {1584248, {0, -1, 1, 0}, 8759},
1010 {6206, {0, -1, 1, 0}, 7117},
1011 {1, {0, -1, 2, 1}, 32768},
1015 {18582, {0, -2, 1, 1}, 56936},
1016 {1584248, {0, 1, -1, 0}, 8759},
1017 {6206, {0, 1, -1, 0}, 7117},
1018 {1, {0, -1, 2, 1}, 32768},
1022 {18582, {0, 1, -1, 0}, 56936},
1023 {3168495, {0, -1, 0, 1}, 4380},
1024 {12413, {0, -1, 0, 1}, 3559},
1025 {2, {0, 1, 2, 1}, 16384},
1029 {18582, {0, -1, 1, 0}, 56936},
1030 {1584248, {0, 0, -1, 1}, 8759},
1031 {6206, {0, 0, -1, 1}, 7117},
1032 {1, {0, 1, 2, -1}, 32768},
1039 {-37018, {6, 1, -2, -5}, 9489},
1040 {-3168017, {0, 1, 0, -1}, 4380},
1041 {-12339, {0, 1, 0, -1}, 3559},
1042 {-2318, {3, 4, 1, -2}, 10923},
1046 {37, {1, -1, -1, 1}, 28468},
1047 {-6335315, {-3, 1, -1, 3}, 876},
1048 {-24568, {-3, 1, -1, 3}, 712},
1049 {-772, {1, 1, 1, 1}, 16384},
1053 {49762, {3, -14, 5, 6}, 4067},
1054 {-6334836, {-5, 0, 1, 4}, 626},
1055 {-24494, {-5, 0, 1, 4}, 508},
1056 {-3087, {4, 7, 2, 1}, 4681},
1060 {0, {0, 0, 0, 0}, 0},
1061 {0, {0, 0, 0, 0}, 0},
1062 {0, {0, 0, 0, 0}, 0},
1063 {0, {0, 0, 0, 0}, 0},
1067 {0, {0, 0, 0, 0}, 0},
1068 {0, {0, 0, 0, 0}, 0},
1069 {0, {0, 0, 0, 0}, 0},
1070 {0, {0, 0, 0, 0}, 0},
1074 {0, {0, 0, 0, 0}, 0},
1075 {0, {0, 0, 0, 0}, 0},
1076 {0, {0, 0, 0, 0}, 0},
1077 {0, {0, 0, 0, 0}, 0},
1084 {-6170, {1, 0, 0, -1}, 56936},
1085 {239, {0, 1, 0, -1}, 4380},
1086 {37, {0, 1, 0, -1}, 3559},
1087 {776, {2, 3, 0, -1}, 16384},
1091 {-30885, {-1, 3, 0, -2}, 18979},
1092 {-1583769, {1, 0, 0, -1}, 2920},
1093 {-6133, {1, 0, 0, -1}, 2372},
1094 {-771, {2, 3, 0, 1}, 10923},
1098 {-6170, {1, 0, 0, -1}, 56936},
1099 {-1584008, {-1, 1, 0, 0}, 8759},
1100 {-6170, {-1, 1, 0, 0}, 7117},
1101 {-773, {-2, 3, 0, 1}, 32768},
1105 {-6170, {-1, 0, 0, 1}, 56936},
1106 {-1584008, {1, -1, 0, 0}, 8759},
1107 {-6170, {1, -1, 0, 0}, 7117},
1108 {775, {-2, 3, 0, 1}, 32768},
1112 {-30885, {1, -3, 0, 2}, 18979},
1113 {-1583769, {-1, 0, 0, 1}, 2920},
1114 {-6133, {-1, 0, 0, 1}, 2372},
1115 {777, {2, 3, 0, 1}, 10923},
1119 {-6170, {-1, 0, 0, 1}, 56936},
1120 {239, {0, -1, 0, 1}, 4380},
1121 {37, {0, -1, 0, 1}, 3559},
1122 {-772, {2, 3, 0, -1}, 16384},
1129 {18582, {1, 0, 0, -1}, 56936},
1130 {3168495, {0, 1, 0, -1}, 4380},
1131 {12413, {0, 1, 0, -1}, 3559},
1132 {2, {2, 3, 0, -1}, 16384},
1136 {55747, {-1, 3, 0, -2}, 18979},
1137 {4752743, {1, 0, 0, -1}, 2920},
1138 {18619, {1, 0, 0, -1}, 2372},
1139 {3, {2, 3, 0, 1}, 10923},
1143 {18582, {1, 0, 0, -1}, 56936},
1144 {1584248, {-1, 1, 0, 0}, 8759},
1145 {6206, {-1, 1, 0, 0}, 7117},
1146 {1, {-2, 3, 0, 1}, 32768},
1150 {18582, {-1, 0, 0, 1}, 56936},
1151 {1584248, {1, -1, 0, 0}, 8759},
1152 {6206, {1, -1, 0, 0}, 7117},
1153 {1, {-2, 3, 0, 1}, 32768},
1157 {55747, {1, -3, 0, 2}, 18979},
1158 {4752743, {-1, 0, 0, 1}, 2920},
1159 {18619, {-1, 0, 0, 1}, 2372},
1160 {3, {2, 3, 0, 1}, 10923},
1164 {18582, {-1, 0, 0, 1}, 56936},
1165 {3168495, {0, -1, 0, 1}, 4380},
1166 {12413, {0, -1, 0, 1}, 3559},
1167 {2, {2, 3, 0, -1}, 16384},
1174 {6206, {1, 1, -2, 0}, 56936},
1175 {1584248, {0, 1, -1, 0}, 8759},
1176 {6206, {0, 1, -1, 0}, 7117},
1177 {775, {1, 2, -1, 0}, 32768},
1181 {-6170, {0, 1, -1, 0}, 56936},
1182 {239, {1, 0, -1, 0}, 4380},
1183 {37, {1, 0, -1, 0}, 3559},
1184 {-772, {1, 2, 1, 0}, 16384},
1188 {-6170, {0, 1, -1, 0}, 56936},
1189 {-1584008, {-1, 1, 0, 0}, 8759},
1190 {-6170, {-1, 1, 0, 0}, 7117},
1191 {-773, {-1, 2, 1, 0}, 32768},
1195 {-6170, {0, -1, 1, 0}, 56936},
1196 {-1584008, {1, -1, 0, 0}, 8759},
1197 {-6170, {1, -1, 0, 0}, 7117},
1198 {775, {-1, 2, 1, 0}, 32768},
1202 {-6170, {0, -1, 1, 0}, 56936},
1203 {239, {-1, 0, 1, 0}, 4380},
1204 {37, {-1, 0, 1, 0}, 3559},
1205 {776, {1, 2, 1, 0}, 16384},
1209 {6206, {-1, -1, 2, 0}, 56936},
1210 {1584248, {0, -1, 1, 0}, 8759},
1211 {6206, {0, -1, 1, 0}, 7117},
1212 {-773, {1, 2, -1, 0}, 32768},
1219 {6206, {0, 1, -1, 0}, 56936},
1220 {-1584008, {0, 0, 1, -1}, 8759},
1221 {-6170, {0, 0, 1, -1}, 7117},
1222 {1, {0, 1, 2, -1}, 32768},
1226 {6206, {0, -1, 1, 0}, 56936},
1227 {-3168017, {0, 1, 0, -1}, 4380},
1228 {-12339, {0, 1, 0, -1}, 3559},
1229 {2, {0, 1, 2, 1}, 16384},
1233 {6206, {0, 2, -1, -1}, 56936},
1234 {-1584008, {0, -1, 1, 0}, 8759},
1235 {-6170, {0, -1, 1, 0}, 7117},
1236 {1, {0, -1, 2, 1}, 32768},
1240 {6206, {0, -2, 1, 1}, 56936},
1241 {-1584008, {0, 1, -1, 0}, 8759},
1242 {-6170, {0, 1, -1, 0}, 7117},
1243 {1, {0, -1, 2, 1}, 32768},
1247 {6206, {0, 1, -1, 0}, 56936},
1248 {-3168017, {0, -1, 0, 1}, 4380},
1249 {-12339, {0, -1, 0, 1}, 3559},
1250 {2, {0, 1, 2, 1}, 16384},
1254 {6206, {0, -1, 1, 0}, 56936},
1255 {-1584008, {0, 0, -1, 1}, 8759},
1256 {-6170, {0, 0, -1, 1}, 7117},
1257 {1, {0, 1, 2, -1}, 32768},
1264 {-123502, {-3, 14, -5, -6}, 4067},
1265 {-6334836, {5, 0, -1, -4}, 626},
1266 {-24494, {5, 0, -1, -4}, 508},
1267 {-2314, {4, 7, 2, 1}, 4681},
1271 {-12339, {-1, 1, -1, 1}, 28468},
1272 {479, {1, -1, -1, 1}, 2190},
1273 {74, {1, -1, -1, 1}, 1779},
1274 {-1543, {1, 3, 3, 1}, 8192},
1278 {-12339, {1, 1, -1, -1}, 28468},
1279 {-3168017, {-1, 1, 1, -1}, 4380},
1280 {-12339, {-1, 1, 1, -1}, 3559},
1281 {-1545, {-1, 3, 3, -1}, 16384},
1285 {-49246, {6, 5, -14, 3}, 4067},
1286 {-6334836, {-4, -1, 0, 5}, 626},
1287 {-24494, {-4, -1, 0, 5}, 508},
1288 {-2314, {1, 2, 7, 4}, 4681},
1292 {0, {0, 0, 0, 0}, 0},
1293 {0, {0, 0, 0, 0}, 0},
1294 {0, {0, 0, 0, 0}, 0},
1295 {0, {0, 0, 0, 0}, 0},
1299 {0, {0, 0, 0, 0}, 0},
1300 {0, {0, 0, 0, 0}, 0},
1301 {0, {0, 0, 0, 0}, 0},
1302 {0, {0, 0, 0, 0}, 0},
1309 {-6170, {0, 1, -1, 0}, 56936},
1310 {-1584008, {0, 0, 1, -1}, 8759},
1311 {-6170, {0, 0, 1, -1}, 7117},
1312 {-773, {0, 1, 2, -1}, 32768},
1316 {-6170, {0, -1, 1, 0}, 56936},
1317 {239, {0, 1, 0, -1}, 4380},
1318 {37, {0, 1, 0, -1}, 3559},
1319 {776, {0, 1, 2, 1}, 16384},
1323 {-18546, {0, 2, -1, -1}, 56936},
1324 {1584248, {0, -1, 1, 0}, 8759},
1325 {6206, {0, -1, 1, 0}, 7117},
1326 {775, {0, -1, 2, 1}, 32768},
1330 {-18546, {0, -2, 1, 1}, 56936},
1331 {1584248, {0, 1, -1, 0}, 8759},
1332 {6206, {0, 1, -1, 0}, 7117},
1333 {-773, {0, -1, 2, 1}, 32768},
1337 {-6170, {0, 1, -1, 0}, 56936},
1338 {239, {0, -1, 0, 1}, 4380},
1339 {37, {0, -1, 0, 1}, 3559},
1340 {-772, {0, 1, 2, 1}, 16384},
1344 {-6170, {0, -1, 1, 0}, 56936},
1345 {-1584008, {0, 0, -1, 1}, 8759},
1346 {-6170, {0, 0, -1, 1}, 7117},
1347 {775, {0, 1, 2, -1}, 32768},
1354 {111495, {-5, -2, 1, 6}, 9489},
1355 {3168495, {1, 0, -1, 0}, 4380},
1356 {12413, {1, 0, -1, 0}, 3559},
1357 {3, {-2, 1, 4, 3}, 10923},
1361 {37165, {-1, -1, 1, 1}, 28468},
1362 {3168495, {1, -1, -1, 1}, 4380},
1363 {12413, {1, -1, -1, 1}, 3559},
1364 {2, {-1, 3, 3, -1}, 16384},
1368 {111495, {-6, -1, 2, 5}, 9489},
1369 {3168495, {0, -1, 0, 1}, 4380},
1370 {12413, {0, -1, 0, 1}, 3559},
1371 {3, {3, 4, 1, -2}, 10923},
1375 {111495, {6, 1, -2, -5}, 9489},
1376 {3168495, {0, 1, 0, -1}, 4380},
1377 {12413, {0, 1, 0, -1}, 3559},
1378 {3, {3, 4, 1, -2}, 10923},
1382 {37165, {1, 1, -1, -1}, 28468},
1383 {3168495, {-1, 1, 1, -1}, 4380},
1384 {12413, {-1, 1, 1, -1}, 3559},
1385 {2, {-1, 3, 3, -1}, 16384},
1389 {111495, {5, 2, -1, -6}, 9489},
1390 {3168495, {-1, 0, 1, 0}, 4380},
1391 {12413, {-1, 0, 1, 0}, 3559},
1392 {3, {-2, 1, 4, 3}, 10923},
1399 {6206, {1, 0, 0, -1}, 56936},
1400 {1584248, {0, 0, 1, -1}, 8759},
1401 {6206, {0, 0, 1, -1}, 7117},
1402 {775, {1, 0, 3, -2}, 32768},
1406 {6243, {-2, 0, 3, -1}, 18979},
1407 {1584487, {1, 0, 0, -1}, 2920},
1408 {6243, {1, 0, 0, -1}, 2372},
1409 {-771, {1, 0, 3, 2}, 10923},
1413 {6206, {1, 0, 0, -1}, 56936},
1414 {239, {-1, 0, 1, 0}, 4380},
1415 {37, {-1, 0, 1, 0}, 3559},
1416 {-772, {-1, 0, 3, 2}, 16384},
1420 {6206, {-1, 0, 0, 1}, 56936},
1421 {239, {1, 0, -1, 0}, 4380},
1422 {37, {1, 0, -1, 0}, 3559},
1423 {776, {-1, 0, 3, 2}, 16384},
1427 {6243, {2, 0, -3, 1}, 18979},
1428 {1584487, {-1, 0, 0, 1}, 2920},
1429 {6243, {-1, 0, 0, 1}, 2372},
1430 {777, {1, 0, 3, 2}, 10923},
1434 {6206, {-1, 0, 0, 1}, 56936},
1435 {1584248, {0, 0, -1, 1}, 8759},
1436 {6206, {0, 0, -1, 1}, 7117},
1437 {-773, {1, 0, 3, -2}, 32768},
1444 {6206, {1, 0, 0, -1}, 56936},
1445 {239, {0, 1, 0, -1}, 4380},
1446 {37, {0, 1, 0, -1}, 3559},
1447 {-772, {2, 3, 0, -1}, 16384},
1451 {30995, {-1, 3, 0, -2}, 18979},
1452 {1584487, {1, 0, 0, -1}, 2920},
1453 {6243, {1, 0, 0, -1}, 2372},
1454 {777, {2, 3, 0, 1}, 10923},
1458 {6206, {1, 0, 0, -1}, 56936},
1459 {1584248, {-1, 1, 0, 0}, 8759},
1460 {6206, {-1, 1, 0, 0}, 7117},
1461 {775, {-2, 3, 0, 1}, 32768},
1465 {6206, {-1, 0, 0, 1}, 56936},
1466 {1584248, {1, -1, 0, 0}, 8759},
1467 {6206, {1, -1, 0, 0}, 7117},
1468 {-773, {-2, 3, 0, 1}, 32768},
1472 {30995, {1, -3, 0, 2}, 18979},
1473 {1584487, {-1, 0, 0, 1}, 2920},
1474 {6243, {-1, 0, 0, 1}, 2372},
1475 {-771, {2, 3, 0, 1}, 10923},
1479 {6206, {-1, 0, 0, 1}, 56936},
1480 {239, {0, -1, 0, 1}, 4380},
1481 {37, {0, -1, 0, 1}, 3559},
1482 {776, {2, 3, 0, -1}, 16384},
1489 {6206, {1, 1, -2, 0}, 56936},
1490 {1584248, {0, 1, -1, 0}, 8759},
1491 {6206, {0, 1, -1, 0}, 7117},
1492 {775, {1, 2, -1, 0}, 32768},
1496 {-6170, {0, 1, -1, 0}, 56936},
1497 {239, {1, 0, -1, 0}, 4380},
1498 {37, {1, 0, -1, 0}, 3559},
1499 {-772, {1, 2, 1, 0}, 16384},
1503 {-6170, {0, 1, -1, 0}, 56936},
1504 {-1584008, {-1, 1, 0, 0}, 8759},
1505 {-6170, {-1, 1, 0, 0}, 7117},
1506 {-773, {-1, 2, 1, 0}, 32768},
1510 {-6170, {0, -1, 1, 0}, 56936},
1511 {-1584008, {1, -1, 0, 0}, 8759},
1512 {-6170, {1, -1, 0, 0}, 7117},
1513 {775, {-1, 2, 1, 0}, 32768},
1517 {-6170, {0, -1, 1, 0}, 56936},
1518 {239, {-1, 0, 1, 0}, 4380},
1519 {37, {-1, 0, 1, 0}, 3559},
1520 {776, {1, 2, 1, 0}, 16384},
1524 {6206, {-1, -1, 2, 0}, 56936},
1525 {1584248, {0, -1, 1, 0}, 8759},
1526 {6206, {0, -1, 1, 0}, 7117},
1527 {-773, {1, 2, -1, 0}, 32768},
1534 {6206, {1, 0, 0, -1}, 56936},
1535 {-1584008, {0, 0, 1, -1}, 8759},
1536 {-6170, {0, 0, 1, -1}, 7117},
1537 {-1546, {1, 0, 3, -2}, 32768},
1541 {43371, {-2, 0, 3, -1}, 18979},
1542 {1584487, {1, 0, 0, -1}, 2920},
1543 {6243, {1, 0, 0, -1}, 2372},
1544 {1550, {1, 0, 3, 2}, 10923},
1548 {6206, {1, 0, 0, -1}, 56936},
1549 {3168495, {-1, 0, 1, 0}, 4380},
1550 {12413, {-1, 0, 1, 0}, 3559},
1551 {1549, {-1, 0, 3, 2}, 16384},
1555 {6206, {-1, 0, 0, 1}, 56936},
1556 {3168495, {1, 0, -1, 0}, 4380},
1557 {12413, {1, 0, -1, 0}, 3559},
1558 {-1545, {-1, 0, 3, 2}, 16384},
1562 {43371, {2, 0, -3, 1}, 18979},
1563 {1584487, {-1, 0, 0, 1}, 2920},
1564 {6243, {-1, 0, 0, 1}, 2372},
1565 {-1544, {1, 0, 3, 2}, 10923},
1569 {6206, {-1, 0, 0, 1}, 56936},
1570 {-1584008, {0, 0, -1, 1}, 8759},
1571 {-6170, {0, 0, -1, 1}, 7117},
1572 {1548, {1, 0, 3, -2}, 32768},
1579 {-6170, {1, 1, -2, 0}, 56936},
1580 {-1584008, {0, 1, -1, 0}, 8759},
1581 {-6170, {0, 1, -1, 0}, 7117},
1582 {-773, {1, 2, -1, 0}, 32768},
1586 {6206, {0, 1, -1, 0}, 56936},
1587 {239, {1, 0, -1, 0}, 4380},
1588 {37, {1, 0, -1, 0}, 3559},
1589 {776, {1, 2, 1, 0}, 16384},
1593 {6206, {0, 1, -1, 0}, 56936},
1594 {1584248, {-1, 1, 0, 0}, 8759},
1595 {6206, {-1, 1, 0, 0}, 7117},
1596 {775, {-1, 2, 1, 0}, 32768},
1600 {6206, {0, -1, 1, 0}, 56936},
1601 {1584248, {1, -1, 0, 0}, 8759},
1602 {6206, {1, -1, 0, 0}, 7117},
1603 {-773, {-1, 2, 1, 0}, 32768},
1607 {6206, {0, -1, 1, 0}, 56936},
1608 {239, {-1, 0, 1, 0}, 4380},
1609 {37, {-1, 0, 1, 0}, 3559},
1610 {-772, {1, 2, 1, 0}, 16384},
1614 {-6170, {-1, -1, 2, 0}, 56936},
1615 {-1584008, {0, -1, 1, 0}, 8759},
1616 {-6170, {0, -1, 1, 0}, 7117},
1617 {775, {1, 2, -1, 0}, 32768},
1624 {18582, {1, 1, -2, 0}, 56936},
1625 {1584248, {0, 1, -1, 0}, 8759},
1626 {6206, {0, 1, -1, 0}, 7117},
1627 {1, {1, 2, -1, 0}, 32768},
1631 {18582, {0, 1, -1, 0}, 56936},
1632 {3168495, {1, 0, -1, 0}, 4380},
1633 {12413, {1, 0, -1, 0}, 3559},
1634 {2, {1, 2, 1, 0}, 16384},
1638 {18582, {0, 1, -1, 0}, 56936},
1639 {1584248, {-1, 1, 0, 0}, 8759},
1640 {6206, {-1, 1, 0, 0}, 7117},
1641 {1, {-1, 2, 1, 0}, 32768},
1645 {18582, {0, -1, 1, 0}, 56936},
1646 {1584248, {1, -1, 0, 0}, 8759},
1647 {6206, {1, -1, 0, 0}, 7117},
1648 {1, {-1, 2, 1, 0}, 32768},
1652 {18582, {0, -1, 1, 0}, 56936},
1653 {3168495, {-1, 0, 1, 0}, 4380},
1654 {12413, {-1, 0, 1, 0}, 3559},
1655 {2, {1, 2, 1, 0}, 16384},
1659 {18582, {-1, -1, 2, 0}, 56936},
1660 {1584248, {0, -1, 1, 0}, 8759},
1661 {6206, {0, -1, 1, 0}, 7117},
1662 {1, {1, 2, -1, 0}, 32768},
1669 {-6170, {1, 1, -2, 0}, 56936},
1670 {-1584008, {0, 1, -1, 0}, 8759},
1671 {-6170, {0, 1, -1, 0}, 7117},
1672 {-773, {1, 2, -1, 0}, 32768},
1676 {6206, {0, 1, -1, 0}, 56936},
1677 {239, {1, 0, -1, 0}, 4380},
1678 {37, {1, 0, -1, 0}, 3559},
1679 {776, {1, 2, 1, 0}, 16384},
1683 {6206, {0, 1, -1, 0}, 56936},
1684 {1584248, {-1, 1, 0, 0}, 8759},
1685 {6206, {-1, 1, 0, 0}, 7117},
1686 {775, {-1, 2, 1, 0}, 32768},
1690 {6206, {0, -1, 1, 0}, 56936},
1691 {1584248, {1, -1, 0, 0}, 8759},
1692 {6206, {1, -1, 0, 0}, 7117},
1693 {-773, {-1, 2, 1, 0}, 32768},
1697 {6206, {0, -1, 1, 0}, 56936},
1698 {239, {-1, 0, 1, 0}, 4380},
1699 {37, {-1, 0, 1, 0}, 3559},
1700 {-772, {1, 2, 1, 0}, 16384},
1704 {-6170, {-1, -1, 2, 0}, 56936},
1705 {-1584008, {0, -1, 1, 0}, 8759},
1706 {-6170, {0, -1, 1, 0}, 7117},
1707 {775, {1, 2, -1, 0}, 32768},
1714 {-49246, {-3, 14, -5, -6}, 4067},
1715 {6338188, {5, 0, -1, -4}, 626},
1716 {25010, {5, 0, -1, -4}, 508},
1717 {-3087, {4, 7, 2, 1}, 4681},
1721 {37, {-1, 1, 1, -1}, 28468},
1722 {6337709, {3, -1, 1, -3}, 876},
1723 {24936, {3, -1, 1, -3}, 712},
1724 {-772, {1, 1, 1, 1}, 16384},
1728 {37239, {-6, -1, 2, 5}, 9489},
1729 {3168495, {0, -1, 0, 1}, 4380},
1730 {12413, {0, -1, 0, 1}, 3559},
1731 {-2318, {3, 4, 1, -2}, 10923},
1735 {0, {0, 0, 0, 0}, 0},
1736 {0, {0, 0, 0, 0}, 0},
1737 {0, {0, 0, 0, 0}, 0},
1738 {0, {0, 0, 0, 0}, 0},
1742 {0, {0, 0, 0, 0}, 0},
1743 {0, {0, 0, 0, 0}, 0},
1744 {0, {0, 0, 0, 0}, 0},
1745 {0, {0, 0, 0, 0}, 0},
1749 {0, {0, 0, 0, 0}, 0},
1750 {0, {0, 0, 0, 0}, 0},
1751 {0, {0, 0, 0, 0}, 0},
1752 {0, {0, 0, 0, 0}, 0},
1759 {-18546, {1, 0, 0, -1}, 56936},
1760 {-1584008, {0, 0, 1, -1}, 8759},
1761 {-6170, {0, 0, 1, -1}, 7117},
1762 {1, {1, 0, 3, -2}, 32768},
1766 {-55637, {-2, 0, 3, -1}, 18979},
1767 {-4752025, {1, 0, 0, -1}, 2920},
1768 {-18509, {1, 0, 0, -1}, 2372},
1769 {3, {1, 0, 3, 2}, 10923},
1773 {-18546, {1, 0, 0, -1}, 56936},
1774 {-3168017, {-1, 0, 1, 0}, 4380},
1775 {-12339, {-1, 0, 1, 0}, 3559},
1776 {2, {-1, 0, 3, 2}, 16384},
1780 {-18546, {-1, 0, 0, 1}, 56936},
1781 {-3168017, {1, 0, -1, 0}, 4380},
1782 {-12339, {1, 0, -1, 0}, 3559},
1783 {2, {-1, 0, 3, 2}, 16384},
1787 {-55637, {2, 0, -3, 1}, 18979},
1788 {-4752025, {-1, 0, 0, 1}, 2920},
1789 {-18509, {-1, 0, 0, 1}, 2372},
1790 {3, {1, 0, 3, 2}, 10923},
1794 {-18546, {-1, 0, 0, 1}, 56936},
1795 {-1584008, {0, 0, -1, 1}, 8759},
1796 {-6170, {0, 0, -1, 1}, 7117},
1797 {1, {1, 0, 3, -2}, 32768},
1804 {49762, {-6, -5, 14, -3}, 4067},
1805 {6338188, {4, 1, 0, -5}, 626},
1806 {25010, {4, 1, 0, -5}, 508},
1807 {-2314, {1, 2, 7, 4}, 4681},
1811 {12413, {-1, -1, 1, 1}, 28468},
1812 {3168495, {1, -1, -1, 1}, 4380},
1813 {12413, {1, -1, -1, 1}, 3559},
1814 {-1545, {-1, 3, 3, -1}, 16384},
1818 {12413, {1, -1, 1, -1}, 28468},
1819 {479, {-1, 1, 1, -1}, 2190},
1820 {74, {-1, 1, 1, -1}, 1779},
1821 {-1543, {1, 3, 3, 1}, 8192},
1825 {124018, {3, -14, 5, 6}, 4067},
1826 {6338188, {-5, 0, 1, 4}, 626},
1827 {25010, {-5, 0, 1, 4}, 508},
1828 {-2314, {4, 7, 2, 1}, 4681},
1832 {0, {0, 0, 0, 0}, 0},
1833 {0, {0, 0, 0, 0}, 0},
1834 {0, {0, 0, 0, 0}, 0},
1835 {0, {0, 0, 0, 0}, 0},
1839 {0, {0, 0, 0, 0}, 0},
1840 {0, {0, 0, 0, 0}, 0},
1841 {0, {0, 0, 0, 0}, 0},
1842 {0, {0, 0, 0, 0}, 0},
1849 {6206, {1, 0, 0, -1}, 56936},
1850 {1584248, {0, 0, 1, -1}, 8759},
1851 {6206, {0, 0, 1, -1}, 7117},
1852 {775, {1, 0, 3, -2}, 32768},
1856 {6243, {-2, 0, 3, -1}, 18979},
1857 {1584487, {1, 0, 0, -1}, 2920},
1858 {6243, {1, 0, 0, -1}, 2372},
1859 {-771, {1, 0, 3, 2}, 10923},
1863 {6206, {1, 0, 0, -1}, 56936},
1864 {239, {-1, 0, 1, 0}, 4380},
1865 {37, {-1, 0, 1, 0}, 3559},
1866 {-772, {-1, 0, 3, 2}, 16384},
1870 {6206, {-1, 0, 0, 1}, 56936},
1871 {239, {1, 0, -1, 0}, 4380},
1872 {37, {1, 0, -1, 0}, 3559},
1873 {776, {-1, 0, 3, 2}, 16384},
1877 {6243, {2, 0, -3, 1}, 18979},
1878 {1584487, {-1, 0, 0, 1}, 2920},
1879 {6243, {-1, 0, 0, 1}, 2372},
1880 {777, {1, 0, 3, 2}, 10923},
1884 {6206, {-1, 0, 0, 1}, 56936},
1885 {1584248, {0, 0, -1, 1}, 8759},
1886 {6206, {0, 0, -1, 1}, 7117},
1887 {-773, {1, 0, 3, -2}, 32768},
1894 {-6170, {1, 0, 0, -1}, 56936},
1895 {-1584008, {0, 0, 1, -1}, 8759},
1896 {-6170, {0, 0, 1, -1}, 7117},
1897 {-773, {1, 0, 3, -2}, 32768},
1901 {-6133, {-2, 0, 3, -1}, 18979},
1902 {-1583769, {1, 0, 0, -1}, 2920},
1903 {-6133, {1, 0, 0, -1}, 2372},
1904 {777, {1, 0, 3, 2}, 10923},
1908 {-6170, {1, 0, 0, -1}, 56936},
1909 {239, {-1, 0, 1, 0}, 4380},
1910 {37, {-1, 0, 1, 0}, 3559},
1911 {776, {-1, 0, 3, 2}, 16384},
1915 {-6170, {-1, 0, 0, 1}, 56936},
1916 {239, {1, 0, -1, 0}, 4380},
1917 {37, {1, 0, -1, 0}, 3559},
1918 {-772, {-1, 0, 3, 2}, 16384},
1922 {-6133, {2, 0, -3, 1}, 18979},
1923 {-1583769, {-1, 0, 0, 1}, 2920},
1924 {-6133, {-1, 0, 0, 1}, 2372},
1925 {-771, {1, 0, 3, 2}, 10923},
1929 {-6170, {-1, 0, 0, 1}, 56936},
1930 {-1584008, {0, 0, -1, 1}, 8759},
1931 {-6170, {0, 0, -1, 1}, 7117},
1932 {775, {1, 0, 3, -2}, 32768},
1939 {37239, {-5, -2, 1, 6}, 9489},
1940 {3168495, {1, 0, -1, 0}, 4380},
1941 {12413, {1, 0, -1, 0}, 3559},
1942 {-2318, {-2, 1, 4, 3}, 10923},
1946 {24789, {1, -1, -1, 1}, 28468},
1947 {6337709, {-3, 1, -1, 3}, 876},
1948 {24936, {-3, 1, -1, 3}, 712},
1949 {-772, {1, 1, 1, 1}, 16384},
1953 {223026, {6, 5, -14, 3}, 4067},
1954 {6338188, {-4, -1, 0, 5}, 626},
1955 {25010, {-4, -1, 0, 5}, 508},
1956 {-3087, {1, 2, 7, 4}, 4681},
1960 {0, {0, 0, 0, 0}, 0},
1961 {0, {0, 0, 0, 0}, 0},
1962 {0, {0, 0, 0, 0}, 0},
1963 {0, {0, 0, 0, 0}, 0},
1967 {0, {0, 0, 0, 0}, 0},
1968 {0, {0, 0, 0, 0}, 0},
1969 {0, {0, 0, 0, 0}, 0},
1970 {0, {0, 0, 0, 0}, 0},
1974 {0, {0, 0, 0, 0}, 0},
1975 {0, {0, 0, 0, 0}, 0},
1976 {0, {0, 0, 0, 0}, 0},
1977 {0, {0, 0, 0, 0}, 0},
1984 {-6170, {1, 0, 0, -1}, 56936},
1985 {1584248, {0, 0, 1, -1}, 8759},
1986 {6206, {0, 0, 1, -1}, 7117},
1987 {1548, {1, 0, 3, -2}, 32768},
1991 {-43261, {-2, 0, 3, -1}, 18979},
1992 {-1583769, {1, 0, 0, -1}, 2920},
1993 {-6133, {1, 0, 0, -1}, 2372},
1994 {-1544, {1, 0, 3, 2}, 10923},
1998 {-6170, {1, 0, 0, -1}, 56936},
1999 {-3168017, {-1, 0, 1, 0}, 4380},
2000 {-12339, {-1, 0, 1, 0}, 3559},
2001 {-1545, {-1, 0, 3, 2}, 16384},
2005 {-6170, {-1, 0, 0, 1}, 56936},
2006 {-3168017, {1, 0, -1, 0}, 4380},
2007 {-12339, {1, 0, -1, 0}, 3559},
2008 {1549, {-1, 0, 3, 2}, 16384},
2012 {-43261, {2, 0, -3, 1}, 18979},
2013 {-1583769, {-1, 0, 0, 1}, 2920},
2014 {-6133, {-1, 0, 0, 1}, 2372},
2015 {1550, {1, 0, 3, 2}, 10923},
2019 {-6170, {-1, 0, 0, 1}, 56936},
2020 {1584248, {0, 0, -1, 1}, 8759},
2021 {6206, {0, 0, -1, 1}, 7117},
2022 {-1546, {1, 0, 3, -2}, 32768},
2029 {-6170, {1, 0, 0, -1}, 56936},
2030 {-3168017, {0, 1, 0, -1}, 4380},
2031 {-12339, {0, 1, 0, -1}, 3559},
2032 {-1545, {2, 3, 0, -1}, 16384},
2036 {6243, {-1, 3, 0, -2}, 18979},
2037 {-1583769, {1, 0, 0, -1}, 2920},
2038 {-6133, {1, 0, 0, -1}, 2372},
2039 {1550, {2, 3, 0, 1}, 10923},
2043 {-6170, {1, 0, 0, -1}, 56936},
2044 {1584248, {-1, 1, 0, 0}, 8759},
2045 {6206, {-1, 1, 0, 0}, 7117},
2046 {1548, {-2, 3, 0, 1}, 32768},
2050 {-6170, {-1, 0, 0, 1}, 56936},
2051 {1584248, {1, -1, 0, 0}, 8759},
2052 {6206, {1, -1, 0, 0}, 7117},
2053 {-1546, {-2, 3, 0, 1}, 32768},
2057 {6243, {1, -3, 0, 2}, 18979},
2058 {-1583769, {-1, 0, 0, 1}, 2920},
2059 {-6133, {-1, 0, 0, 1}, 2372},
2060 {-1544, {2, 3, 0, 1}, 10923},
2064 {-6170, {-1, 0, 0, 1}, 56936},
2065 {-3168017, {0, -1, 0, 1}, 4380},
2066 {-12339, {0, -1, 0, 1}, 3559},
2067 {1549, {2, 3, 0, -1}, 16384},
2074 {-111274, {-5, -2, 1, 6}, 9489},
2075 {-3168017, {1, 0, -1, 0}, 4380},
2076 {-12339, {1, 0, -1, 0}, 3559},
2077 {3, {-2, 1, 4, 3}, 10923},
2081 {-37091, {-1, -1, 1, 1}, 28468},
2082 {-3168017, {1, -1, -1, 1}, 4380},
2083 {-12339, {1, -1, -1, 1}, 3559},
2084 {2, {-1, 3, 3, -1}, 16384},
2088 {-111274, {-6, -1, 2, 5}, 9489},
2089 {-3168017, {0, -1, 0, 1}, 4380},
2090 {-12339, {0, -1, 0, 1}, 3559},
2091 {3, {3, 4, 1, -2}, 10923},
2095 {-111274, {6, 1, -2, -5}, 9489},
2096 {-3168017, {0, 1, 0, -1}, 4380},
2097 {-12339, {0, 1, 0, -1}, 3559},
2098 {3, {3, 4, 1, -2}, 10923},
2102 {-37091, {1, 1, -1, -1}, 28468},
2103 {-3168017, {-1, 1, 1, -1}, 4380},
2104 {-12339, {-1, 1, 1, -1}, 3559},
2105 {2, {-1, 3, 3, -1}, 16384},
2109 {-111274, {5, 2, -1, -6}, 9489},
2110 {-3168017, {-1, 0, 1, 0}, 4380},
2111 {-12339, {-1, 0, 1, 0}, 3559},
2112 {3, {-2, 1, 4, 3}, 10923},
2119 {6206, {1, 0, 0, -1}, 56936},
2120 {239, {0, 1, 0, -1}, 4380},
2121 {37, {0, 1, 0, -1}, 3559},
2122 {-772, {2, 3, 0, -1}, 16384},
2126 {30995, {-1, 3, 0, -2}, 18979},
2127 {1584487, {1, 0, 0, -1}, 2920},
2128 {6243, {1, 0, 0, -1}, 2372},
2129 {777, {2, 3, 0, 1}, 10923},
2133 {6206, {1, 0, 0, -1}, 56936},
2134 {1584248, {-1, 1, 0, 0}, 8759},
2135 {6206, {-1, 1, 0, 0}, 7117},
2136 {775, {-2, 3, 0, 1}, 32768},
2140 {6206, {-1, 0, 0, 1}, 56936},
2141 {1584248, {1, -1, 0, 0}, 8759},
2142 {6206, {1, -1, 0, 0}, 7117},
2143 {-773, {-2, 3, 0, 1}, 32768},
2147 {30995, {1, -3, 0, 2}, 18979},
2148 {1584487, {-1, 0, 0, 1}, 2920},
2149 {6243, {-1, 0, 0, 1}, 2372},
2150 {-771, {2, 3, 0, 1}, 10923},
2154 {6206, {-1, 0, 0, 1}, 56936},
2155 {239, {0, -1, 0, 1}, 4380},
2156 {37, {0, -1, 0, 1}, 3559},
2157 {776, {2, 3, 0, -1}, 16384},
2164 {18582, {1, 0, 0, -1}, 56936},
2165 {1584248, {0, 0, 1, -1}, 8759},
2166 {6206, {0, 0, 1, -1}, 7117},
2167 {1, {1, 0, 3, -2}, 32768},
2171 {55747, {-2, 0, 3, -1}, 18979},
2172 {4752743, {1, 0, 0, -1}, 2920},
2173 {18619, {1, 0, 0, -1}, 2372},
2174 {3, {1, 0, 3, 2}, 10923},
2178 {18582, {1, 0, 0, -1}, 56936},
2179 {3168495, {-1, 0, 1, 0}, 4380},
2180 {12413, {-1, 0, 1, 0}, 3559},
2181 {2, {-1, 0, 3, 2}, 16384},
2185 {18582, {-1, 0, 0, 1}, 56936},
2186 {3168495, {1, 0, -1, 0}, 4380},
2187 {12413, {1, 0, -1, 0}, 3559},
2188 {2, {-1, 0, 3, 2}, 16384},
2192 {55747, {2, 0, -3, 1}, 18979},
2193 {4752743, {-1, 0, 0, 1}, 2920},
2194 {18619, {-1, 0, 0, 1}, 2372},
2195 {3, {1, 0, 3, 2}, 10923},
2199 {18582, {-1, 0, 0, 1}, 56936},
2200 {1584248, {0, 0, -1, 1}, 8759},
2201 {6206, {0, 0, -1, 1}, 7117},
2202 {1, {1, 0, 3, -2}, 32768},
2209 {6206, {1, 0, 0, -1}, 56936},
2210 {3168495, {0, 1, 0, -1}, 4380},
2211 {12413, {0, 1, 0, -1}, 3559},
2212 {1549, {2, 3, 0, -1}, 16384},
2216 {-6133, {-1, 3, 0, -2}, 18979},
2217 {1584487, {1, 0, 0, -1}, 2920},
2218 {6243, {1, 0, 0, -1}, 2372},
2219 {-1544, {2, 3, 0, 1}, 10923},
2223 {6206, {1, 0, 0, -1}, 56936},
2224 {-1584008, {-1, 1, 0, 0}, 8759},
2225 {-6170, {-1, 1, 0, 0}, 7117},
2226 {-1546, {-2, 3, 0, 1}, 32768},
2230 {6206, {-1, 0, 0, 1}, 56936},
2231 {-1584008, {1, -1, 0, 0}, 8759},
2232 {-6170, {1, -1, 0, 0}, 7117},
2233 {1548, {-2, 3, 0, 1}, 32768},
2237 {-6133, {1, -3, 0, 2}, 18979},
2238 {1584487, {-1, 0, 0, 1}, 2920},
2239 {6243, {-1, 0, 0, 1}, 2372},
2240 {1550, {2, 3, 0, 1}, 10923},
2244 {6206, {-1, 0, 0, 1}, 56936},
2245 {3168495, {0, -1, 0, 1}, 4380},
2246 {12413, {0, -1, 0, 1}, 3559},
2247 {-1545, {2, 3, 0, -1}, 16384},
T getUntrackedParameter(std::string const &, T const &) const
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
Point3DBase< Scalar, LocalTag > LocalPoint
constexpr int INCREASED_RES_SLOPE_XHH
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
std::vector< CELL_VALID_LAYOUT_CONSTANTS > LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER
~MuonPathAnalyticAnalyzer() override
static const double slope[3]
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
std::vector< MuonPathPtr > MuonPathPtrs
Geom::Phi< T > phi() const
constexpr uint32_t rawId() const
get the raw id
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
edm::FileInPath shift_filename_
constexpr int DIV_SHR_BITS_POS
std::map< std::string, int, std::less< std::string > > psi
std::map< int, float > shiftthetainfo_
bool hasPosRF(int wh, int sec)
const DTTopology & specificTopology() const
constexpr int DIV_SHR_BITS_T0
constexpr int INCREASED_RES_SLOPE_POW
constexpr int DIV_SHR_BITS_SLOPE
edm::FileInPath shift_theta_filename_
MuonPathAnalyticAnalyzer(const edm::ParameterSet &pset, edm::ConsumesCollector &iC, std::shared_ptr< GlobalCoordsObtainer > &globalcoordsobtainer)
constexpr float Z_SHIFT_MB4
void segment_fitter(DTSuperLayerId MuonPathSLId, int wires[4], int t0s[4], int valid[4], int reduced_times[4], int cell_horiz_layout[4], LATCOMB_CONSTANTS latcomb_consts, int xwire_mm[4], int coarse_pos, int coarse_offset, std::vector< cmsdt::metaPrimitive > &metaPrimitives)
Abs< T >::type abs(const T &t)
int superLayer() const
Return the superlayer number.
std::vector< int > getLateralityCombination(int latcomb)
void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, MuonPathPtrs &inMpath, std::vector< cmsdt::metaPrimitive > &metaPrimitives) override
constexpr double PHI_CONV
void fillLAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER()
void initialise(const edm::EventSetup &iEventSetup) override
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomH
T getParameter(std::string const &) const
constexpr int TDCTIME_REDUCED_SIZE
std::string geometry_tag_
constexpr int INCREASED_RES_T0
void analyze(MuonPathPtr &inMPath, std::vector< cmsdt::metaPrimitive > &metaPrimitives)
constexpr int DTDD_PREADD
std::map< int, float > shiftinfo_
constexpr int INCREASED_RES_SLOPE
std::shared_ptr< MuonPath > MuonPathPtr
static unsigned int const shift
std::string fullPath() const
constexpr int DTDD_SHIFTR_BITS
constexpr int INCREASED_RES_POS_POW
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
int station() const
Return the station number.
std::shared_ptr< GlobalCoordsObtainer > globalcoordsobtainer_
int wheel() const
Return the wheel number.
DTGeometry const * dtGeo_
int compute_parameter(MAGNITUDE constants, int t0s[4], int DIV_SHR_BITS, int INCREASED_RES)
Power< A, B >::type pow(const A &a, const B &b)
constexpr int DIV_SHR_BITS_SLOPE_XHH
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return a DTSuperLayer given its id.
constexpr int INCREASED_RES_POS