15 TH2F tmp_dead_pixels(*
static_cast<TH2F*
>(input->Clone(
"tmp_dead_pixels")));
16 tmp_dead_pixels.Reset();
18 TH2F& deadpixels_output = output.at(0);
19 deadpixels_output.SetName(Form(
"deadpixels_%s",deadpixels_output.GetName()));
20 deadpixels_output.SetTitle(Form(
"dead pixels, %s",deadpixels_output.GetTitle()));
21 deadpixels_output.Reset();
23 auto maxHitValue=input->GetMaximum();
26 for(
int col_ID=1; col_ID<=input->GetNbinsY(); col_ID++)
28 for(
int row_ID=1; row_ID<=input->GetNbinsX(); row_ID++)
30 if(input->GetBinContent(row_ID, col_ID)==0 )
35 int inactive_pixels_around=0;
38 for(
auto legpix : legit_pixels)
40 sum_neighbours+=input->GetBinContent(legpix.first, legpix.second);
41 if(input->GetBinContent(legpix.first, legpix.second)<1) ++inactive_pixels_around;
44 if(inactive_pixels_around<4 && std::round(sum_neighbours/nNeighbours)>=
m_range*maxHitValue)
46 deadpixels_output.Fill(row_ID, col_ID);
47 tmp_dead_pixels.SetBinContent(row_ID,col_ID, 1);
58 for(
int col_ID=1; col_ID<=input->GetNbinsY(); col_ID++)
60 for(
int row_ID=1; row_ID<=input->GetNbinsX(); row_ID++)
62 if(tmp_dead_pixels.GetBinContent(row_ID,col_ID)==0 && input->GetBinContent(row_ID, col_ID)==0)
67 int inactive_pixels_around=0;
68 int dead_pixels_around=0;
71 for(
auto legpix : legit_pixels)
73 sum_neighbours+=input->GetBinContent(legpix.first, legpix.second);
74 if(input->GetBinContent(legpix.first, legpix.second)<1) ++inactive_pixels_around;
76 if(tmp_dead_pixels.GetBinContent(legpix.first, legpix.second)>0) dead_pixels_around++;
80 if(dead_pixels_around>0 && inactive_pixels_around>3 && std::round(sum_neighbours/nNeighbours)>=
m_range*maxHitValue)
82 deadpixels_output.Fill(row_ID, col_ID);
83 tmp_dead_pixels.SetBinContent(row_ID,col_ID, 1);
97 std::vector<std::pair<int,int>> legit_pixels={};
99 for(
int r=-1;
r<2;
r++)
101 for(
int c=-1; c<2; c++)
103 if( (row_ID+
r)>=1 && (col_ID+c)>=1 && (col_ID+c)<=input->GetNbinsY() && (row_ID+
r)<=input->GetNbinsX() && (
r!=0 || c!=0))
105 legit_pixels.push_back(std::pair<int,int>(row_ID+
r,col_ID+c));