Reweighting BDT Scores to Match Data and MC

Reweighting BDT Scores to Match Data and MC

Classifier score distributions that disagree between data and simulation are one of the most common headaches in HEP analyses. If you have trained a BDT and the score peak sits in a slightly different place in data versus MC, or the tails behave differently, your signal efficiency and background rejection estimates will be wrong — and so will your final result. The good news is that BDT score reweighting is a well-defined, practical procedure. The bad news is it is easy to apply it carelessly and introduce a bias that is worse than the original mismatch. This article walks you through how to do it correctly.

Why the Mismatch Happens

A BDT score is a nonlinear combination of every input feature. Any imperfect modelling in any of those features — tracker hit efficiency, jet energy scale, pile-up description — propagates into the score in a way that is hard to trace back to a single source. You might have already applied per-feature corrections upstream, yet the score still disagrees. That is normal. The score integrates small residuals from every observable, so discrepancies compound.

The Two Approaches Worth Knowing

Before reaching for a correction, decide which approach fits your situation.

Approach 1 – Reweight MC events to match the data score distribution. You derive a weight as a function of the BDT score that, when applied to MC, makes its score distribution agree with data. This is data/MC reweighting on the classifier score itself.

Approach 2 – Reweight in input-feature space first, then retrain or re-evaluate. You correct the individual observables — kinematics, multiplicity, shape variables — and propagate those corrections into a fresh score evaluation. This is more interpretable but requires more work and a stable set of input corrections.

Most analyses use Approach 1 as a fast, practical fix, and that is what the rest of this article focuses on.

Step-by-Step: BDT Score Reweighting Without Bias

Step 1 – Define a control region, not the signal region

Derive the reweighting in a dedicated control region where the signal contamination is negligible. If you derive it in the signal region, you are implicitly using signal-sensitive information to correct your background model, which is circular and biased. Choose a sideband or an orthogonal selection that populates the score distribution broadly.

Step 2 – Build the ratio histogram

In the control region, form histograms of the BDT score separately for data and for MC background. Divide data by MC, bin by bin. The result is a weight as a function of score value. Choose your binning carefully: too coarse and you miss real shape differences; too fine and statistical fluctuations in the control region get propagated as fake corrections into your signal region.

Step 3 – Smooth and validate

Fit a smooth curve — a low-order polynomial or a piecewise spline — to the ratio before applying it. Raw bin-by-bin ratios carry statistical noise that will inflate your uncertainties downstream. After smoothing, apply the weights to MC in the control region itself and verify the corrected distribution agrees with data. This is a basic closure test: if it does not close in the region where you derived it, something is wrong.

Step 4 – Cross-validate in a second control region

A single closure test is necessary but not sufficient. Find a second control region — a different sideband, a different selection — and apply the same weights there. If the weights derived in region A also make MC agree with data in region B, you have reasonable evidence the classifier score correction is physical and transferable. If it only closes where you derived it, the weights are absorbing something region-specific and you should be cautious about extrapolating to the signal region.

Step 5 – Propagate a systematic uncertainty

The reweighting is a correction, not a ground truth. Assign a systematic uncertainty by varying the smoothing, the control-region definition, or the binning, and observe how those variations change your final observable. This uncertainty should cover the residual disagreement in your validation region. Understanding how to build robust uncertainty estimates from reweighting procedures is a topic worth reading about separately.

Common Mistakes to Avoid

  • Deriving weights in the signal region. This is the most dangerous error; it can sculpt the background model in a way that mimics or hides a signal.
  • Forgetting to propagate event weights through the full analysis chain. Weights on the score need to flow into every downstream histogram, efficiency estimate, and limit-setting input.
  • Applying weights trained on one MC generator to events from a different generator without checking that the score distributions are comparable to begin with.

If you find yourself doing more complex reweighting — multidimensional corrections in joint feature space, or iterative density-ratio estimation — the full HEP ML course covers the underlying methods in detail, including modern density-ratio techniques that go beyond simple histogram ratios.

A Note on Iterative and ML-Based Reweighting

When the score mismatch traces back to several correlated features, a one-dimensional reweighting on the score can fail to close. In those cases, iterative reweighting methods or learned density ratios — where a classifier itself estimates the data/MC weight — are more powerful. These are extensions of the same idea: you are always estimating a ratio of densities and using it to align two distributions.


Done carefully, BDT score reweighting is a reliable tool; done carelessly, it can hide or create a signal — so always validate in a second, independent region before trusting the result.

Want to go deeper?

Machine Learning for High Energy Physics: The Complete Course takes you from first principles to a defensible result in 6 structured modules. $97, 30-day guarantee.

See the course →

Not ready yet? Grab Module 1 free →