I want to differentiate between signal (S) and background (B), but the only difference between them “technically” is that the event weights are different.
Say I have a pT distribution for process S. Now if I want to get the pT distribution for B, I just take the pT distribution of S and weight correspondingly in each bin to get the pT distribution of B. I do a similar thing for MET, Et, etc. At the distribution level, I know this is correct since the distributions look like what they should. But at the tree level, nothing has really changed. The only difference between S and B trees is a weight branch that is different between S and B.
(pT, MET, Et etc are just some standard input variables)
Is it possible to train a BDT to identify S from B? I was thinking about per-bin weights in the standard way:
factory->AddSignalTree ( signal, signalWeight );
factory->AddBackgroundTree( background, backgroundWeight );
But I want to know if this makes sense. As the raw input variables are not different between S and B, will discrimination really work?