diff --git a/Trigger/TrigT1/TrigT1RPChardware/src/Pad.cxx b/Trigger/TrigT1/TrigT1RPChardware/src/Pad.cxx index 7d1877144698e3a975abdf455782200975e240bd..b209dc8d5e82c48b7ed9fe43883bcdabb11dc783 100755 --- a/Trigger/TrigT1/TrigT1RPChardware/src/Pad.cxx +++ b/Trigger/TrigT1/TrigT1RPChardware/src/Pad.cxx @@ -25,6 +25,8 @@ Pad::Pad(int run, int event, CMAword debug, // CMA data are loaded in the PAD with the method "load" // padDebug=debug; +//padDebug=0x3f; all debug ON + const ubit16 df=0; m_run = run; m_event=event; @@ -147,6 +149,7 @@ if(m_lowhigh) { overlap(); makeOut(); if (m_feet_on) makeFeet(); + if(padDebug&1<<df) display(0); }//end-of-if(m_lowhigh }//end-of-Pad::execute //---------------------------------------------------------// @@ -170,7 +173,8 @@ for(m=0; m<2; m++) { // Low- High-Pt thisThreshold = 3*m + m_padIn[m][j][i][l][0]; // find highest threshold if(thisThreshold > m_padStep2[l][j][i] ) { - m_padStep2[l][j][i] = thisThreshold; + if (m_padStep2[l][j][i]==0) m_padStep2[l][j][7]++; // num of RoI with threshold + m_padStep2[l][j][i] = thisThreshold; }//end-of-if //if( !j && (thisThreshold > m_padStep2[l][j][2]) ) { if( thisThreshold > m_padStep2[l][j][2] ) { @@ -183,7 +187,7 @@ for(m=0; m<2; m++) { // Low- High-Pt <<m_padStep2[l][j][2]<<endl; }//end-of-if(padDebug&1<<df) }//end-of-if(m_padStep2 - m_padStep2[l][j][4]++; // number of RoIs with thresh. + m_padStep2[l][j][4]++; // number of CMs with thresh. }//end-of-if( m && m_hitInOuterPlane }//end-of-if(m_padIn }//end-of-for(l @@ -286,8 +290,7 @@ for(l=0; l<m_nBunMax; l++) { //loop on Bunches } if(m_padStep2[l][1][5]) m_padOut[l][3] = 1; // ovl phi if(m_padStep2[l][0][5]) m_padOut[l][4] = 1; // ovl eta - m_padOut[l][5] = m_padStep2[l][0][7]; // roi ambiguity - + if(m_padStep2[l][0][7]+m_padStep2[l][1][7]>2) m_padOut[l][5] = 1; // roi ambiguity }//end-of-if }//end-of-for(l }//end-of-Pad::makeOutEtaAndPhi() diff --git a/Trigger/TrigT1/TrigT1RPChardware/src/SectorLogic.cxx b/Trigger/TrigT1/TrigT1RPChardware/src/SectorLogic.cxx index 279b8db8c90e90b84bcd7e253cac6c8f0fb1c7ba..700831f5eaecc8841cd8b028339b62afda976d01 100755 --- a/Trigger/TrigT1/TrigT1RPChardware/src/SectorLogic.cxx +++ b/Trigger/TrigT1/TrigT1RPChardware/src/SectorLogic.cxx @@ -388,6 +388,7 @@ CMAword SectorLogic::output(ubit16 i){ bc = i+8-BCZERO; } + if (m_OutFromSectorLogic[i].pt1==0) m_OutFromSectorLogic[i].pt1=7; if (m_OutFromSectorLogic[i].pt2==0) m_OutFromSectorLogic[i].pt2=7; @@ -403,8 +404,8 @@ CMAword SectorLogic::output(ubit16 i){ fmtout = fmtout | (( m_OutFromSectorLogic[i].ove2 & 0x01) << 18); // Eta overlap2 fmtout = fmtout | (( m_OutFromSectorLogic[i].pt1 & 0x07) << 19); // Pt1 fmtout = fmtout | (( m_OutFromSectorLogic[i].pt2 & 0x07) << 22); // Pt2 - fmtout = fmtout | (( m_OutFromSectorLogic[i].ntrig1 & 0x01) << 25); // >1 candidate in ROI1 - fmtout = fmtout | (( m_OutFromSectorLogic[i].ntrig2 & 0x01) << 26); // >1 candidate in ROI2 + fmtout = fmtout | (( m_OutFromSectorLogic[i].r1 & 0x01) << 25); // >1 candidate in ROI1 + fmtout = fmtout | (( m_OutFromSectorLogic[i].r2 & 0x01) << 26); // >1 candidate in ROI2 fmtout = fmtout | (( bc & 0x07) << 27); // BCID fmtout = fmtout | (( m_OutFromSectorLogic[i].sign1 & 0x01) << 30); // Candidate1 sign fmtout = fmtout | (( m_OutFromSectorLogic[i].sign2 & 0x01) << 31); // Candidate2 sign @@ -569,6 +570,7 @@ void SectorLogic::execute(){ m_SortHighest_out[ibx].out.ove1 = m_SortHighest_in[ibx].pad[pad_reg4].oveta; m_SortHighest_out[ibx].out.ntrig1 = m_SortHighest_in[ibx].pad[pad_reg4].ntrig; m_SortHighest_out[ibx].out.sign1 = m_SortHighest_in[ibx].pad[pad_reg4].sign; + m_SortHighest_out[ibx].out.r1 = m_SortHighest_in[ibx].pad[pad_reg4].r; // set to 1 the number of valid tracks m_SortHighest_out[ibx].out.ntrig = 1; // and put the ouput internal register to 0 @@ -609,6 +611,7 @@ void SectorLogic::execute(){ m_Sort2ndHighest_out[ibx].out.ove2 = m_Sort2ndHighest_in[ibx].pad[pad_reg5].oveta; m_Sort2ndHighest_out[ibx].out.ntrig2 = m_Sort2ndHighest_in[ibx].pad[pad_reg5].ntrig; m_Sort2ndHighest_out[ibx].out.sign2 = m_Sort2ndHighest_in[ibx].pad[pad_reg5].sign; + m_Sort2ndHighest_out[ibx].out.r2 = m_Sort2ndHighest_in[ibx].pad[pad_reg5].r; // set to 2 the number of valid tracks m_Sort2ndHighest_out[ibx].out.ntrig = 2; // and put the ouput internal register to 0