TMVA: printing variable rank

I recently transitioned from TMVA 3.8.13 to TMVA 3.9.5. I’ve had difficulty getting variable rankings to print. When I call the Factory constructor, I pass it an option string of “V” and when I call PrepareTrainingAndTestTree, I also pass an options string including “V”. For extra caution, I even call factory->SetVerbose() immediately after factory construction. Finally, when I call factory->BookMethod, my options string contains “V”. None of these cause the variable rankings to print. My output contains:

— Factory : Booking method: MLP
— Factory : Training all methods…
— Factory : Train method: MLP
— Factory : [>>>>>>>>>>>>>>>>>>>>>>>] (100%, time left: 2 sec)
— Factory : Begin ranking of input variables…
— Factory :
— Factory : Testing all classifiers…

So factory is trying to call CreateRanking(). I have many events in my training tree, so I do exceed the minimum in Factory.cxx to print ranks. My guess is the output is being squelched by MethodMLP, but I don’t know how else to set its verbosity level when I’ve already called BookMethod with “V” (I’ve also tried “VerbosityLevel=Info” to no avail). Afaik, methods don’t offer SetVerbose() like factory does.

Thanks for any suggestions,

Hi Malina,

The variable ranking should be always printed, independently of the verbose status. Something else must be wrong. Could you please send me the complete log output (privately to


Hi Malina and Andreas,

just to confirm: I just tested MLP with 3.9.5 and the variable ranking was printed for MLP.


Hi Joerg,

Yes, we had discussed this with Malina offline. She runs the TMVA Factory inside the CMS software. It appears as if there were a destructive interference between the CMS output streamer and the TMVA MsgLogger ?!