Why do I get negative values for bkg eff. when using 4 variables, but not when using 3 or less?

Hello all,

I am using TMVA with “Cuts” method and I keep getting negative values for bkg efficiency (and hence no cuts) when I add 4 variables to the dataloader. When using 3 or less variables, I don’t get this problem and the cut values are similar to what I expect from other methods. Do you know what could be happening? All variables are independent.

Example of what I get:

Cut values for requested signal efficiency: 0.6
                         : Corresponding background efficiency       : -0.1
                         : Transformation applied to input variables : None
                         : ----------------------------------------
                         : Cut[ 0]:          0 <  var1 <=          0
                         : Cut[ 1]:          0 <   var2 <=          0
                         : Cut[ 2]:          0 < var3 <=          0
                         : Cut[ 3]:          0 < var4 <=          0

Adding variables to dataloader:

   dataloader->AddVariable( "var1",  'F' );
   dataloader->AddVariable( "var2",   'F' );
   dataloader->AddVariable( "var3", 'F');
   dataloader->AddVariable( "var4", 'F');


This is strange. Can you please post your macro including the input data file needed tp reproduce this problem ?



Dear moneta,

here are the files:

I am running with " root -l ‘TMVAClassification.C(“Cuts”)’ ". Root version 6.14/04.

test_tree_80_150.root (103.0 KB)
TMVAClassification.C (27.8 KB)

If you obtain this negative value, means that there are no events left to compute a background efficiency. The value of -0.1 is the initial un-computed value. Probably it should be set to 0, I will investigate if this can be done


1 Like

Dear Lorenzo,

have you found a solution for this issue?

Best regards

I think @moneta gave the relevant hint: all events are part of the signal fits; no events “remain” which would allow to compute the background efficiency.