while (1) { in >> num_id_cycle >> num_id_evt >> t10ns >> tdc1 >> tdc2 >> nplan >> id1 >> id2 >> nhits; /****** FILE READ (1) : 1 PLANE ROW ******/ if ( num_id_evt != num_id_evt_cur) { if ( nplnHits == nbrPlan ) /* FIRST CUT : ALL PLANES ARE HIT */ { bool isGoodPlan[nbrPlan], isAmuon[nbrPlan], isGood = false; bool cutTrkX = false, cutTrkY = false; int nXCombinations = 0, nYCombinations = 0; unsigned enrgTot = 0, enrgMax = 0; for ( int ip=0; ip0) && (isY[ip]>0) && (isX[ip]<=2) && (isY[ip]<=2) && (enrgRatio > enrgRatioCut) ); } float DX01=((float)2.*maxChX[1]-(float)maxChX[0]), DY01=((float)2.*maxChY[1]-(float)maxChY[0]); float DX12=((float)maxChX[2]-(float)2.*maxChX[1]), DY12=((float)maxChY[2]-(float)2.*maxChY[1]); isGood = ( (isAmuon[0] && isGoodPlan[1] && isAmuon[2]) && (abs(DX01-DX12)<=deltaXMax) && (abs(DY01-DY12)<=deltaYMax) ); // isGood = true; if ( isGood ) /* SECOND CUT : TRACK ALIGNMENT IN X & Y */ { nEvtTot++; hTEvt->Fill((num_id_cycle-tStart)/3600./24.); // hTEvt->Fill(num_id_cycle); henrgTot->Fill(enrgTot); henrgMax->Fill(enrgMax); for ( int ip=0; ipFill(t10nsPlan[ip]); InterEvtTime = t10nsPlan[ip]-t10nsHitPrev ; if ( InterEvtTime <= 20 ) hTInterEvtCoinc->Fill(InterEvtTime); if ( InterEvtTime > 20 ) hTInterEvtAll->Fill((float)(InterEvtTime/100000.)); t10nsHitPrev = t10nsPlan[ip] ; if ( (maxChX[ip])>=1 && (maxChY[ip])>=1 ) { h[ip][maxChX[ip]- 1]->Fill(maxAdcX[ip]); h[ip][maxChY[ip]+31]->Fill(maxAdcY[ip]); /* Décalage : X = h[][0]->h[][31] et Y = h[][32]->h[][63] */ } } /* Filling acceptance histogram */ if ( num_id_cycle_cur <= tStartTomo){ hDXDY->Fill((float)(maxChY[2]-maxChY[0]),(float)(maxChX[2]-maxChX[0])); } if ( num_id_cycle_cur > tStartTomo){ hDXDYtomo->Fill((float)(maxChY[2]-maxChY[0]),(float)(maxChX[2]-maxChX[0])); } } } nplnHits = 0; for ( int ip=0; ip> nch >> nadc; if (nadc <= 10) continue; int ch2Xtmp = 0, ch2Ytmp = 0; if ( (ip == 0) || (ip == 2) ) { ch2Xtmp = (int) ch2Xfor32x32[nch] ; ch2Ytmp = (int) ch2Yfor32x32[nch] ;} /* V2 */ if ( ip == 1 ) { ch2Xtmp = (int) ch2Xfor16x16[nch] ; ch2Ytmp = (int) ch2Yfor16x16[nch] ;} /* V1 */ if ( ((ip == 0) || (ip == 2)) && (ch2Xtmp != 0) && (nadc > zeroSuppressADCCut)) { chX[ip][isX[ip]] = ch2Xtmp ; adcX[ip][isX[ip]] = (int) nadc ; sumADC[ip] += adcX[ip][isX[ip]]; isX[ip]++ ;} if ( ((ip == 0) || (ip == 2)) && (ch2Ytmp != 0) && (nadc > zeroSuppressADCCut)) { chY[ip][isY[ip]] = ch2Ytmp ; adcY[ip][isY[ip]] = (int) nadc ; sumADC[ip] += adcY[ip][isY[ip]]; isY[ip]++ ;} if ( (ip == 1) && (ch2Xtmp != 0) ) { chX[ip][isX[ip]] = ch2Xtmp ; adcX[ip][isX[ip]] = (int) nadc ; sumADC[ip] += adcX[ip][isX[ip]]; isX[ip]++ ;} if ( (ip == 1) && (ch2Ytmp != 0) ) { chY[ip][isY[ip]] = ch2Ytmp ; adcY[ip][isY[ip]] = (int) nadc ; sumADC[ip] += adcY[ip][isY[ip]]; isY[ip]++ ;} outputFile << "IP: " << ip << ", Channel: " << nch << ", X: " << ch2Xtmp << ", Y: " << ch2Ytmp << ", ADC: " << nadc << std::endl; } if (!in.good()) break; if (nlines < 5) printf("num_id_cycle=%lu, num_id_evt=%lu, t10ns=%lu\n", num_id_cycle, num_id_evt, t10ns); num_id_evt_cur = num_id_evt; num_id_cycle_cur = num_id_cycle; nplnHits++; nlines++; }