Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void AddData(TMVA::Factory* factory, vector<vector<double> > &data, double learnTestRatio, const char *className)
- {
- int firstTestEventIndex = learnTestRatio * data.size();
- for(int i = 0; i < data.size(); ++i)
- {
- if (i < firstTestEventIndex)
- {
- factory->AddTrainingEvent(className, data[i], 1);
- }
- else
- {
- factory->AddTestEvent(className, data[i], 1);
- }
- }
- }
- // .......
- gROOT->SetBatch(true);
- vector<vector<double> > alphaData;
- vector<vector<double> > electronData;
- vector<vector<double> > gammaData;
- vector<vector<double> > muonData;
- LoadData(m_AlphaStorage, alphaData);
- LoadData(m_ElectronStorage, electronData);
- LoadData(m_GammaStorage, gammaData);
- LoadData(m_MuonStorage, muonData);
- TFile outputFile("tmva_multi.root", "RECREATE");
- TMVA::Factory* factory = new TMVA::Factory("multi", &outputFile, "V");
- //add variables to the factory
- int numDim = alphaData[0].size();
- for(int i=0; i<numDim; i++)
- {
- char name[10];
- sprintf(name,"var%d",i+1);
- factory->AddVariable(name, 'F');
- }
- OutputDebugStringF("Number of dimensions for LDA learning: %d\n", numDim);
- AddData(factory, alphaData, 0.3, "Alpha");
- AddData(factory, electronData, 0.5, "Electron");
- AddData(factory, gammaData, 0.5, "Gamma");
- AddData(factory, muonData, 0.5, "Muon");
- factory->PrepareTrainingAndTestTree("", "");
- factory->BookMethod(TMVA::Types::kMLP, "MLP", "HiddenLayers=N+3,N");
- factory->TrainAllMethods();
- factory->TestAllMethods();
- factory->EvaluateAllMethods();
- outputFile.Close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement