A serious bug has been discovered in the TMVA::Reader when dealing with 'I'-declared (int) variables. In that case, the Reader response is inconsistent with the test results derived in the training phase, and wrong (the test results are correct). We have uploaded TMVA-v3.7.3 with a fix of this bug - with however the temporary restriction that decorrelation preprocessing in presence of 'I'-declared variables does not work. We are working on a full fix of the problem.
There are two possibilities to circumvent the bug:
- Upgrade your TMVA version to v3.7.3, declare as usual your integer variables as 'I', but avoid using decorrelation or PCA transformation.
- Do not upgrade TMVA, use integer variables, but DO NOT declare these variables as 'I', but as 'F', when adding them to the Factory. In addition, when using the Reader, declare all variables that are added to the Reader as float, and just copy the integer variable into this float placeholder. All results will be correct (only Likelihood will treat these as continuous variables, but the performance should not be significantly affected by this).