639 int hocrate_loc[
NHOCR]={3,7,6,13};
642 int fedhonum_loc[
NHOCR][2]={{724,725},{726,727},{728,729},{730,731}};
645 int ihslotho_loc[
NHSETSHO][
NHTRSHO]={{2,3,4,5},{6,7,13,14},{15,16,17,18}};
648 int ihophis_loc[
NHOCR]={71,17,35,53};
653 int HO_RM_table_loc[24][16][2] =
655 {{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}},
656 {{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}},
657 {{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}},
658 {{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}},
659 {{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}},
660 {{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}},
661 {{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}},
662 {{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}},
663 {{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}},
664 {{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}},
665 {{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}},
666 {{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}},
667 {{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}},
668 {{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}},
669 {{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}},
670 {{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}},
671 {{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}},
672 {{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}},
673 {{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}},
674 {{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}},
675 {{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}},
676 {{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}},
677 {{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}},
678 {{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}}
680 memcpy(
HO_RM_table, HO_RM_table_loc,
sizeof(
int)*24*16*2 );
683 int HO_RM_fi_eta5to15_loc[11] = {3, 2, 5, 4, 7, 6, 3, 2, 5, 4, 7};
691 int HO_htr_fi_450eta5to15_loc[2][11] = {{2, 2, 4, 6, 8, 2, 4, 6, 8, 4, 6},
692 {2, 8, 6, 4, 2, 8, 6, 4, 2, 4, 2}};
696 int HO_htr_fi_450eta16M_loc[4] = {7, 7, 8, 8};
700 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} };
704 int HO_htr_fi_eta4_loc[2][6] = {{6, 6, 8, 8, 7, 7},
708 int HO_htr_fi_eta123_loc[2][6] = {{6, 5, 4, 3, 8, 7},
716 int HO_RM_fi_eta1to4_loc[72][2][2] =
718 {{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}},
719 {{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}},
720 {{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}},
721 {{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}},
722 {{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}},
723 {{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}},
724 {{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}},
725 {{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}},
726 {{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}}
734 int ipixelHO_loc[
NRMFIBR][
NFCH][2] = {{{12,12},{ 7, 7},{ 6, 3}}, {{ 4, 4},{ 8, 8},{ 5, 1}}, {{19,11},{18, 6},{17, 2}},
735 {{ 2, 9},{ 1,13},{ 3, 5}}, {{11,19},{16,18},{15,17}}, {{13,15},{ 9,14},{14,16}}};
738 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"}},
739 {{
"X",
"K"},{
"R",
"R"},{
"H",
"D"}}, {{
"D",
"A"},{
"C",
"G"},{
"B",
"N"}}, {{
"L",
"H"},{
"M",
"P"},{
"K",
"B"}}};
742 for (
int kk = 0; kk <
NFCH; kk++) {
743 for (
int ll = 0; ll < 2; ll++) {
762 int rmspecialeta_loc[6][6] = {
763 { 14, 15, 14, 13, 12, 11 },
764 { 14, 15, 14, 13, 12, 11 },
765 { 10, 9, 8, 7, 6, 5 },
766 { 10, 9, 8, 7, 6, 5 },
767 { 14, 15, 14, 13, 12, 11 },
768 { 14, 15, 14, 13, 12, 11 }
772 {
"X",
"B",
"C",
"D",
"E",
"F" },
773 {
"X",
"P",
"Q",
"R",
"S",
"T" },
774 {
"G",
"H",
"J",
"K",
"L",
"M" },
775 {
"A",
"B",
"C",
"D",
"E",
"F" },
776 {
"X",
"B",
"C",
"D",
"E",
"F" },
777 {
"X",
"P",
"Q",
"R",
"S",
"T" }
781 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
782 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
783 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
784 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
785 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
786 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" }
789 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
792 for (
int jj = 0;
jj < 6;
jj++) {
793 for (
int kk = 0; kk < 6; kk++) {
796 for (
int jj = 0;
jj < 6;
jj++) {
797 for (
int kk = 0; kk < 6; kk++) {
802 int rmspecialeta_loc[6][6] = {
803 { 11, 12, 13, 14, 15, 15 },
804 { 11, 12, 13, 14, 15, 15 },
805 { 5, 6, 7, 8, 9, 10 },
806 { 5, 6, 7, 8, 9, 10 },
807 { 14, 15, 14, 13, 12, 11 },
808 { 11, 12, 13, 14, 15, 15 }
812 {
"F",
"E",
"D",
"C",
"B",
"X" },
813 {
"T",
"S",
"R",
"Q",
"P",
"X" },
814 {
"M",
"L",
"K",
"J",
"H",
"G" },
815 {
"F",
"E",
"D",
"C",
"B",
"A" },
816 {
"X",
"B",
"C",
"D",
"E",
"F" },
817 {
"T",
"S",
"R",
"Q",
"P",
"X" }
821 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
822 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
823 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
824 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
825 {
"HOX",
"HO",
"HO",
"HO",
"HO",
"HO" },
826 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" }
829 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
832 for (
int jj = 0;
jj < 6;
jj++) {
833 for (
int kk = 0; kk < 6; kk++) {
836 for (
int jj = 0;
jj < 6;
jj++) {
837 for (
int kk = 0; kk < 6; kk++) {
842 int rmspecialeta_loc[6][6] = {
843 { 11, 12, 13, 14, 15, 15 },
844 { 11, 12, 13, 14, 15, 15 },
845 { 5, 6, 7, 8, 9, 10 },
846 { 5, 6, 7, 8, 9, 10 },
847 { 11, 12, 13, 14, 15, 15 },
848 { 11, 12, 13, 14, 15, 15 }
852 {
"F",
"E",
"D",
"C",
"B",
"X" },
853 {
"T",
"S",
"R",
"Q",
"P",
"X" },
854 {
"M",
"L",
"K",
"J",
"H",
"G" },
855 {
"F",
"E",
"D",
"C",
"B",
"A" },
856 {
"F",
"E",
"D",
"C",
"B",
"X" },
857 {
"T",
"S",
"R",
"Q",
"P",
"X" }
861 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
862 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
863 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
864 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HO" },
865 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" },
866 {
"HO",
"HO",
"HO",
"HO",
"HO",
"HOX" }
869 memcpy(
rmspecialeta, rmspecialeta_loc,
sizeof(
int)*6*6 );
872 for (
int jj = 0;
jj < 6;
jj++) {
873 for (
int kk = 0; kk < 6; kk++) {
876 for (
int jj = 0;
jj < 6;
jj++) {
877 for (
int kk = 0; kk < 6; kk++) {
884 stringstream mystream;
913 if (
ieta <= 3 && (iside < 0 || phmod6 >= 4))
fpga =
"bot";
914 else if (ieta <= 3 && iside > 0 &&
phmod6 < 4)
fpga =
"top";
920 else if (ieta < 10 && ieta >= 6 &&
iside > 0)
fpga =
"bot";
924 else if ((ieta < 10 && ieta >= 6) &&
iside < 0)
fpga =
"top";
925 else edm::LogInfo(
"HcalLogicalMapGenerator") <<
"Bad fpga code"<<endl;
957 else if (ieta <= 13 && ieta >= 6 &&
iside == 1)
ih = 1;
958 else if (ieta <= 13 && ieta >= 6 &&
iside == -1)
ih = 3;
964 if (
iphi % 18 == 17 ||
iphi % 18 <= 4)
is = 0;
965 else if (
iphi % 18 >= 5 &&
iphi % 18 <= 10)
is = 1;
1008 else if (
ieta == 4){
1033 else if (
ieta == 1){
1079 rbx = mystream.str();
1107 else if ( iphi == 67 ) {
1113 else if (
iside == -1) {
1120 else if ( iphi == 65 ) {
1126 else if (
ring == 2 ) {
1132 else if ( iphi == 31 ) {
1146 HOHXEntries.push_back(hoxlmapentry);
1150 unsigned int denseId;
1153 HoHash2Entry.at(denseId)=HOHXEntries.size();
1156 HxCalibHash2Entry.at(denseId)=HOHXEntries.size();
1172 HOHXEntries.push_back(hoxlmapentry);
1176 unsigned int denseId;
1179 HoHash2Entry.at(denseId)=HOHXEntries.size();
1182 HxCalibHash2Entry.at(denseId)=HOHXEntries.size();
1197 HOHXEntries.push_back(hoxlmapentry);
1201 unsigned int denseId;
1204 HoHash2Entry.at(denseId)=HOHXEntries.size();
1207 HxCalibHash2Entry.at(denseId)=HOHXEntries.size();
std::string rmspeciallet_code[6][6]
static const int NHSETSHO
int ihslotho[NHSETSHO][NHTRSHO]
int ipixelHO[NRMFIBR][NFCH][2]
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]
unsigned int detId2denseIdHO(const DetId &id) const
return a linear packed id from HO
std::string rmspecialdet[6][6]
unsigned int detId2denseIdCALIB(const DetId &id) const
return a linear packed id from CALIB
int HO_htr_fi_450eta16P[4][6]
std::string letterHO[NRMFIBR][NFCH][2]