@@ -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+
526537template <class T >
527538std::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);
14251439template TH2* painter::getHistogram2D<short >(const CalDet<short >& calDet, Side side);
14261440template 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+
14281448template TCanvas* painter::draw<bool >(const CalDet<bool >& calDet, int , float , float , TCanvas*);
14291449template std::vector<TCanvas*> painter::makeSummaryCanvases<bool >(const CalDet<bool >& calDet, int , float , float , bool , std::vector<TCanvas*>*);
14301450template TCanvas* painter::draw<bool >(const CalArray<bool >& calArray);
0 commit comments