Skip to content

Commit 195c178

Browse files
authored
ITS/FHR: new definition of noise pixel (#2503)
* new definition of noise pixel * clang * clang2 * clang3 * Clang 6
1 parent 7e3800c commit 195c178

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

Modules/ITS/include/ITS/ITSFhrTask.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,14 @@ class ITSFhrTask final : public TaskInterface
109109
int mDoHitmapFilter = 1; // do filtering of noise pixel vector
110110
std::unordered_map<unsigned int, int>*** mHitPixelID_InStave = nullptr /* = new std::unordered_map<unsigned int, int>**[NStaves[lay]]*/;
111111
int** mHitnumberLane = nullptr /* = new int*[NStaves[lay]]*/; // IB : hitnumber[stave][chip]; OB : hitnumber[stave][lane]
112-
double** mOccupancyLane /* = new double*[NStaves[lay]]*/; // IB : occupancy[stave][chip]; OB : occupancy[stave][Lane]
112+
double** mOccupancyLane /* = new double*[NStaves[lay]]*/; // IB : occupancy[stave][chip]; OB : occupancy[stave][Lane]
113113
int*** mErrorCount = nullptr /* = new int**[NStaves[lay]]*/; // IB : errorcount[stave][FEE][errorid]
114114
double** mChipPhi = nullptr /* = new double*[NStaves[lay]]*/; // IB/OB : mChipPhi[Stave][chip]
115115
double** mChipZ = nullptr /* = new double*[NStaves[lay]]*/; // IB/OB : mChipZ[Stave][chip]
116116

117117
int** mChipStat = nullptr /* = new double*[NStaves[lay]]*/; // IB/OB : mChipStat[Stave][chip]
118118
int mNoisyPixelNumber[7][48] = { { 0 } };
119-
119+
unsigned long nHitsTotal = 0;
120120
int mMaxGeneralAxisRange = -3; // the range of TH2Poly plots z axis range, pow(10, mMinGeneralAxisRange) ~ pow(10, mMaxGeneralAxisRange)
121121
int mMinGeneralAxisRange = -12; //
122122
int mMaxGeneralNoisyAxisRange = 4000;

Modules/ITS/itsFhr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"taskParameters": {
3838
"Layer": "4",
3939
"HitNumberCut": "0",
40-
"decoderThreads": "8",
40+
"decoderThreads": "1",
4141
"HitNumberCutForNoisyPixel": "0",
4242
"OccupancyNumberCutForNoisyPixel": "0.000001",
4343
"MaxGeneralAxisRange": "-2",

Modules/ITS/src/ITSFhrTask.cxx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
500500
for (auto& digit : digVec[istave][0]) {
501501
int chip = digit.getChipIndex() % 9;
502502
mHitPixelID_InStave[istave][0][chip][1000 * digit.getColumn() + digit.getRow()]++;
503+
nHitsTotal++;
503504
if (mTFCount <= mCutTFForSparse) {
504505
Double_t pixelPos[2] = { 1. * (digit.getColumn() + (1024 * chip)), 1. * digit.getRow() };
505506
mStaveHitmap[istave]->Fill(pixelPos);
@@ -510,6 +511,7 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
510511
for (auto& digit : digVec[istave][ihic]) {
511512
int chip = ((digit.getChipIndex() - ChipBoundary[mLayer]) % (14 * nHicPerStave[mLayer])) % 14;
512513
mHitPixelID_InStave[istave][ihic][chip][1000 * digit.getColumn() + digit.getRow()]++;
514+
nHitsTotal++;
513515
int ilink = ihic / (nHicPerStave[mLayer] / 2);
514516
if (mTFCount <= mCutTFForSparse) {
515517
if (chip < 7) {
@@ -536,6 +538,7 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
536538
}
537539

538540
int totalhit = 0;
541+
539542
#ifdef WITH_OPENMP
540543
omp_set_num_threads(mNThreads);
541544
#pragma omp parallel for schedule(dynamic) reduction(+ \
@@ -566,10 +569,11 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
566569

567570
if (mDoHitmapFilter == 1) {
568571
for (auto iter = mHitPixelID_InStave[istave][0][ichip].begin(); iter != mHitPixelID_InStave[istave][0][ichip].end();) {
569-
if ((double)iter->second / GBTLinkInfo->statistics.nTriggers < mPhysicalOccupancyIB) { // 40 hits/cm^2 * 5 pixels/hits * 4.5 cm^2 / 1024 / 512 = 1.7e-3/pixel/event for physics
572+
if ((double)iter->second / 10 < (double)nHitsTotal / ((ChipBoundary[mLayer + 1] - ChipBoundary[mLayer]) * 1024 * 512)) { // noisy if more than 3x of averaged per chip
570573
mHitPixelID_InStave[istave][0][ichip].erase(iter++);
571-
} else
574+
} else {
572575
++iter;
576+
}
573577
}
574578
}
575579

@@ -607,10 +611,12 @@ void ITSFhrTask::monitorData(o2::framework::ProcessingContext& ctx)
607611

608612
if (mDoHitmapFilter == 1) {
609613
for (auto iter = mHitPixelID_InStave[istave][ihic + ilink * ((nHicPerStave[mLayer] / NSubStave[mLayer]))][ichip].begin(); iter != mHitPixelID_InStave[istave][ihic + ilink * ((nHicPerStave[mLayer] / NSubStave[mLayer]))][ichip].end();) {
610-
if ((double)iter->second / GBTLinkInfo->statistics.nTriggers < mPhysicalOccupancyOB) { // 1 hits/cm^2 * 5 pixels/hits * 4.5 cm^2 / 1024 / 512 = 4.3e-5/pixel/event`
614+
if ((double)iter->second / 100 < (double)nHitsTotal / ((ChipBoundary[mLayer + 1] - ChipBoundary[mLayer]) * 1024 * 512)) { // noisy if more than 3x of averaged per chip
611615
mHitPixelID_InStave[istave][ihic + ilink * ((nHicPerStave[mLayer] / NSubStave[mLayer]))][ichip].erase(iter++);
612-
} else
616+
617+
} else {
613618
++iter;
619+
}
614620
}
615621
}
616622
for (auto iter = mHitPixelID_InStave[istave][ihic + ilink * ((nHicPerStave[mLayer] / NSubStave[mLayer]))][ichip].begin(); iter != mHitPixelID_InStave[istave][ihic + ilink * ((nHicPerStave[mLayer] / NSubStave[mLayer]))][ichip].end(); iter++) {

0 commit comments

Comments
 (0)