Implementing root TMVA for high level analysis
Implementing TMVA methods for high level analysis, please check https://root.cern.ch/download/doc/tmva/TMVAUsersGuide.pdf for further details on TMVA.
Summary of changes:
- New class
TRestDataSetTMVAto evaluate different TMVA methods onTRestDatasetsnote that a signal and a background dataSet must be provided together with differentTMVAmethods. This class evaluate all the methods provided and generates a root file and a folder with the results. - New class
TRestDataSetTMVAClassificationto performs the classification of a givenTRestDataSetusing as input the results of the TMVA evaluation methods generated usingTRestDataSetTMVA. An output dataset is generated by /// definining a new observable with the TMVA method e.g. BDT_score. - Added example
tmva.rml - Minor updates on
TRestRunandTRestDataSet
I don't think we should name all the classes using TRestDataSet I think we should assume these classes will use internally TRestDataSet as something natural.
I would only use the DataSet inside the class name when it is clear that we need to differentiate.
For example, inside the sensitivity classes, I plan to have TRestComponent as a base class for TRestDataSetComponent and TRestFormulaComponent.
But it seems to me that TRestDataSetXYZ is over used.
I think discrimination methods usage should be unified by an abstract class TRestDiscrimination. Then TMVA method would be named TRestTMVADiscrimination that uses a TRestDataSet as implemented in TRestDiscrimination.
In my opinion discrimination in our field of research takes such an important role that I would dedicate a directory for all the future discrimination methods. Creating a new directory discrimination.
See issue https://github.com/rest-for-physics/framework/issues/13
I don't think we should name all the classes using
TRestDataSetI think we should assume these classes will use internallyTRestDataSetas something natural.
Well, I just followed the suggestions done here https://github.com/rest-for-physics/framework/pull/392#issuecomment-1485726154 On the other hand, I think we should differenciate between discrimination and data processing, the new TMVA classes are just used to define new observables using TMVA, but the event discrimination is not performed there. I think the TMVA or eithed the LogOdds clasess fits under analysis folder, but we can implement more generic methods for event discrimintation in a different folder.
I don't know how to proceed renaming these classes because is not clear to me the best way to add them to the repository.
I don't think we should name all the classes using
TRestDataSetI think we should assume these classes will use internallyTRestDataSetas something natural.Well, I just followed the suggestions done here #392 (comment) On the other hand, I think we should differenciate between discrimination and data processing, the new TMVA classes are just used to define new observables using TMVA, but the event discrimination is not performed there. I think the TMVA or eithed the LogOdds clasess fits under analysis folder, but we can implement more generic methods for event discrimintation in a different folder.
I don't know how to proceed renaming these classes because is not clear to me the best way to add them to the repository.
Ok, perhaps we should discuss this online