Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:14:27

0001 #include <TFile.h>
0002 #include <TTree.h>
0003 #include <TString.h>
0004 #include <TChain.h>
0005 
0006 
0007 #if not defined(__CINT__) || defined(__MAKECINT__)
0008 // needs to be included when makecint runs (ACLIC)
0009 #include "TMVA/Factory.h"
0010 #include "TMVA/Tools.h"
0011 #endif
0012 
0013 
0014 
0015 TChain* handleFile(string name, string extension, string treename, int filecount){
0016   TChain *all = new TChain(treename.c_str());
0017   string temp;
0018   for (int i = 0; i < filecount; ++i)
0019   {
0020 
0021     ostringstream s;
0022     s<<i;
0023     temp = name+string(s.str())+extension;
0024     all->Add(temp.c_str());
0025   }
0026   return all;
0027 }
0028 
0029 
0030 void makeFactory(TTree* signalTree,std::string outfile,std::string factoryname)
0031 {
0032   using namespace TMVA;
0033   TString jobname(factoryname.c_str());
0034   TFile *targetFile = new TFile(outfile.c_str(),"RECREATE");
0035   Factory *factory = new Factory(jobname,targetFile,"AnalysisType=Regression");
0036   factory->AddRegressionTree(signalTree,1.0);
0037   factory->AddVariable("track1_pt",'F');
0038   factory->AddVariable("track2_pt",'F');
0039   factory->AddVariable("track1_phi",'F');
0040   factory->AddVariable("track1_phi-track2_phi","d#phi","rad");
0041   factory->AddVariable("track1_eta",'F');
0042   factory->AddVariable("track1_eta-track2_eta","d#eta","rad");
0043   factory->AddVariable("(vtx_radius)/(track_layer+1)",'F');
0044   factory->AddVariable("vtx_radius","radius","cm");
0045   factory->AddTarget("tvtx_radius","radius","cm");
0046 
0047   string track_pT_cut = "track1_pt>.6&&track2_pt>.6";
0048 
0049   //string vtx_radius_cut = "vtx_radius>0"; //can I cut based on label?
0050   string tCutInitializer = track_pT_cut;
0051   TCut preTraingCuts(tCutInitializer.c_str());
0052   factory->PrepareTrainingAndTestTree(preTraingCuts,"nTrain_Regression=0:nTest_Regression=0");
0053   factory->BookMethod(Types::kKNN,"kNN14L","VarTransform=G:nkNN=16");
0054   factory->BookMethod(Types::kKNN,"kNN12L","VarTransform=G:nkNN=8");
0055   //factory->BookMethod( Types::kPDERS, "PDERS", "KernelEstimator=Teepee:NEventsMin=120:NEventsMax=210:VarTransform=G(_V0_,_V1_,_V3_,_V5_)");
0056   //factory->BookMethod(Types::kMLP,"MLP_ANN2","HiddenLayers=500,6");
0057   //factory->BookMethod(Types::kMLP,"MLP_ANN","HiddenLayers=5");
0058 
0059 
0060   factory->TrainAllMethods();
0061   factory->TestAllMethods();
0062   factory->EvaluateAllMethods();
0063   targetFile->Write();
0064   targetFile->Close();
0065 }
0066 
0067 
0068 int vtxRS(){
0069   using namespace std;
0070   string treePath = "/sphenix/user/vassalli/gammasample/conversionembededonlineanalysis";
0071   string treeExtension = ".root";
0072   string outname = "/direct/phenix+u/vassalli/sphenix/single/Training/condorout/vtxTrainRS.root";
0073   unsigned int nFiles=200;
0074 
0075   TChain *signalTree = handleFile(treePath,treeExtension,"vtxingTree",nFiles);
0076   makeFactory(signalTree,outname,"vtxFactory");
0077   /*  outname="cutTrainE.root";
0078       makeFactory(signalTree,backETree,outname,"eback");*/
0079 }