@@ -48,7 +48,6 @@ ITSFhrTask::~ITSFhrTask()
4848 delete mInfoCanvasOBComm ;
4949 delete mTextForShifter ;
5050 delete mTextForShifter2 ;
51- delete mHitmapTmp ;
5251
5352 for (int ilayer = 0 ; ilayer < 7 ; ilayer++) {
5453 delete mChipStaveOccupancy [ilayer];
@@ -170,8 +169,6 @@ void ITSFhrTask::createOccupancyPlots() //create general plots like error, trigg
170169 double Max[nDim] = { 1024 , 512 };
171170
172171 // create IB plots
173- mHitmapTmp = new TH2I (" Occupancy/Tmp_histo" , " Tmp histo" , 7 * 1024 , 0 , 4 * 1024 * 7 , 512 , 0 , 4 * 512 );
174- getObjectsManager ()->startPublishing (mHitmapTmp );
175172 for (int ilayer = 0 ; ilayer < NLayerIB; ilayer++) {
176173 if (!mEnableLayers [ilayer]) {
177174 continue ;
@@ -354,11 +351,6 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
354351 for (auto & pixel : pixels) {
355352 mGeom ->getChipId (mChipDataBuffer ->getChipID (), lay, sta, ssta, mod, chip);
356353 mHitNumberOfChip [lay][sta][ssta][mod][chip]++;
357- if (lay < NLayerIB) {
358- double filltmp[2 ] = { (double )pixel.getCol () + (double )chip * 1024 , (double )pixel.getRow () };
359- mStaveHitmap [lay][sta]->Fill (filltmp, 1 );
360- } else {
361- }
362354 if (mHitPixelID_Hash [lay][sta][ssta][mod][chip].find (pixel.getCol () * 1000 + pixel.getRow ()) == mHitPixelID_Hash [lay][sta][ssta][mod][chip].end ()) {
363355 mHitPixelID_Hash [lay][sta][ssta][mod][chip][pixel.getCol () * 1000 + pixel.getRow ()] = 1 ;
364356 } else {
@@ -387,8 +379,6 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
387379 // mTriggerVsFeeid->Reset(); Trigger is statistic by ourself so we don't need reset this plot, just use TH::Fill function
388380
389381 // Fill Error plots and occpancy plots
390- int istavemax = 0 ;
391- int istavemin = 999 ;
392382 o2::itsmft::ChipMappingITS mp;
393383 for (int ilayer = 0 ; ilayer < NLayer; ilayer++) {
394384 if (mOccupancyPlot [ilayer]) {
@@ -403,13 +393,6 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
403393 if (!RUdecode) {
404394 continue ;
405395 }
406- if (istave > istavemax) {
407- istavemax = istave;
408- }
409- if (istave < istavemin) {
410- istavemin = istave;
411- }
412-
413396 for (int ilink = 0 ; ilink < RUDecodeData::MaxLinksPerRU; ilink++) {
414397 const auto * GBTLinkInfo = mDecoderTmp ->getGBTLink (RUdecode->links [ilink]);
415398 if (!GBTLinkInfo) {
@@ -421,11 +404,11 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
421404 mChipStaveOccupancy [ilayer]->SetBinContent (ichip + 1 , istave + 1 , (mHitNumberOfChip [ilayer][istave][0 ][0 ][ichip]) / (GBTLinkInfo->statistics .nPackets * 1024 . * 512 .));
422405 std::unordered_map<unsigned int , int >::iterator iter;
423406 for (iter = mHitPixelID_Hash [ilayer][istave][0 ][0 ][ichip].begin (); iter != mHitPixelID_Hash [ilayer][istave][0 ][0 ][ichip].end (); iter++) {
407+ int pixelPos[2 ] = { (int )(iter->first / 1000 ) + (int )ichip * 1024 , (int )(iter->first % 1000 ) };
408+ mStaveHitmap [ilayer][istave]->SetBinContent (pixelPos, (double )iter->second );
424409 double pixelOccupancy = (double )iter->second ;
425- if (pixelOccupancy > 0 ) {
426- pixelOccupancy /= GBTLinkInfo->statistics .nPackets ;
427- mOccupancyPlot [ilayer]->Fill (log10 (pixelOccupancy));
428- }
410+ pixelOccupancy /= GBTLinkInfo->statistics .nPackets ;
411+ mOccupancyPlot [ilayer]->Fill (log10 (pixelOccupancy));
429412 }
430413 }
431414 }
@@ -449,10 +432,8 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
449432 int pixelPos[2 ] = { (ihic * ((nChipsPerHic[lay] / 2 ) * NCols)) + (nChipsPerHic[lay] / 2 ) * NCols - (ichip - 7 ) * NCols - ((int )iter->first / 1000 ) + 1 , NRows + ((int )iter->first % 1000 ) + (1024 * isubstave) + 1 };
450433 mStaveHitmap [ilayer][istave]->SetBinContent (pixelPos, pixelOccupancy);
451434 }
452- if (pixelOccupancy > 0 ) {
453- pixelOccupancy /= GBTLinkInfo->statistics .nPackets ;
454- mOccupancyPlot [ilayer]->Fill (log10 (pixelOccupancy));
455- }
435+ pixelOccupancy /= GBTLinkInfo->statistics .nPackets ;
436+ mOccupancyPlot [ilayer]->Fill (log10 (pixelOccupancy));
456437 }
457438 }
458439 }
@@ -464,12 +445,14 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
464445 }
465446 }
466447 for (int ierror = 0 ; ierror < o2::itsmft::GBTLinkDecodingStat::NErrorsDefined; ierror++) {
448+ if (GBTLinkInfo->statistics .errorCounts [ierror] <= 0 ) {
449+ continue ;
450+ }
467451 mErrorPlots ->AddBinContent (ierror + 1 , GBTLinkInfo->statistics .errorCounts [ierror]);
468452 if (ilayer < NLayerIB) {
469453 mErrorVsFeeid ->SetBinContent ((RUid * 3 ) + ilink + 1 , ierror + 1 , GBTLinkInfo->statistics .errorCounts [ierror]);
470454 } else {
471- RUid -= StaveBoundary[NLayerIB];
472- mErrorVsFeeid ->SetBinContent ((RUid * 2 ) + ilink + 1 , ierror + 1 , GBTLinkInfo->statistics .errorCounts [ierror]);
455+ mErrorVsFeeid ->SetBinContent (((RUid - StaveBoundary[NLayerIB]) * 2 ) + ilink + 1 , ierror + 1 , GBTLinkInfo->statistics .errorCounts [ierror]);
473456 }
474457 }
475458 }
@@ -504,36 +487,34 @@ void ITSFhrTask::getEnableLayers()
504487
505488void ITSFhrTask::endOfCycle ()
506489{
507- std::ifstream runNumberFile (" /home/its/QC_Online/workdir/ infiles/RunNumber.dat" ); // catching ITS run number in commissioning
490+ std::ifstream runNumberFile (" infiles/RunNumber.dat" ); // catching ITS run number in commissioning
508491 if (runNumberFile) {
509492 std::string runNumber;
510493 runNumberFile >> runNumber;
511494 ILOG (Info) << " runNumber : " << runNumber << ENDM ;
512495 mInfoCanvasComm ->SetTitle (Form (" run%s" , runNumber.c_str ()));
513- if (runNumber == mRunNumber ) {
514- goto pass;
515- }
516- getObjectsManager ()->addMetadata (mTFInfo ->GetName (), " Run" , runNumber);
517- getObjectsManager ()->addMetadata (mErrorPlots ->GetName (), " Run" , runNumber);
518- getObjectsManager ()->addMetadata (mErrorVsFeeid ->GetName (), " Run" , runNumber);
519- getObjectsManager ()->addMetadata (mTriggerVsFeeid ->GetName (), " Run" , runNumber);
520- getObjectsManager ()->addMetadata (mTriggerPlots ->GetName (), " Run" , runNumber);
521- getObjectsManager ()->addMetadata (mInfoCanvasComm ->GetName (), " Run" , runNumber);
522- for (int ilayer = 0 ; ilayer < NLayer; ilayer++) {
523- if (!mEnableLayers [ilayer]) {
524- continue ;
525- }
526- getObjectsManager ()->addMetadata (mChipStaveOccupancy [ilayer]->GetName (), " Run" , runNumber);
527- getObjectsManager ()->addMetadata (mOccupancyPlot [ilayer]->GetName (), " Run" , runNumber);
528- getObjectsManager ()->addMetadata (mChipStaveEventHitCheck [ilayer]->GetName (), " Run" , runNumber);
529- for (int istave = 0 ; istave < NStaves[ilayer]; istave++) {
530- if (mStaveHitmap [ilayer][istave]) {
531- getObjectsManager ()->addMetadata (mStaveHitmap [ilayer][istave]->GetName (), " Run" , runNumber);
496+ if (runNumber != mRunNumber ) {
497+ getObjectsManager ()->addMetadata (mTFInfo ->GetName (), " Run" , runNumber);
498+ getObjectsManager ()->addMetadata (mErrorPlots ->GetName (), " Run" , runNumber);
499+ getObjectsManager ()->addMetadata (mErrorVsFeeid ->GetName (), " Run" , runNumber);
500+ getObjectsManager ()->addMetadata (mTriggerVsFeeid ->GetName (), " Run" , runNumber);
501+ getObjectsManager ()->addMetadata (mTriggerPlots ->GetName (), " Run" , runNumber);
502+ getObjectsManager ()->addMetadata (mInfoCanvasComm ->GetName (), " Run" , runNumber);
503+ for (int ilayer = 0 ; ilayer < NLayer; ilayer++) {
504+ if (!mEnableLayers [ilayer]) {
505+ continue ;
506+ }
507+ getObjectsManager ()->addMetadata (mChipStaveOccupancy [ilayer]->GetName (), " Run" , runNumber);
508+ getObjectsManager ()->addMetadata (mOccupancyPlot [ilayer]->GetName (), " Run" , runNumber);
509+ getObjectsManager ()->addMetadata (mChipStaveEventHitCheck [ilayer]->GetName (), " Run" , runNumber);
510+ for (int istave = 0 ; istave < NStaves[ilayer]; istave++) {
511+ if (mStaveHitmap [ilayer][istave]) {
512+ getObjectsManager ()->addMetadata (mStaveHitmap [ilayer][istave]->GetName (), " Run" , runNumber);
513+ }
532514 }
533515 }
516+ mRunNumber = runNumber;
534517 }
535- mRunNumber = runNumber;
536- pass:;
537518 }
538519 ILOG (Info) << " endOfCycle" << ENDM ;
539520}
0 commit comments