Skip to content

WIP: Add a preliminary beauty BDT and an example line

Shunan Zhang requested to merge b2oc-shunan-BDT into b2oc_upgrade

A B-BDT filter is implemented in prefilter.py. It is trained by Bs->DsK MC as signal input and minbias MC as background input. The BDT is a preliminary one and will be updated with a more generic one for most B decays.

Training variables (plot attached):

log_B_PT: log(Bs_PT)
log_B_FDCHI2: log(BPVVDCHI2)
log_B_DIRA: log(1 - BPVDIRA)
log_B_ENDVERTEX_CHI2: log(VFASPF(VCHI2/VDOF))

Now the BDT is somehow overtrained due to the limited sample size of signal MC (plot attached).

The default cut value is set to -0.1, which is a little bit tight to make sure it's working.

An example line, Hlt2B2OC_BdToDsmK_DsmToHHH_BDTLine is added in b_to_dh.py to demonstrate its functionality. This line is a direct copy of Hlt2B2OC_BdToDsmK_DsmToHHH_Line, which is the signal channel of BDT. The only difference between these two lines is the BDT filter before input to algs.

A test with 1k events gives:

LAZY_AND: Hlt2B2OC_BdToDsmK_DsmToHHH_BDTLine                      #=1000    Sum=105         Eff=|( 10.50000 +- 0.969407)%|
LAZY_AND: Hlt2B2OC_BdToDsmK_DsmToHHH_Line                         #=1000    Sum=107         Eff=|( 10.70000 +- 0.977502)%|

variables_id_c1.eps overtrain_BDT.eps

Edited by Shunan Zhang

Merge request reports