619 int hocrate_loc[
NHOCR]={3,7,6,13};
622 int fedhonum_loc[
NHOCR][2]={{724,725},{726,727},{728,729},{730,731}};
625 int ihslotho_loc[
NHSETSHO][
NHTRSHO]={{2,3,4,5},{6,7,13,14},{15,16,17,18}};
628 int ihophis_loc[
NHOCR]={71,17,35,53};
633 int HO_RM_table_loc[24][16][2] =
635 {{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}},
636 {{2,2},{2,2},{2,2},{2,2},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
637 {{3,3},{3,3},{3,3},{3,3},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
638 {{3,3},{3,3},{3,3},{3,3},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
639 {{4,4},{4,4},{4,4},{4,4},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
640 {{4,4},{4,4},{4,4},{4,4},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
641 {{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
642 {{3,3},{3,3},{3,3},{3,3},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
643 {{2,2},{2,2},{2,2},{2,2},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
644 {{2,2},{2,2},{2,2},{2,2},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
645 {{4,4},{4,4},{4,4},{4,4},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}},
646 {{4,4},{4,4},{4,4},{4,4},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}},
647 {{3,3},{3,3},{3,3},{3,3},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}},
648 {{3,3},{3,3},{3,3},{3,3},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
649 {{2,2},{2,2},{2,2},{2,2},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
650 {{2,2},{2,2},{2,2},{2,2},{4,4},{4,4},{4,4},{4,4},{4,4},{4,4},{2,4},{2,4},{2,4},{2,4},{2,4},{2,4}},
651 {{1,1},{1,1},{1,1},{1,1},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
652 {{1,1},{1,1},{1,1},{1,1},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
653 {{2,2},{2,2},{2,2},{2,2},{3,3},{3,3},{3,3},{3,3},{3,3},{3,3},{1,3},{1,3},{1,3},{1,3},{1,3},{1,3}},
654 {{2,2},{2,2},{2,2},{2,2},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
655 {{3,3},{3,3},{3,3},{3,3},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
656 {{3,3},{3,3},{3,3},{3,3},{1,1},{1,1},{1,1},{1,1},{1,1},{1,1},{3,1},{3,1},{3,1},{3,1},{3,1},{3,1}},
657 {{1,1},{1,1},{1,1},{1,1},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}},
658 {{1,1},{1,1},{1,1},{1,1},{2,2},{2,2},{2,2},{2,2},{2,2},{2,2},{4,2},{4,2},{4,2},{4,2},{4,2},{4,2}}
660 memcpy(
HO_RM_table, HO_RM_table_loc,
sizeof(
int)*24*16*2 );
663 int HO_RM_fi_eta5to15_loc[11] = {3, 2, 5, 4, 7, 6, 3, 2, 5, 4, 7};
671 int HO_htr_fi_450eta5to15_loc[2][11] = {{2, 2, 4, 6, 8, 2, 4, 6, 8, 4, 6},
672 {2, 8, 6, 4, 2, 8, 6, 4, 2, 4, 2}};
676 int HO_htr_fi_450eta16M_loc[4] = {7, 7, 8, 8};
680 int HO_htr_fi_450eta16P_loc[4][6] = { {4,2,4,4,2,6},{2,6,6,2,6,4},{5,3,5,5,3,7},{3,7,7,3,7,5} };
684 int HO_htr_fi_eta4_loc[2][6] = {{6, 6, 8, 8, 7, 7},
688 int HO_htr_fi_eta123_loc[2][6] = {{6, 5, 4, 3, 8, 7},
696 int HO_RM_fi_eta1to4_loc[72][2][2] =
698 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
699 {{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
700 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},
701 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
702 {{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
703 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},
704 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
705 {{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},{{2,6},{5,4}},{{3,7},{5,4}},
706 {{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}},{{7,3},{4,5}},{{6,2},{4,5}}
714 int ipixelHO_loc[
NRMFIBR][
NFCH][2] = {{{12,12},{ 7, 7},{ 6, 3}}, {{ 4, 4},{ 8, 8},{ 5, 1}}, {{19,11},{18, 6},{17, 2}},
715 {{ 2, 9},{ 1,13},{ 3, 5}}, {{11,19},{16,18},{15,17}}, {{13,15},{ 9,14},{14,16}}};
718 std::string letterHO_loc[
NRMFIBR][
NFCH][2] = {{{
"E",
"E"},{
"G",
"L"},{
"F",
"S"}}, {{
"Q",
"M"},{
"N",
"T"},{
"P",
"F"}}, {{
"A",
"C"},{
"X",
"J"},{
"J",
"Q"}},
719 {{
"X",
"K"},{
"R",
"R"},{
"H",
"D"}}, {{
"D",
"A"},{
"C",
"G"},{
"B",
"N"}}, {{
"L",
"H"},{
"M",
"P"},{
"K",
"B"}}};
723 for (
int ll = 0; ll < 2; ll++) {
742 int rmspecialeta_loc[6][6] = {
743 { 14, 15, 14, 13, 12, 11 },
744 { 14, 15, 14, 13, 12, 11 },
745 { 10, 9, 8, 7, 6, 5 },
746 { 10, 9, 8, 7, 6, 5 },
747 { 14, 15, 14, 13, 12, 11 },
748 { 14, 15, 14, 13, 12, 11 }
751 std::string rmspeciallet_code_loc[6][6] = {
752 {
"X",
"B",
"C",
"D",
"E",
"F" },
753 {
"X",
"P",
"Q",
"R",
"S",
"T" },
754 {
"G",
"H",
"J",
"K",
"L",
"M" },
755 {
"A",
"B",
"C",
"D",
"E",
"F" },
756 {
"X",
"B",
"C",
"D",
"E",
"F" },
757 {
"X",
"P",
"Q",
"R",
"S",
"T" }
760 std::string rmspecialdet_loc[6][6] = {
761 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
762 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
763 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
764 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
765 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
766 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" }
769 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
772 for (
int jj = 0;
jj < 6;
jj++) {
773 for (
int kk = 0;
kk < 6;
kk++) {
776 for (
int jj = 0;
jj < 6;
jj++) {
777 for (
int kk = 0;
kk < 6;
kk++) {
782 int rmspecialeta_loc[6][6] = {
783 { 11, 12, 13, 14, 15, 15 },
784 { 11, 12, 13, 14, 15, 15 },
785 { 5, 6, 7, 8, 9, 10 },
786 { 5, 6, 7, 8, 9, 10 },
787 { 14, 15, 14, 13, 12, 11 },
788 { 11, 12, 13, 14, 15, 15 }
791 std::string rmspeciallet_code_loc[6][6] = {
792 {
"F",
"E",
"D",
"C",
"B",
"X" },
793 {
"T",
"S",
"R",
"Q",
"P",
"X" },
794 {
"M",
"L",
"K",
"J",
"H",
"G" },
795 {
"F",
"E",
"D",
"C",
"B",
"A" },
796 {
"X",
"B",
"C",
"D",
"E",
"F" },
797 {
"T",
"S",
"R",
"Q",
"P",
"X" }
800 std::string rmspecialdet_loc[6][6] = {
801 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
802 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
803 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
804 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
805 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
806 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" }
809 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
812 for (
int jj = 0;
jj < 6;
jj++) {
813 for (
int kk = 0;
kk < 6;
kk++) {
816 for (
int jj = 0;
jj < 6;
jj++) {
817 for (
int kk = 0;
kk < 6;
kk++) {
822 int rmspecialeta_loc[6][6] = {
823 { 11, 12, 13, 14, 15, 15 },
824 { 11, 12, 13, 14, 15, 15 },
825 { 5, 6, 7, 8, 9, 10 },
826 { 5, 6, 7, 8, 9, 10 },
827 { 11, 12, 13, 14, 15, 15 },
828 { 11, 12, 13, 14, 15, 15 }
831 std::string rmspeciallet_code_loc[6][6] = {
832 {
"F",
"E",
"D",
"C",
"B",
"X" },
833 {
"T",
"S",
"R",
"Q",
"P",
"X" },
834 {
"M",
"L",
"K",
"J",
"H",
"G" },
835 {
"F",
"E",
"D",
"C",
"B",
"A" },
836 {
"F",
"E",
"D",
"C",
"B",
"X" },
837 {
"T",
"S",
"R",
"Q",
"P",
"X" }
840 std::string rmspecialdet_loc[6][6] = {
841 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
842 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
843 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
844 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
845 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
846 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" }
849 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
852 for (
int jj = 0;
jj < 6;
jj++) {
853 for (
int kk = 0;
kk < 6;
kk++) {
856 for (
int jj = 0;
jj < 6;
jj++) {
857 for (
int kk = 0;
kk < 6;
kk++) {
864 stringstream mystream;
893 if (
ieta <= 3 && (iside < 0 || phmod6 >= 4))
fpga =
"bot";
894 else if (ieta <= 3 && iside > 0 &&
phmod6 < 4)
fpga =
"top";
900 else if (ieta < 10 && ieta >= 6 &&
iside > 0)
fpga =
"bot";
904 else if ((ieta < 10 && ieta >= 6) &&
iside < 0)
fpga =
"top";
905 else edm::LogInfo(
"HcalLogicalMapGenerator") <<
"Bad fpga code"<<endl;
937 else if (ieta <= 13 && ieta >= 6 &&
iside == 1)
ih = 1;
938 else if (ieta <= 13 && ieta >= 6 &&
iside == -1)
ih = 3;
944 if (
iphi % 18 == 17 ||
iphi % 18 <= 4)
is = 0;
945 else if (
iphi % 18 >= 5 &&
iphi % 18 <= 10)
is = 1;
1013 else if (
ieta == 1){
1059 rbx = mystream.str();
1087 else if ( iphi == 67 ) {
1093 else if (
iside == -1) {
1100 else if ( iphi == 65 ) {
1106 else if (
ring == 2 ) {
1112 else if ( iphi == 31 ) {
1126 HOHXEntries.push_back(hoxlmapentry);
1130 const int hashedId=hgdi.
hashedId(
false);
1147 HOHXEntries.push_back(hoxlmapentry);
1151 const int hashedId=hgdi.
hashedId(
false);
1168 HOHXEntries.push_back(hoxlmapentry);
1172 const int hashedId=hgdi.
hashedId(
false);
std::string rmspeciallet_code[6][6]
static const int NHSETSHO
int ihslotho[NHSETSHO][NHTRSHO]
int ipixelHO[NRMFIBR][NFCH][2]
int hashedId(bool h2mode_=false) const
static uint32_t makeEntryNumber(bool, int, int)
int HO_htr_fi_450eta16M[4]
int HO_RM_fi_eta1to4[72][2][2]
int HO_RM_fi_eta5to15[11]
int HO_RM_table[24][16][2]
int HO_htr_fi_450eta5to15[2][11]
int HO_htr_fi_eta123[2][6]
std::string rmspecialdet[6][6]
int HO_htr_fi_450eta16P[4][6]
std::string letterHO[NRMFIBR][NFCH][2]