Skip to content

Commit 8359622

Browse files
committed
Add PadFlags treatment, add protection
1 parent 945c08c commit 8359622

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

Detectors/TPC/base/src/Painter.cxx

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,9 @@ TCanvas* painter::draw(const CalDet<T>& calDet, int nbins1D, float xMin1D, float
334334
const GlobalPosition2D pos = mapper.getPadCentre(PadROCPos(roc, irow, ipad));
335335
const int bin = hist2D->FindBin(pos.X(), pos.Y());
336336
if (!hist2D->GetBinContent(bin)) {
337-
hist2D->SetBinContent(bin, val);
337+
hist2D->SetBinContent(bin, double(val));
338338
}
339-
hist1D->Fill(val);
339+
hist1D->Fill(double(val));
340340
}
341341
}
342342
}
@@ -430,7 +430,7 @@ void painter::fillHistogram2D(TH2& h2D, const CalDet<T>& calDet, Side side)
430430
const GlobalPosition2D pos = mapper.getPadCentre(PadROCPos(roc, irow, ipad));
431431
const int bin = h2D.FindBin(pos.X(), pos.Y());
432432
if (!h2D.GetBinContent(bin)) {
433-
h2D.SetBinContent(bin, val);
433+
h2D.SetBinContent(bin, double(val));
434434
}
435435
}
436436
}
@@ -454,7 +454,7 @@ void painter::fillHistogram2D(TH2& h2D, const CalArray<T>& calArray)
454454
const GlobalPadNumber pad = mapper.getPadNumber(padSubset, position, irow, ipad);
455455
const auto val = calArray.getValue(pad);
456456
const int cpad = ipad - padsInRow / 2;
457-
h2D.Fill(irow, cpad, val);
457+
h2D.Fill(irow, cpad, double(val));
458458
}
459459
}
460460
}
@@ -523,6 +523,17 @@ std::enable_if_t<std::is_unsigned<T>::value, bool> hasData(const CalArray<T>& ca
523523
return cal.getSum() > T{0};
524524
}
525525

526+
template <typename T>
527+
std::enable_if_t<std::is_enum<T>::value, bool> hasData(const CalArray<T>& cal)
528+
{
529+
for (const auto v : cal.getData()) {
530+
if (int(v) > 0) {
531+
return true;
532+
}
533+
}
534+
return false;
535+
}
536+
526537
template <class T>
527538
std::vector<TCanvas*> painter::makeSummaryCanvases(const CalDet<T>& calDet, int nbins1D, float xMin1D, float xMax1D, bool onlyFilled, std::vector<TCanvas*>* outputCanvases)
528539
{
@@ -589,7 +600,7 @@ std::vector<TCanvas*> painter::makeSummaryCanvases(const CalDet<T>& calDet, int
589600
// ===| 1D histogram |===
590601
auto h1D = new TH1F(fmt::format("h1_{}_{:02d}", calName, iroc).data(), fmt::format("{} distribution ROC {:02d} ({});ADC value", calName, iroc, getROCTitle(iroc)).data(), nbins1D, xMin1D, xMax1D);
591602
for (const auto& val : roc.getData()) {
592-
h1D->Fill(val);
603+
h1D->Fill(double(val));
593604
}
594605

595606
// ===| 2D histogram |===
@@ -1342,6 +1353,9 @@ void painter::adjustPalette(TH1* h, float x2ndc, float tickLength)
13421353
gPad->Modified();
13431354
gPad->Update();
13441355
auto palette = (TPaletteAxis*)h->GetListOfFunctions()->FindObject("palette");
1356+
if (!palette) {
1357+
return;
1358+
}
13451359
palette->SetX2NDC(x2ndc);
13461360
auto ax = h->GetZaxis();
13471361
ax->SetTickLength(tickLength);
@@ -1425,6 +1439,12 @@ template TCanvas* painter::draw<short>(const CalArray<short>& calArray);
14251439
template TH2* painter::getHistogram2D<short>(const CalDet<short>& calDet, Side side);
14261440
template TH2* painter::getHistogram2D<short>(const CalArray<short>& calArray);
14271441

1442+
template TCanvas* painter::draw<PadFlags>(const CalDet<PadFlags>& calDet, int, float, float, TCanvas*);
1443+
template std::vector<TCanvas*> painter::makeSummaryCanvases<PadFlags>(const CalDet<PadFlags>& calDet, int, float, float, bool, std::vector<TCanvas*>*);
1444+
template TCanvas* painter::draw<PadFlags>(const CalArray<PadFlags>& calArray);
1445+
template TH2* painter::getHistogram2D<PadFlags>(const CalDet<PadFlags>& calDet, Side side);
1446+
template TH2* painter::getHistogram2D<PadFlags>(const CalArray<PadFlags>& calArray);
1447+
14281448
template TCanvas* painter::draw<bool>(const CalDet<bool>& calDet, int, float, float, TCanvas*);
14291449
template std::vector<TCanvas*> painter::makeSummaryCanvases<bool>(const CalDet<bool>& calDet, int, float, float, bool, std::vector<TCanvas*>*);
14301450
template TCanvas* painter::draw<bool>(const CalArray<bool>& calArray);

0 commit comments

Comments
 (0)