void gRead(){ if (!gROOT->GetClass("TMultiLayerPerceptron")) { gSystem->Load("libMLP"); } TTree *ANNTree = new TTree("ANNTree", "ANNTree"); /// Variables: //YC Float_t fnumberofPlates; Float_t fShowerAxisAngle; // shower Axis angle (tan theta) Float_t fnseg; Float_t fC1; Float_t fa1; Float_t falpha; Float_t fnmax; Int_t fEnergy; ANNTree->Branch("fnumberofPlates", &fnumberofPlates, "fnumberofPlates/F"); ANNTree->Branch("fShowerAxisAngle", &fShowerAxisAngle, "fShowerAxisAngle/F"); ANNTree->Branch("fnseg", &fnseg, "fnseg/F"); ANNTree->Branch("fC1", &fC1, "fC1/F"); ANNTree->Branch("fa1", &fa1, "fa1/F"); ANNTree->Branch("falpha", &falpha, "falpha/F"); ANNTree->Branch("fnmax", &fnmax, "fnmax/F"); ANNTree->Branch("fEnergy", &fEnergy, "fEnergy/I"); for (int i=0; i<4000; i++) { fnumberofPlates=gRandom->Uniform(0,100); fShowerAxisAngle=gRandom->Uniform(0,100); fnseg=gRandom->Uniform(0,100); fC1=gRandom->Uniform(0,100); fa1=gRandom->Uniform(0,100); falpha=gRandom->Uniform(0,100); fnmax=gRandom->Uniform(0,100); // fEnergy=gRandom->Uniform(0,8); fEnergy=0; ANNTree->Fill(); } for (int i=0; i<4000; i++) { fnumberofPlates=gRandom->Uniform(50,100); fShowerAxisAngle=gRandom->Uniform(50,100); fnseg=gRandom->Uniform(50,100); fC1=gRandom->Uniform(50,100); fa1=gRandom->Uniform(50,100); falpha=gRandom->Uniform(50,100); fnmax=gRandom->Uniform(50,100); fEnergy=gRandom->Uniform(2,10); fEnergy=1; ANNTree->Fill(); } int last = ANNTree->GetEntries()-1; ANNTree->Show(0); ANNTree->Show(last); TMultiLayerPerceptron *mlp = new TMultiLayerPerceptron("@fnseg,@fC1,@fa1,@falpha:@fnmax:6:5:@fEnergy","@fnmax",ANNTree,"Entry$%2","(Entry$+1)%2"); cout << mlp->GetStructure() << endl; gDebug=5; mlp->Print(); mlp->Train(100, "text,graph,update=10"); return; }