/* In contrast to "updateReducedDeconvFisher.C", the 2D array variables are divided into * 1D array elements. * Started 6/6/18 by John Russell. */ #include "AnitaTMVA.h" // Use this to take care of requisite TMVA includes. void polarizedReducedDeconvFisher() { // Open trees to be considered in TMVA. TFile signalFile("cutFiles/waisCutFiles/waisCutFileAll.root"); TFile backgroundFile("cutFiles/decimatedThermalCutFiles/decimatedThermalCutFileAll.root"); TTree * signalCutTree = (TTree *) signalFile.Get("cutTree"); TTree * backgroundCutTree = (TTree *) backgroundFile.Get("cutTree"); // Create file in which to store TMVA results. TFile tmvaOutFile("tmvaFiles/polarizedReducedDeconvFisher.root", "RECREATE"); // Set up the TMVA factory. TMVA::Factory * factory = new TMVA::Factory("polarizedReducedFactory", & tmvaOutFile, "V"); // The "V" is for verbose output. TMVA::DataLoader * dl = new TMVA::DataLoader("tmvaFiles"); // For interface with ROOT starting version 6.07/04. // Variables to train on. // dl -> AddVariable("deconvWaveformCuts.waveformPeak[0]"); // dl -> AddVariable("deconvWaveformCuts.waveformPeak[1]"); dl -> AddVariable("deconvWaveformCuts.waveformPeakZScore[0]"); dl -> AddVariable("deconvWaveformCuts.waveformPeakZScore[1]"); // dl -> AddVariable("deconvWaveformCuts.analyticPeak[0]"); // dl -> AddVariable("deconvWaveformCuts.analyticPeak[1]") dl -> AddVariable("deconvWaveformCuts.analyticPeakZScore[0]"); dl -> AddVariable("deconvWaveformCuts.analyticPeakZScore[1]"); // dl -> AddVariable("deconvWaveformCuts.snr[0]"); // dl -> AddVariable("deconvWaveformCuts.snr[1]"); dl -> AddVariable("deconvWaveformCuts.linearPolFrac[0]"); dl -> AddVariable("deconvWaveformCuts.linearPolFrac[1]"); dl -> AddVariable("deconvWaveformCuts.impulsivity[0]"); dl -> AddVariable("deconvWaveformCuts.impulsivity[1]"); // dl -> AddVariable("deconvWaveformCuts.autocorr5nsMean[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrWaveform5nsRMS[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrWaveform5nsValZScore[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrAnalytic5nsRMS[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrAnalytic5nsValZScore[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrWaveformFullValZScore[0]"); // dl -> AddVariable("deconvWaveformCuts.autocorrAnalyticFullValZScore[0]"); dl -> AddVariable("deconvWaveformCuts.TIMdB[0]"); dl -> AddVariable("deconvWaveformCuts.TIMdB[1]"); // dl -> AddVariable("deconvWaveformCuts.corrPeak[0]"); // dl -> AddVariable("deconvWaveformCuts.corrPeak[1]"); dl -> AddVariable("deconvWaveformCuts.corrPeakZScore[0]"); dl -> AddVariable("deconvWaveformCuts.corrPeakZScore[1]"); // dl -> AddVariable("deconvWaveformCuts.analyticCorrPeak[0]"); // dl -> AddVariable("deconvWaveformCuts.analyticCorrPeak[1]"); dl -> AddVariable("deconvWaveformCuts.analyticCorrPeakZScore[0]"); dl -> AddVariable("deconvWaveformCuts.analyticCorrPeakZScore[1]"); // dl -> AddVariable("mapCuts.mapPeak[0]"); // dl -> AddVariable("mapCuts.mapPeak[1]"); // dl -> AddVariable("mapCuts.rectMapSNR[0]"); // dl -> AddVariable("mapCuts.rectMapSNR[1]"); // dl -> AddVariable("mapCuts.sphMapSNR[0]"); // dl -> AddVariable("mapCuts.sphMapSNR[1]"); // dl -> AddVariable("mapCuts.rectMapPeakZScore[0]"); // dl -> AddVariable("mapCuts.rectMapPeakZScore[1]"); dl -> AddVariable("mapCuts.sphMapPeakZScore[0]"); dl -> AddVariable("mapCuts.sphMapPeakZScore[1]"); dl -> AddVariable("deconvWaveformCuts.fishy[0]"); dl -> AddVariable("deconvWaveformCuts.fishy[1]"); // Add spectator variables. dl -> AddSpectator("run"); dl -> AddSpectator("eventNumber"); dl -> AddSpectator("mapCuts.mapPeakNegTheta[0]"); dl -> AddSpectator("mapCuts.mapPeakNegTheta[1]"); // Setting up signal and background (background) trees to be pointed towards Factory. dl -> AddSignalTree(signalCutTree); dl -> AddBackgroundTree(backgroundCutTree); // Choose Fisher linear discriminant analysis to perform testing. factory -> BookMethod(dl, TMVA::Types::kFisher, "deconvFisher", ""); // Collection of training, testing, and evaluating the MVA, then save the results to tree. factory -> TrainAllMethods(); factory -> TestAllMethods(); factory -> EvaluateAllMethods(); tmvaOutFile.Write(); }