Skip to content

Commit

Permalink
Merge pull request #18380 from makortel/fixFillNoFlow
Browse files Browse the repository at this point in the history
Fix overflow filling in MultiTrackValidator and PackedCandidateTrackValidator
  • Loading branch information
cmsbuild committed Apr 20, 2017
2 parents 6006330 + 5f645ef commit 8b68a62
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
11 changes: 9 additions & 2 deletions DQM/TrackingMonitor/src/PackedCandidateTrackValidator.cc
Expand Up @@ -27,8 +27,15 @@
#include <iomanip>

namespace {
template<typename T> void fillNoFlow(MonitorElement* h, T val){
h->Fill(std::min(std::max(val,((T) h->getTH1()->GetXaxis()->GetXmin())),((T) h->getTH1()->GetXaxis()->GetXmax())));
template<typename T> void fillNoFlow(MonitorElement* me, T val){
auto h = me->getTH1();
const auto xaxis = h->GetXaxis();
if(val <= xaxis->GetXmin())
h->AddBinContent(xaxis->GetFirst());
else if(val >= xaxis->GetXmax())
h->AddBinContent(xaxis->GetLast());
else
h->Fill(val);
}

class HitPatternPrinter {
Expand Down
11 changes: 9 additions & 2 deletions Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc
Expand Up @@ -31,8 +31,15 @@ namespace {
axis->Set(bins, new_bins.data());
}

template<typename T> void fillPlotNoFlow(MonitorElement *h, T val) {
h->Fill(std::min(std::max(val,((T) h->getTH1()->GetXaxis()->GetXmin())),((T) h->getTH1()->GetXaxis()->GetXmax())));
template<typename T> void fillPlotNoFlow(MonitorElement *me, T val) {
auto h = me->getTH1();
const auto xaxis = h->GetXaxis();
if(val <= xaxis->GetXmin())
h->AddBinContent(xaxis->GetFirst());
else if(val >= xaxis->GetXmax())
h->AddBinContent(xaxis->GetLast());
else
h->Fill(val);
}

void setBinLabels(MonitorElement *h, const std::vector<std::string>& labels) {
Expand Down

0 comments on commit 8b68a62

Please sign in to comment.