I’m training TMVA with backgrounds, and applied the classifier on each back separately.
I got a background efficiency from the training. After application, I will obtained efficiency for each background.
When I compare the background efficiency after training and application, I found they are similar but different.
May I ask, is it ok to apply classifier this way to see the contribution from each backgrounds?
Let me understand your setup!
You train with signal + bkg1 + bk2 to get a classifier
model and get a training efficiency
model(signal + bkg1 + bkg2) > 0.5 = eff_sig
You then apply the trained classifier to each background in separation,
model(signal + bkg1) > 0.5 = eff_sigbkg1 and
model(signal + bkg2) < 0.5 = eff_sigbkg2 to arrive at some efficiencies.
In this setting it makes sense to me that they are similar but different. I would further hazard that
eff_sig <= min(eff_sigbkg1, eff_sigbkg2) since adding more background should confuse the classifier.
To my limited understanding, this seems a reasonable operation. But you should talk to someone involved in physics analysis to be sure.
Thanks for the reply.
Let me explain and ask more clearly.
After training with signal + bkg1 + bkg2, I got a output ROC curve and background efficiency versus signal efficiency.
I applied this classifier on bkg1 and bkg2 by modify Application function in TMVAMultiBackground.C.
TString method = “BDT method”;
reader0->BookMVA( “BDT method”, “data_set/weights/TMVAClassification_BDT.weights.xml” );
reader1->BookMVA( “BDT method”, “data_set/weights/TMVAClassification_BDT.weights.xml” );
Then I got one root file with different backgrounds and signal with different classID.
I used TCutLoop.C to cut the BDT response to got the new background efficiency and signal efficiency.
This bkgefficiency obtained by #of events (bkg1+bkg2)/total events (bkg1 + bkg2)
When I compare the bkgefficiency(signal+bkg1+bkg2) and bkgefficiency(bkg1)+bkgefficiency(bkg2), they are similar but different.
May I ask, is this way correct?
I just want to ask for the TCutLoop.C. I cannot find it in the package of TMVA.
Would you tell me where should I find it ?