Skip to content

[bbyy] configurable non-resonant BDT and VBF variable options

The purpose of this MR is to make running the non-resonant bbyy BDT optional, and performing any sort of VBF algorithm optional (including the saving of VBF variables), for flexibility for the user. e.g. for SH(bbyy), neither of these are necessary, and only add unnecessary computation and ntuple branches.

I tested this with the following commands:

bbyy-ntupler /eos/user/a/atishelm/ntuples/SHbbyy/examples/mc20_13TeV.800904.Py8EG_A14NNPDF23LO_XHS_X170_S030_HyySbb.deriv.DAOD_PHYS.e8531_a907_r14859_p6026/DAOD_PHYS.37663611._000002.pool.root.1 --run-config bbyyAnalysis/RunConfig-Resonant-Default.yaml  --out-file analysis-variables-SHbbyy-resconfig.root --e 1000

Output does not contain BDT or VBF branches, as desired.

bbyy-ntupler /eos/user/a/atishelm/ntuples/SHbbyy/examples/mc20_13TeV.800904.Py8EG_A14NNPDF23LO_XHS_X170_S030_HyySbb.deriv.DAOD_PHYS.e8531_a907_r14859_p6026/DAOD_PHYS.37663611._000002.pool.root.1 --run-config bbyyAnalysis/RunConfig-bbyy-skimming-legacy.yaml  --out-file analysis-variables-SHbbyy.root --e 1000

Output contains BDT and VBF branches, as desired.

Later tested all of these cases:

VBFjetsMethod do_nonresonant_BDTs save_VBF_vars result
mjj false false no BDT and VBF variables stored
mjj false true VBF variables stored
mjj true false BDT vars stored
mjj true true BDT and VBF vars stored
BDT false false does not crash, as expected
BDT false true ERROR caught properly during initialize
BDT true false BDT vars stored
BDT true true BDT and VBF vars stored

Where do_GNN2bjetSelection was always false. I think that variable should be fine, because when it's turned on, it still has checks in place for VBF (in the initialize) and BDTs.

Edited by Abraham Tishelman-Charny

Merge request reports