framework icon indicating copy to clipboard operation
framework copied to clipboard

Implementing root TMVA for high level analysis

Open juanangp opened this issue 2 years ago • 3 comments

juanangp Large: 917

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 TRestDataSetTMVA to evaluate different TMVA methods on TRestDatasets note that a signal and a background dataSet must be provided together with different TMVA methods. This class evaluate all the methods provided and generates a root file and a folder with the results.
  • New class TRestDataSetTMVAClassification to performs the classification of a given TRestDataSet using as input the results of the TMVA evaluation methods generated using TRestDataSetTMVA. 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 TRestRun and TRestDataSet

juanangp avatar Jun 15 '23 20:06 juanangp

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

jgalan avatar Jun 16 '23 06:06 jgalan

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.

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.

juanangp avatar Jun 16 '23 07:06 juanangp

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.

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

jgalan avatar Jun 23 '23 09:06 jgalan