I’m working with TMVA to classify signal and background events, and I am trying to apply a selection criteria on the training/testing data for both the signal and background samples. This is the code I used for the selection:
TCut mycut = "jet1_pt > 500000 && jet1_pt < 1320000 && jet2_pt > 320000 && jet2_pt < 1320000";
factory->PrepareTrainingAndTestTree( mycut, "SplitMode=random:!V" );
With this, the signal events get about 92% efficiency, but none of the background events pass at all, which shouldn’t happen. I tried simplifying the background selection requiring that jet1_pt > 0 with the following:
TCut mycut = "jet1_pt > 500000 && jet1_pt < 1320000 && jet2_pt > 320000 && jet2_pt < 1320000";
TCut temp = "jet1_pt > 0";
factory->PrepareTrainingAndTestTree( mycut, temp, "SplitMode=random:!V" );
Which does exactly as I expect: signal events still have about 92% efficiency and all of the background events pass (100% efficiency). So then I increased the bound on background jet1_pt from 0 to very low numbers (tried: 10, 1, 0.1, 0.00000001), and again none of the events pass the background selection.
I checked the plot of jet1_pt for the background sample with TBrowser, and I don’t see anything wrong. There is a large peak around 400000-800000 (units of MeV), the total number of events is about 3 million, and TMVA claims to see 3.2 million events before the selection.