1 #ifndef L1Trigger_TrackFindingTracklet_interface_Settings_h
2 #define L1Trigger_TrackFindingTracklet_interface_Settings_h
10 #include <unordered_map>
41 constexpr
double sixth = 1.0 / 6.0;
42 constexpr
double third = 1.0 / 3.0;
49 enum Seed {
L1L2 = 0,
L2L3,
L3L4,
L5L6,
D1D2,
D3D4,
L1D1,
L2D1,
L2L3L4,
L4L5L6,
L2L3D1,
D1D2L2 };
50 enum LayerDisk {
L1 = 0,
L2,
L3,
L4,
L5,
L6,
D1,
D2,
D3,
D4,
D5 };
58 #pragma message "USEHYBRID is undefined, so Hybrid L1 tracking disabled."
104 unsigned int nvmme(
unsigned int layerdisk)
const {
return (1 <<
nbitsvmme_[layerdisk]); }
111 throw cms::Exception(
"BadConfig") <<
"Settings::writeMonitorData module = " <<
module <<
" not known";
119 << __FILE__ <<
" " << __LINE__ <<
" maxStep module = " <<
module <<
" not known";
160 double rcutPS(
unsigned int iSeed,
unsigned int idisk)
const {
return rcutPS_[idisk][iSeed]; }
162 double rcut2S(
unsigned int iSeed,
unsigned int idisk)
const {
return rcut2S_[idisk][iSeed]; }
212 double c()
const {
return c_; }
228 return "hourglassCombined";
229 return extended_ ?
"hourglassExtended" :
"hourglass";
283 double rsectmin = 21.8;
284 double rsectmax = 112.7;
395 double kzder()
const {
return 1.0 / 64; }
396 double krder()
const {
return 1.0 / 128; }
402 double benddecode(
int ibend,
int layerdisk,
bool isPSmodule)
const {
403 if (layerdisk >=
N_LAYER && (!isPSmodule))
410 double bendcut(
int ibend,
int layerdisk,
bool isPSmodule)
const {
411 if (layerdisk >=
N_LAYER && (!isPSmodule))
415 std::cout <<
"bendcut : " << layerdisk <<
" " << ibend <<
" " << isPSmodule << std::endl;
426 double bendcutte(
int ibend,
int layerdisk,
bool isPSmodule)
const {
return bendcut(ibend, layerdisk, isPSmodule); }
428 double bendcutme(
int ibend,
int layerdisk,
bool isPSmodule)
const {
431 return fact *
bendcut(ibend, layerdisk, isPSmodule);
451 std::array<unsigned int, N_LAYER>
irmean_{{851, 1269, 1784, 2347, 2936, 3697}};
452 std::array<unsigned int, N_DISK>
izmean_{{2239, 2645, 3163, 3782, 4523}};
454 std::array<unsigned int, N_LAYER + N_DISK>
nzbitsstub_{{12, 12, 12, 8, 8, 8, 7, 7, 7, 7, 7}};
455 std::array<unsigned int, N_LAYER + N_DISK>
nphibitsstub_{{14, 14, 14, 17, 17, 17, 14, 14, 14, 14, 14}};
456 std::array<unsigned int, N_LAYER + N_DISK>
nrbitsstub_{{7, 7, 7, 7, 7, 7, 12, 12, 12, 12, 12}};
466 std::set<unsigned int>
useseeding_{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
468 std::array<unsigned int, N_LAYER + N_DISK>
nbitsallstubs_{{3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}};
469 std::array<unsigned int, N_LAYER + N_DISK>
nbitsvmme_{{2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2}};
471 {{{2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 3, 2}},
472 {{3, 2, 3, 3, 2, 2, 2, 2, 3, 3, 2, 2}},
473 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1}}}};
476 {{{2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 3, 2}},
477 {{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2}},
478 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1}}}};
480 std::map<std::string, std::vector<int> >
dtclayers_{{
"PS10G_1", {0, 6, 8, 10}},
481 {
"PS10G_2", {0, 7, 9}},
483 {
"PS10G_4", {6, 8, 10}},
581 std::array<unsigned int, N_SEED>
teunits_{{5, 2, 5, 3, 3, 2, 3, 2, 0, 0, 0, 0}};
584 {7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3}};
586 {4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8}};
588 std::array<std::array<unsigned int, N_SEED>, 3>
nfinephi_{
589 {{{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}},
590 {{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}},
591 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3}}}};
595 std::array<std::array<unsigned int, N_SEED>, 3>
nphireg_{
596 {{{5, 4, 4, 4, 4, 4, 4, 3, 4, 4, 5, 4}},
597 {{5, 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4}},
598 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4}}}};
602 {{{5, 4, 4, 4, 4, 4, 4, 3, 4, 4, 5, 4}},
603 {{5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4}},
604 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4}}}};
606 std::array<std::array<unsigned int, N_SEED>, 3>
lutwidthtab_{{{{10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 11, 0}},
607 {{6, 6, 6, 6, 10, 10, 10, 10, 0, 0, 6, 0}},
608 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6}}}};
611 {{{11, 11, 21, 21, 21, 21, 11, 11, 0, 0, 21, 0}},
612 {{6, 6, 6, 6, 10, 10, 10, 10, 0, 0, 6, 0}},
613 {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6}}}};
630 std::array<unsigned int, N_SEED>
ntc_{{12, 4, 4, 4, 4, 4, 8, 4, 0, 0, 0, 0}};
662 {{{0.0, 0.1, 0.07, 0.08, 0.07, 0.05, 0.0, 0.05, 0.08, 0.15, 0.125, 0.15}},
663 {{0.0, 0.0, 0.06, 0.08, 0.05, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0}},
664 {{0.1, 0.0, 0.0, 0.08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08, 0.0, 0.0}},
665 {{0.19, 0.19, 0.0, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},
666 {{0.4, 0.4, 0.08, 0.0, 0.0, 0.0, 0.0, 0.0, 0.08, 0.0, 0.0, 0.0}},
667 {{0.5, 0.0, 0.19, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2, 0.0, 0.0, 0.0}}}};
671 {{{0.0, 0.7, 5.5, 15.0, 1.5, 2.0, 0.0, 1.5, 1.0, 8.0, 1.0, 1.5}},
672 {{0.0, 0.0, 3.5, 15.0, 1.25, 0.0, 0.0, 0.0, 0.0, 7.0, 0.0, 0.0}},
673 {{0.7, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0}},
674 {{3.0, 3.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},
675 {{3.0, 3.0, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.5, 0.0, 0.0, 0.0}},
676 {{4.0, 0.0, 9.5, 0.0, 0.0, 0.0, 0.0, 0.0, 4.5, 0.0, 0.0, 0.0}}}};
680 {{{0.2, 0.2, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},
681 {{0.2, 0.2, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.0, 0.0, 0.15, 0.0}},
682 {{0.25, 0.2, 0.0, 0.0, 0.15, 0.0, 0.2, 0.15, 0.0, 0.0, 0.0, 0.2}},
683 {{0.5, 0.2, 0.0, 0.0, 0.2, 0.0, 0.3, 0.5, 0.0, 0.0, 0.0, 0.0}},
684 {{0.0, 0.0, 0.0, 0.0, 0.25, 0.1, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0}}}};
688 {{{0.5, 0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},
689 {{0.5, 0.5, 0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.0}},
690 {{0.5, 0.5, 0.0, 0.0, 0.5, 0.0, 0.6, 0.8, 0.0, 0.0, 0.0, 0.4}},
691 {{0.5, 0.5, 0.0, 0.0, 0.8, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0}},
692 {{0.0, 0.0, 0.0, 0.0, 1.0, 0.5, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0}}}};
696 {{{0.5, 0.5, 0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2, 0.0, 0.0, 0.0}},
697 {{0.5, 0.5, 0.8, 0.0, 0.0, 0.0, 0.5, 0.15, 0.3, 0.0, 0.68, 0.0}},
698 {{0.5, 0.5, 0.0, 0.0, 0.15, 0.0, 0.2, 0.25, 0.0, 0.0, 0.8, 0.1}},
699 {{0.5, 0.5, 0.0, 0.0, 0.2, 0.0, 0.25, 0.5, 0.0, 0.0, 0.6, 0.4}},
700 {{0.0, 0.0, 0.0, 0.0, 0.4, 0.2, 0.4, 0.0, 0.0, 0.0, 0.0, 0.8}}}};
704 {{{3.8, 3.8, 3.8, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0}},
705 {{3.8, 3.8, 3.8, 0.0, 0.0, 0.0, 3.8, 3.4, 3.0, 0.0, 3.0, 0.0}},
706 {{3.6, 3.8, 0.0, 0.0, 3.6, 0.0, 3.6, 3.8, 0.0, 0.0, 3.8, 3.0}},
707 {{3.6, 3.8, 0.0, 0.0, 3.6, 0.0, 3.5, 3.8, 0.0, 0.0, 3.0, 3.0}},
708 {{0.0, 0.0, 0.0, 0.0, 3.6, 3.4, 3.7, 0.0, 0.0, 0.0, 0.0, 3.0}}}};
712 {{{0.0, 0.5, 0.7, 0.8, 89.9, -1.0, -0.9, -0.8, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
713 {{0.0, 0.7, 1.0, 1.5, 89.9, -1.5, -1.0, -0.7, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
714 {{0.0, 1.0, 1.8, 2.2, 89.9, -2.2, -1.8, -1.0, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
715 {{0.0, 0.7, 1.2, 1.8, 2.1, 2.6, 3.2, 3.5, 89.9, -3.5, -3.2, -2.6, -2.1, -1.8, -1.2, -0.7}},
716 {{0.0, 0.8, 1.2, 1.8, 2.2, 3.2, 4.1, 4.4, 89.9, -4.4, -4.1, -3.2, -2.2, -1.8, -1.2, -0.8}},
717 {{0.0, 0.9, 1.8, 2.8, 3.8, 4.5, 5.3, 5.9, 89.9, -5.9, -5.3, -4.5, -3.8, -2.8, -1.8, -0.9}},
718 {{0.0, 0.8, 1.2, 2.0, 89.9, -2.0, -1.2, -0.8, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
719 {{0.0, 1.5, 1.8, 2.4, 89.9, -2.4, -1.8, -1.4, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
720 {{0.0, 1.7, 2.0, 2.2, 89.9, -2.2, -2.0, -1.7, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
721 {{0.0, 1.8, 2.0, 2.4, 89.9, -2.4, -2.0, -1.8, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
722 {{0.0, 2.0, 2.2, 2.4, 89.9, -2.4, -2.0, -1.8, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9, 99.9}},
723 {{0.0, 1.8, 2.3, 2.5, 3.0, 3.9, 4.5, 5.2, 89.9, -5.2, -4.5, -3.9, -3.0, -2.5, -2.3, -1.8}},
724 {{0.0, 2.0, 2.4, 2.9, 3.2, 4.0, 4.8, 5.2, 89.9, -5.2, -4.8, -4.0, -3.2, -2.9, -2.4, -2.0}},
725 {{0.0, 2.0, 2.4, 2.7, 3.6, 3.7, 4.4, 4.6, 89.9, -4.6, -4.4, -3.7, -3.6, -2.7, -2.4, -2.0}},
726 {{0.0, 2.0, 2.6, 3.2, 3.8, 4.0, 4.4, 4.4, 89.9, -4.4, -4.4, -4.0, -3.8, -3.2, -2.6, -2.0}},
727 {{0.0, 2.0, 3.2, 3.4, 3.9, 3.9, 4.4, 4.4, 89.9, -4.4, -4.4, -3.9, -3.9, -3.4, -3.2, -2.0}}}};
731 {{{1.5, 1.2, 0.8, 0.8, 99.9, 0.8, 0.8, 1.2, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
732 {{1.5, 1.3, 1.0, 1.0, 99.9, 1.0, 1.0, 1.3, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
733 {{1.6, 1.5, 1.0, 1.0, 99.9, 1.0, 1.0, 1.5, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
734 {{1.6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 99.9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}},
735 {{1.6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 99.9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}},
736 {{1.6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 99.9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}},
737 {{1.8, 1.6, 1.6, 1.6, 99.9, 1.6, 1.6, 1.6, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
738 {{1.8, 1.6, 1.6, 1.6, 99.9, 1.6, 1.6, 1.6, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
739 {{1.8, 1.6, 1.6, 1.6, 99.9, 1.6, 1.6, 1.6, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
740 {{2.2, 1.6, 1.6, 1.6, 99.9, 1.6, 1.6, 1.6, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
741 {{2.2, 1.6, 1.6, 1.6, 99.9, 1.6, 1.6, 1.6, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}},
742 {{2.0, 1.2, 1.2, 1.2, 1.5, 1.5, 1.5, 1.5, 99.9, 1.5, 1.5, 1.5, 1.5, 1.2, 1.2, 1.2}},
743 {{2.0, 1.2, 1.2, 1.2, 1.5, 1.5, 1.5, 1.5, 99.9, 1.5, 1.5, 1.5, 1.5, 1.2, 1.2, 1.2}},
744 {{2.2, 1.5, 1.5, 1.5, 2.0, 2.0, 2.0, 2.0, 99.9, 2.0, 2.0, 2.0, 2.0, 1.5, 1.5, 1.5}},
745 {{2.5, 1.5, 1.5, 2.0, 2.0, 2.0, 2.0, 2.0, 99.9, 2.0, 2.0, 2.0, 2.0, 2.0, 1.5, 1.5}},
746 {{2.5, 1.5, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 99.9, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.5}}}};
754 std::unordered_map<std::string, unsigned int>
maxstep_{{
"IR", 156},
768 {
"CT",
false}, {
"HitPattern",
false},
769 {
"ChiSq",
false}, {
"Seeds",
false},
770 {
"FT",
false}, {
"Residuals",
false},
771 {
"StubBend",
false}, {
"MC",
false},
772 {
"MP",
false}, {
"ME",
false},
773 {
"AP",
false}, {
"VMP",
false},
774 {
"TrackProjOcc",
false}, {
"TC",
false},
775 {
"Pars",
false}, {
"TPars",
false},
776 {
"TPD",
false}, {
"TrackletPars",
false},
777 {
"TED",
false}, {
"TP",
false},
778 {
"TRE",
false}, {
"VMR",
false},
779 {
"StubsLayer",
false}, {
"StubsLayerSector",
false},
780 {
"HitEff",
false}, {
"MatchEff",
false},
781 {
"IFit",
false}, {
"AS",
false}};
783 std::array<double, N_DSS_MOD>
rDSSinner_mod_{{68.9391, 78.7750, 85.4550, 96.3150, 102.3160}};
784 std::array<double, N_DSS_MOD>
rDSSouter_mod_{{66.4903, 76.7750, 84.4562, 94.9920, 102.3160}};
881 double c_{0.299792458};
894 constexpr std::array<unsigned int, N_PSLAYER>
N_MOD_PLANK = {{7, 11, 15}};