Page MenuHomeHEPForge

No OneTemporary

diff --git a/MINERvA_NOvA_WS/FlatAnalysis.cc b/MINERvA_NOvA_WS/FlatAnalysis.cc
new file mode 100644
index 0000000..e428144
--- /dev/null
+++ b/MINERvA_NOvA_WS/FlatAnalysis.cc
@@ -0,0 +1,518 @@
+int MyPalette[255];
+
+// Make the TPalette
+void SetCustomPalette() {
+ // Uncomment these to use the blue->white->red palette (good for correlation matrices)
+ TColor::InitializeColors();
+ const Int_t NRGBs = 5;
+ const Int_t NCont = 255;
+
+ Double_t stops[NRGBs] = { 0.00, 0.25, 0.50, 0.75, 1.00 };
+ Double_t red[NRGBs] = { 0.00, 0.25, 1.00, 1.00, 0.50 };
+ Double_t green[NRGBs] = { 0.00, 0.25, 1.00, 0.25, 0.00 };
+ Double_t blue[NRGBs] = { 0.50, 1.00, 1.00, 0.25, 0.00 };
+
+ int start = TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
+ gStyle->SetNumberContours(NCont);
+ for (int i = 0; i < NCont; i++) {
+ MyPalette[i] = start+i;
+ }
+}
+void FlatAnalysis(std::string filename, std::string novaname) {
+
+ gStyle->SetOptStat(0);
+ SetCustomPalette();
+
+ TFile *file = new TFile(filename.c_str(), "OPEN");
+ TTree *tree = (TTree*)file->Get("FlatTree_VARS");
+
+ TFile *filenova = new TFile(novaname.c_str(), "OPEN");
+ TTree *treenova = (TTree*)filenova->Get("FlatTree_VARS");
+
+ // Mode, cc, PDGnu, tgtA, PDGLep
+ // ELep, CosLep, Q2, q0, q3, Enu_true, Enu_QE, Q2_QE, W_nuc_rest, W, x, y
+ // nfsp, px[nfsp], py[nfsp], pz[nfsp], E[nfsp], pdg[nfsp]
+ // Weight (useless), InputWeight (useless), RWWeight (useless)
+ // fScaleFactor, CustomWeight, CustomWeightArray[6]
+ //
+ // flagCCINC, flagNCINC
+ // flagCCQE, flagCC0pi, flagCCQELike, flagNCEL, flagNC0pi
+ // flagCCcoh, flagNCcoh,
+ // flagCC1pip, flagNC1pip
+ // flagCC1pim, flagNC1pim
+ // flagCC1pi0, flagNC1pi0
+ //
+ double scalefactor = tree->GetMinimum("fScaleFactor");
+ double scalefactornova = treenova->GetMinimum("fScaleFactor");
+ if (scalefactor < 1E-42) {
+ scalefactor *= 1E42;
+ scalefactornova *= 1E42;
+ }
+ std::cout << scalefactor << std::endl;
+ std::cout << scalefactornova << std::endl;
+
+ //const int WeightNumbers = 7;
+ const int WeightNumbers = 1;
+ std::string WeightType[WeightNumbers];
+ // The total weights
+ //WeightType[0] = "1";
+ WeightType[0] = "Weight";
+ //WeightType[1] = "CustomWeight";
+ //WeightType[2] = "CustomWeightArray[0]";
+ //WeightType[3] = "CustomWeightArray[1]";
+ //WeightType[4] = "CustomWeightArray[2]";
+ //WeightType[5] = "CustomWeightArray[3]";
+ //WeightType[6] = "CustomWeightArray[4]";
+ //WeightType[7] = "CustomWeightArray[5]";
+
+ std::string Names[WeightNumbers];
+ //Names[0] = "No Weight";
+ Names[0] = "Total Weight";
+ //Names[2] = "M_{A}^{QE} Weight";
+ //Names[3] = "Non-res Weight";
+ //Names[4] = "RPA QE Weight";
+ //Names[5] = "RPA RES Weight";
+ //Names[6] = "MEC Weight";
+ //Names[7] = "Total Weight";
+
+ // What we want to draw
+ std::vector<std::string> Draws2D;
+ //Draws2D.push_back("ELep:CosLep");
+ Draws2D.push_back("Q2:W");
+ Draws2D.push_back("q0:q3");
+ Draws2D.push_back("Q2:Enu_true");
+ Draws2D.push_back("Eav:Enu_true");
+
+ const int nModes = 8;
+ std::string Modes[nModes];
+ Modes[0]="Mode<30";
+ Modes[1]="Mode==1";
+ Modes[2]="Mode==2";
+ Modes[3]="Mode==11";
+ Modes[4]="Mode==12";
+ Modes[5]="Mode==13";
+ Modes[6]="Mode==21";
+ Modes[7]="Mode==26";
+
+ std::string ModeNames[nModes];
+ ModeNames[0]="CC-Inclusive";
+ ModeNames[1]="CCQE";
+ ModeNames[2]="2p2h";
+ ModeNames[3]="CC1#pi^{+}1p";
+ ModeNames[4]="CC1#pi^{0}";
+ ModeNames[5]="CC1#pi^{+}1n";
+ ModeNames[5]="CC Multi-#pi";
+ ModeNames[6]="CC DIS";
+
+ std::string LimX2D[Draws2D.size()];
+ //LimX2D[0]="0.0, 1.0";
+ LimX2D[0]="1.0, 2.0";
+ LimX2D[1]="0.0, 1.5";
+ LimX2D[2]="1.0, 3.0";
+ LimX2D[3]="1.0, 3.0";
+
+ std::string LimY2D[Draws2D.size()];
+ //LimY2D[0]="0.0, 3.0";
+ LimY2D[0]="0.0, 2.0";
+ LimY2D[1]="0.0, 1.5";
+ LimY2D[2]="0.0, 2.0";
+ LimY2D[3]="0.0, 0.5";
+
+ std::vector<std::string> Draws1D;
+ //Draws1D.push_back("ELep");
+ //Draws1D.push_back("CosLep");
+ Draws1D.push_back("Q2");
+ Draws1D.push_back("W");
+ Draws1D.push_back("x");
+ Draws1D.push_back("y");
+ Draws1D.push_back("Eav");
+
+ std::string LimX1D[Draws1D.size()];
+ LimX1D[0] = "0.0, 2.0";
+ LimX1D[1] = "1.0, 3.0";
+ LimX1D[2] = "0.0, 1.0";
+ LimX1D[3] = "0.0, 1.0";
+ LimX1D[4] = "0.0, 0.5";
+
+ TCanvas *canv = new TCanvas("canv", "canv", 1024, 1024);
+ canv->SetLeftMargin(canv->GetLeftMargin()*1.1);
+ canv->SetBottomMargin(canv->GetBottomMargin()*0.8);
+ canv->SetRightMargin(canv->GetRightMargin()*1.5);
+ canv->SetTopMargin(canv->GetTopMargin()*0.8);
+ std::string outname = filename;
+ outname = outname.substr(0, outname.find(".root"));
+ outname += "_output";
+ canv->Print((outname+".pdf[").c_str());
+
+ // The number of bins
+ int nBins = 70;
+
+ TFile *output = new TFile((outname+".root").c_str(), "RECREATE");
+
+ // Draw the 2D
+ for (int i = 0; i < Draws2D.size(); ++i) {
+
+ // Split the 2D into two parts
+ std::string ypart = Draws2D[i].substr(0, Draws2D[i].find(":"));
+ std::string xpart = Draws2D[i].substr(Draws2D[i].find(":")+1, Draws2D[i].length());
+
+ for (int k = 0; k < nModes; ++k) {
+ std::string ModeString = Modes[k];
+ while (ModeString.find("(") != std::string::npos) {
+ ModeString.replace(ModeString.find("("), 1, "_");
+ }
+ while (ModeString.find(")") != std::string::npos) {
+ ModeString.replace(ModeString.find(")"), 1, "_");
+ }
+ while (ModeString.find("=") != std::string::npos) {
+ ModeString.replace(ModeString.find("="), 1, "_");
+ }
+
+ std::stringstream refname;
+ refname << ypart << ":" << xpart << ">>" << ypart << "_" << xpart << "_" << "noscale" << "_" << ModeString << "(" << nBins << ", ";
+ std::stringstream ss2;
+ ss2 << ", " << nBins << ", ";
+ std::string DrawCmd = refname.str() + LimX2D[i] + ss2.str() + LimY2D[i] + std::string(")");
+ std::string WeightDraw = Modes[k];
+ file->cd();
+ //std::cout << DrawCmd << std::endl;
+ //std::cout << WeightDraw << std::endl;
+ tree->Draw(DrawCmd.c_str(), WeightDraw.c_str(), "colz");
+ std::string refname_str = ypart+"_"+xpart+"_noscale_"+ModeString;
+
+ TH2D *refplot = (TH2D*)gDirectory->Get(refname_str.c_str())->Clone();
+ //std::cout << refname_str << std::endl;
+ refplot->Scale(scalefactor, "width");
+ refplot->GetXaxis()->SetTitle(xpart.c_str());
+ refplot->GetYaxis()->SetTitle(ypart.c_str());
+
+ gStyle->SetPalette(51);
+ // Make the string to draw
+ std::stringstream ssnovaref;
+ ssnovaref << ypart << ":" << xpart << ">>" << ypart << "_" << xpart << "_noscale_" << "CustomWeight" << "_" << ModeString << "_nova(" << nBins << ", ";
+
+ filenova->cd();
+ std::string DrawCmdnova = ssnovaref.str() + LimX2D[i] + ss2.str() + LimY2D[i] + std::string(")");
+ std::string WeightDrawnova = Modes[k];
+ //std::cout << DrawCmdnova << std::endl;
+ //std::cout << WeightDrawnova << std::endl;
+ treenova->Draw(DrawCmdnova.c_str(), WeightDrawnova.c_str(), "colz");
+ std::string refname_strnova = ypart+"_"+xpart+"_noscale_CustomWeight_"+ModeString+"_nova";
+ //std::cout << refname_strnova << std::endl;
+ TH2D *refplotnova = (TH2D*)gDirectory->Get(refname_strnova.c_str())->Clone();
+ refplotnova->Scale(scalefactornova, "width");
+ refplotnova->GetXaxis()->SetTitle(xpart.c_str());
+ refplotnova->GetYaxis()->SetTitle(ypart.c_str());
+
+ // Loop over the different weights
+ for (int j = 0; j < WeightNumbers; ++j) {
+
+ std::string WeightString = WeightType[j];
+ while (WeightString.find("[")!=std::string::npos) {
+ WeightString.replace(WeightString.find("["), 1, "_");
+ }
+ while (WeightString.find("]")!=std::string::npos) {
+ WeightString.replace(WeightString.find("]"), 1, "_");
+ }
+
+ // Make the string to draw
+ std::stringstream ss;
+ ss << ypart << ":" << xpart << ">>" << ypart << "_" << xpart << "_" << WeightString << "_" << ModeString << "(" << nBins << ", ";
+ gStyle->SetPalette(51);
+
+ DrawCmd = ss.str() + LimX2D[i] + ss2.str() + LimY2D[i] + std::string(")");
+ WeightDraw = WeightType[j] + "*(" + Modes[k] + ")";
+ canv->Clear();
+ file->cd();
+ tree->Draw(DrawCmd.c_str(), WeightDraw.c_str(), "colz");
+
+ std::string getname = ypart+"_"+xpart+"_"+WeightString+"_"+ModeString;
+ TH2D *plot = (TH2D*)gDirectory->Get(getname.c_str())->Clone();
+ plot->Scale(scalefactor, "width");
+
+ // Make the string to draw
+ std::stringstream ssnova;
+ ssnova << ypart << ":" << xpart << ">>" << ypart << "_" << xpart << "_" << "CustomWeight" << "_" << ModeString << "_nova(" << nBins << ", ";
+
+ DrawCmdnova = ssnova.str() + LimX2D[i] + ss2.str() + LimY2D[i] + std::string(")");
+ WeightDrawnova = std::string("CustomWeight") + "*(" + Modes[k] + ")";
+ treenova->Draw(DrawCmdnova.c_str(), WeightDrawnova.c_str(), "colz");
+ std::string getnamenova = ypart+"_"+xpart+"_"+"CustomWeight"+"_"+ModeString+"_nova";
+ TH2D *plotnova = (TH2D*)gDirectory->Get(getnamenova.c_str())->Clone();
+
+ plotnova->Scale(scalefactornova, "width");
+
+ if (plot->Integral() == refplot->Integral()) {
+ delete plot;
+ continue;
+ }
+
+ double maximum = plot->GetMaximum();
+ if (maximum < refplot->GetMaximum()) maximum = refplot->GetMaximum();
+ plot->GetZaxis()->SetRangeUser(-1*maximum/1000.0, maximum);
+ refplot->GetZaxis()->SetRangeUser(-1*maximum/1000.0, maximum);
+
+ plotnova->GetZaxis()->SetRangeUser(-1*maximum/1000.0, maximum);
+ refplotnova->GetZaxis()->SetRangeUser(-1*maximum/1000.0, maximum);
+
+ plot->GetXaxis()->SetTitle(xpart.c_str());
+ plot->GetYaxis()->SetTitle(ypart.c_str());
+ canv->Clear();
+ plot->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ canv->Clear();
+ refplot->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ plotnova->GetXaxis()->SetTitle(xpart.c_str());
+ plotnova->GetYaxis()->SetTitle(ypart.c_str());
+ canv->Clear();
+ plotnova->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ canv->Clear();
+ refplotnova->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ gStyle->SetPalette(255, MyPalette);
+ canv->Update();
+ // Make a difference plot
+ TH2D *diffplot = (TH2D*)plot->Clone();
+ plot->Divide(refplot);
+ //if (j == 0) maximum = plot->GetMaximum();
+ plot->GetZaxis()->SetRangeUser(0, 2);
+
+ std::string bla = (Names[j]+std::string(" MINERvA ")+ModeNames[k]);
+ plot->SetTitle(bla.c_str());
+ canv->Clear();
+ plot->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ output->cd();
+ plot->Write();
+
+ TH2D *diffplotnova = (TH2D*)plotnova->Clone();
+ plotnova->Divide(refplotnova);
+ //if (j == 0) maximum = plot->GetMaximum();
+ plotnova->GetZaxis()->SetRangeUser(0, 2);
+
+ std::string bla = (Names[j]+std::string(" NOvA ")+ModeNames[k]);
+ plotnova->SetTitle(bla.c_str());
+ canv->Clear();
+ plotnova->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ output->cd();
+ plotnova->Write();
+
+ // Make the difference plot
+ for (int a = 0; a < plot->GetXaxis()->GetNbins(); ++a) {
+ for (int b = 0; b < plot->GetYaxis()->GetNbins(); ++b) {
+ if (diffplot->GetBinContent(a+1,b+1) != 0) {
+ diffplot->SetBinContent(a+1, b+1, (diffplot->GetBinContent(a+1,b+1)-diffplotnova->GetBinContent(a+1, b+1))/diffplot->GetBinContent(a+1,b+1));
+ } else {
+ diffplot->SetBinContent(a+1, b+1, 0);
+ }
+ }
+ }
+ diffplot->GetZaxis()->SetRangeUser(-1.0, 1.0);
+ diffplot->SetTitle((std::string("(MINERvA tuned-NOvA tuned)/MINERvA tuned ")+ModeNames[k]).c_str());
+ diffplot->SetName((std::string(diffplot->GetName())+"_diff").c_str());
+
+ canv->Clear();
+ diffplot->Draw("colz");
+ canv->Print((outname+".pdf").c_str());
+
+ delete plot;
+ delete plotnova;
+ delete diffplot;
+ delete diffplotnova;
+ }
+ delete refplot;
+ delete refplotnova;
+ }
+ }
+
+ nBins = 40;
+ /// /////////////
+ // Now do the 1D
+ for (int i = 0; i < Draws1D.size(); ++i) {
+
+ for (int k = 0; k < nModes; ++k) {
+ std::string ModeString = Modes[k];
+ while (ModeString.find("(") != std::string::npos) {
+ ModeString.replace(ModeString.find("("), 1, "_");
+ }
+ while (ModeString.find(")") != std::string::npos) {
+ ModeString.replace(ModeString.find(")"), 1, "_");
+ }
+ while (ModeString.find("=") != std::string::npos) {
+ ModeString.replace(ModeString.find("="), 1, "_");
+ }
+
+ // Make the string to draw
+ std::stringstream refname;
+ refname << Draws1D[i] << ">>" << Draws1D[i] << "_" << "noscale" << "_" << ModeString << "(" << nBins << ", ";
+ std::string DrawCmd = refname.str() + LimX1D[i] + std::string(")");
+
+ std::string WeightDraw = std::string("(") + Modes[k] + ")";
+ file->cd();
+ tree->Draw(DrawCmd.c_str(), WeightDraw.c_str(), "colz");
+ std::string refname_str = Draws1D[i]+"_noscale_"+ModeString;
+ TH1D *refplot = (TH1D*)gDirectory->Get(refname_str.c_str())->Clone();
+ refplot->Scale(scalefactor, "width");
+ refplot->GetXaxis()->SetTitle(Draws1D[i].c_str());
+
+ // Make the string to draw
+ std::stringstream ssnovaref;
+ ssnovaref << Draws1D[i] << ">>" << Draws1D[i] << "_noscale_" << "CustomWeight" << "_" << ModeString << "_nova(" << nBins << ", ";
+
+ filenova->cd();
+ std::string DrawCmdnova = ssnovaref.str() + LimX1D[i] + std::string(")");
+ std::string WeightDrawnova = std::string("(") + Modes[k] + ")";
+ treenova->Draw(DrawCmdnova.c_str(), WeightDrawnova.c_str(), "colz");
+ std::string refname_strnova = Draws1D[i]+"_noscale_CustomWeight_"+ModeString+"_nova";
+ //std::cout << refname_strnova << std::endl;
+ TH1D *refplotnova = (TH1D*)gDirectory->Get(refname_strnova.c_str())->Clone();
+ refplotnova->Scale(scalefactornova, "width");
+ refplotnova->GetXaxis()->SetTitle(Draws1D[i].c_str());
+
+ // Loop over the different weights
+ for (int j = 0; j < WeightNumbers; ++j) {
+
+ std::string WeightString = WeightType[j];
+ while (WeightString.find("[")!=std::string::npos) {
+ WeightString.replace(WeightString.find("["), 1, "_");
+ }
+ while (WeightString.find("]")!=std::string::npos) {
+ WeightString.replace(WeightString.find("]"), 1, "_");
+ }
+
+ // Make the string to draw
+ std::stringstream ss;
+ ss << Draws1D[i] << ">>" << Draws1D[i] << "_" << WeightString << "_" << ModeString << "(" << nBins << ", ";
+
+ DrawCmd = ss.str() + LimX1D[i] + std::string(")");
+
+ WeightDraw = WeightType[j] + "*(" + Modes[k] + ")";
+ canv->Clear();
+ file->cd();
+ tree->Draw(DrawCmd.c_str(), WeightDraw.c_str(), "colz");
+ std::string getname = Draws1D[i]+"_"+WeightString+"_"+ModeString;
+ TH1D *plot = (TH1D*)gDirectory->Get(getname.c_str())->Clone();
+ plot->Scale(scalefactor, "width");
+
+ // Make the string to draw
+ std::stringstream ssnova;
+ ssnova << Draws1D[i] << ">>" << Draws1D[i] << "_" << "CustomWeight" << "_" << ModeString << "_nova(" << nBins << ", ";
+ DrawCmdnova = ssnova.str() + LimX1D[i] + std::string(")");
+ WeightDrawnova = std::string("CustomWeight") + "*(" + Modes[k] + ")";
+ canv->Clear();
+ treenova->Draw(DrawCmdnova.c_str(), WeightDrawnova.c_str(), "colz");
+ std::string getnamenova = Draws1D[i]+"_CustomWeight"+"_"+ModeString+"_nova";
+ TH2D *plotnova = (TH2D*)gDirectory->Get(getnamenova.c_str())->Clone();
+ plotnova->Scale(scalefactornova, "width");
+
+ if (plot->Integral() == refplot->Integral()) {
+ delete plot;
+ continue;
+ }
+
+ double maximum = plot->GetMaximum();
+ if (maximum < refplot->GetMaximum()) maximum = refplot->GetMaximum();
+ maximum *= 1.5;
+ plot->GetYaxis()->SetRangeUser(maximum, maximum);
+ refplot->GetYaxis()->SetRangeUser(0, maximum);
+
+ plotnova->GetYaxis()->SetRangeUser(0, maximum);
+ refplotnova->GetYaxis()->SetRangeUser(0, maximum);
+
+ plot->GetXaxis()->SetTitle(Draws1D[i].c_str());
+ canv->Clear();
+ refplot->SetLineColor(kRed);
+ refplot->SetLineWidth(2);
+ refplot->SetLineStyle(kDashed);
+ refplot->Draw();
+
+ plot->SetLineColor(kRed);
+ plot->SetLineWidth(2);
+ plot->Draw("same");
+
+ plotnova->GetXaxis()->SetTitle(Draws1D[i].c_str());
+ refplotnova->SetLineColor(kBlue);
+ refplotnova->SetLineStyle(kDashed);
+ refplotnova->SetLineWidth(2);
+ refplotnova->Draw("same");
+
+ plotnova->SetLineColor(kBlue);
+ plotnova->SetLineWidth(2);
+ plotnova->Draw("same");
+
+ TLegend *leg = new TLegend(0.5, 0.5, 0.95, 0.95);
+ leg->AddEntry(plot, "MINERvA tuned", "l");
+ leg->AddEntry(refplot, "MINERvA untuned", "l");
+ leg->AddEntry(plotnova, "NOvA tuned","l");
+ leg->AddEntry(refplotnova, "NOvA untuned", "l");
+ leg->SetBorderSize(0);
+ leg->SetFillStyle(0);
+ leg->SetFillColor(0);
+ leg->Draw("same");
+
+ canv->Print((outname+".pdf").c_str());
+ delete leg;
+
+ plot->Divide(refplot);
+ plot->GetYaxis()->SetRangeUser(0, 2);
+ TLine *line = new TLine(plot->GetXaxis()->GetBinLowEdge(1), 1, plot->GetXaxis()->GetBinLowEdge(plot->GetXaxis()->GetNbins()+1), 1);
+ line->SetLineStyle(kDashed);
+ line->SetLineWidth(2);
+ line->SetLineColor(kBlack);
+
+ std::string bla = (Names[j]+std::string(" Comp ")+ModeNames[k]);
+ plot->SetTitle(bla.c_str());
+ plot->SetLineColor(kRed);
+ plot->SetLineWidth(2);
+ canv->Clear();
+ plot->Draw();
+
+ plotnova->Divide(refplotnova);
+ plotnova->GetYaxis()->SetRangeUser(0, 2);
+ TLine *line = new TLine(plot->GetXaxis()->GetBinLowEdge(1), 1, plot->GetXaxis()->GetBinLowEdge(plot->GetXaxis()->GetNbins()+1), 1);
+ line->SetLineStyle(kDashed);
+ line->SetLineWidth(2);
+ line->SetLineColor(kBlack);
+
+ std::string bla = (Names[j]+std::string(" NOvA ")+ModeNames[k]);
+ plotnova->SetTitle(bla.c_str());
+ plotnova->SetLineColor(kBlue);
+ plotnova->SetLineWidth(2);
+ plotnova->Draw("same");
+ line->Draw("same");
+
+ TLegend *leg = new TLegend(0.5, 0.5, 0.95, 0.95);
+ leg->AddEntry(plot, "MINERvA tuned/untuned", "l");
+ leg->AddEntry(plotnova, "NOvA tuned/untuned","l");
+ leg->SetBorderSize(0);
+ leg->SetFillStyle(0);
+ leg->SetFillColor(0);
+ leg->Draw("same");
+
+ canv->Print((outname+".pdf").c_str());
+
+ output->cd();
+ plot->Write();
+ plotnova->Write();
+
+ delete plot;
+ delete plotnova;
+ delete line;
+ }
+ delete refplot;
+ delete refplotnova;
+ }
+ }
+
+ canv->Print((outname+".pdf]").c_str());
+ output->Close();
+}
diff --git a/MINERvA_NOvA_WS/exp_list.xml b/MINERvA_NOvA_WS/exp_list.xml
new file mode 100644
index 0000000..9f71121
--- /dev/null
+++ b/MINERvA_NOvA_WS/exp_list.xml
@@ -0,0 +1,149 @@
+<nuisance>
+
+ <!-- MINERvA CC0pi STV -->
+
+ <!-- MINERvA CCinc -->
+ <sample name="MINERvA_CCinc_XSec_2DEavq3_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+
+ <!-- MINERvA CC1pi+ -->
+ <sample name="MINERvA_CC1pip_XSec_1DTpi_nu_2017" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pip_XSec_1Dth_nu_2017" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pip_XSec_1Dpmu_nu_2017" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pip_XSec_1Dthmu_nu_2017" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <!-- We don't want the Q2 Enu
+ MINERvA_CC1pip_XSec_1DQ2_nu_2017
+ MINERvA_CC1pip_XSec_1DEnu_nu_2017
+ -->
+
+ <!-- MINERvA CC1pi0 nu -->
+ <sample name="MINERvA_CC1pi0_XSec_1DTpi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1Dth_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1Dpmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1Dthmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DWexp_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DPPi0Mass_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DPPi0MassDelta_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DCosAdler_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DPhiAdler_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <!--
+ MINERvA_CC1pi0_XSec_1DQ2_nu
+ MINERvA_CC1pi0_XSec_1DEnu_nu
+ -->
+
+ <!-- MINERvA CC1pi0 nubar -->
+ <sample name="MINERvA_CC1pi0_XSec_1Dthmu_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1Dpmu_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1DTpi0_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CC1pi0_XSec_1Dth_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <!-- The ppi0 is the 2015 measurement -->
+ <!-- MINERvA_CC1pi0_XSec_1Dppi0_antinu -->
+
+ <!-- MINERvA CCNpi+ -->
+ <sample name="MINERvA_CCNpip_XSec_1Dth_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CCNpip_XSec_1DTpi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CCNpip_XSec_1Dthmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <sample name="MINERvA_CCNpip_XSec_1Dpmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MINERvA_CH_Dipole_Nieves2p2h_NoMEC_Fix_merge_Prepared.root" />
+ <!-- Don't want Q2 Enu
+ MINERvA_CCNpip_XSec_1DQ2_nu
+ MINERvA_CCNpip_XSec_1DEnu_nu
+ -->
+
+ <!-- ################# MiniBooNE MEASUREMENTS ############# -->
+ <!-- MiniBooNE CCQE nu -->
+ <sample name="MiniBooNE_CCQE_XSec_1DQ2_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CCQE_XSec_2DTcos_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE CCQE anti-nu -->
+ <sample name="MiniBooNE_CCQE_XSec_1DQ2_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CCQE_XSec_2DTcos_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE CCQE-like nu -->
+ <sample name="MiniBooNE_CCQELike_XSec_1DQ2_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CCQELike_XSec_2DTcos_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE CCQE-like anti-nu -->
+ <sample name="MiniBooNE_CCQELike_XSec_1DQ2_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CCQELike_XSec_2DTcos_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE CC1pi+ -->
+ <sample name="MiniBooNE_CC1pip_XSec_1DTpi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pip_XSec_1DTu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pip_XSec_2DTpiCospi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pip_XSec_2DTuCosmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- Enu Q2 not useful
+ MiniBooNE_CC1pip_XSec_1DEnu_nu
+ MiniBooNE_CC1pip_XSec_1DQ2_nu
+ MiniBooNE_CC1pip_XSec_2DQ2Enu_nu
+ MiniBooNE_CC1pip_XSec_2DTpiEnu_nu
+ MiniBooNE_CC1pip_XSec_2DTuEnu_nu
+ -->
+
+ <!-- MiniBooNE CC1pi0 -->
+ <sample name="MiniBooNE_CC1pi0_XSec_1DTu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pi0_XSec_1Dcosmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pi0_XSec_1Dppi0_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_CC1pi0_XSec_1Dcospi0_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <!-- Enu Q2 not useful
+ MiniBooNE_CC1pi0_XSec_1DEnu_nu
+ MiniBooNE_CC1pi0_XSec_1DQ2_nu
+ -->
+
+ <!-- MiniBooNE NC1pi0 nu -->
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dcospi0_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dppi0_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE NC1pi0 anti-nu -->
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dcospi0_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dppi0_antinu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE NC1pi0 fhc -->
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dcospi0_fhc" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dppi0_fhc" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- MiniBooNE NC1pi0 rhc -->
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dcospi0_rhc" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="MiniBooNE_NC1pi0_XSec_1Dppi0_rhc" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/MiniBooNE_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+
+ <!-- ################# T2K MEASUREMENTS ############# -->
+ <!-- T2K STV -->
+ <sample name="T2K_CC0pinp_STV_XSec_1Ddpt_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pinp_STV_XSec_1Ddphit_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pinp_STV_XSec_1Ddat_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pinp_ifk_XSec_3Dinfp_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pinp_ifk_XSec_3Dinfa_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pinp_ifk_XSec_3Dinfip_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <sample name="T2K_CC0pi1p_XSec_3DPcoscos_nu_nonuniform" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- T2K CC0pi -->
+ <sample name="T2K_CC0pi_XSec_2DPcos_nu_nonuniform" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <!--
+ <sample name="T2K_CC0pi_XSec_2DPcos_nu_I" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC0pi_XSec_2DPcos_nu_II" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ -->
+ <sample name="T2K_CC0pi_XSec_2DPcos_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+
+
+ <!-- T2K CC1pi H2O -->
+ <sample name="T2K_CC1pip_H2O_XSec_1Dcosmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_H2O_XSec_1Dcosmupi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_H2O_XSec_1Dcospi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_H2O_XSec_1Dpmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_H2O_XSec_1Dppi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+
+ <!-- T2K CC1pip CH -->
+ <!--
+ <sample name="T2K_CC1pip_CH_XSec_1Dpmu_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1Dppi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1DQ2_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1Dq3_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1Dthmupi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1Dthpi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1Dthq3pi_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ <sample name="T2K_CC1pip_CH_XSec_1DWrec_nu" input="GENIE:/vols/t2k/users/cvw09/software/GENIE_output/MINERvA_NOvA_WS/Prepared/T2K_FluxAndTarget_WithMINERvAModel_3000000_merge_Prepared.root" />
+ -->
+
+</nuisance>
diff --git a/MINERvA_NOvA_WS/minerva_tune.xml b/MINERvA_NOvA_WS/minerva_tune.xml
new file mode 100644
index 0000000..6a32c67
--- /dev/null
+++ b/MINERvA_NOvA_WS/minerva_tune.xml
@@ -0,0 +1,38 @@
+<nuisance>
+
+ <!--
+ Rik Gran Res RPA
+ <parameter name="MINERvARW_RikRESRPA_ApplyRPA" nominal="1.0" type="custom_parameter" />
+ -->
+
+ <!-- Apply these __only to 2p2h events__
+ 10.5798 0.254032 0.50834 0.0571035 0.129051 0.875287
+ Make sure to modify the Gaussian correction to be a norma Gaussian, not a tilt-shift Gaussian
+ -->
+ <parameter name="GaussianCorr_2p2h_norm" nominal="10.5798" type="custom_parameter" state="FIX"/>
+ <parameter name="GaussianCorr_2p2h_tilt" nominal="0.254032" type="custom_parameter" state="FIX"/>
+ <parameter name="GaussianCorr_2p2h_Pq0" nominal="0.50834" type="custom_parameter" state="FIX"/>
+ <parameter name="GaussianCorr_2p2h_Wq0" nominal="0.0571035" type="custom_parameter" state="FIX"/>
+ <parameter name="GaussianCorr_2p2h_Pq3" nominal="0.129051" type="custom_parameter" state="FIX"/>
+ <parameter name="GaussianCorr_2p2h_Wq3" nominal="0.875287" type="custom_parameter" state="FIX"/>
+
+ <!--
+ Rik Gran RPA
+ -->
+ <parameter name="MINERvARW_RikRPA_ApplyRPA" nominal="1.0" type="custom_parameter" state="FIX"/>
+
+ <!--
+ Single pion non-resonant scaling
+ -->
+ <parameter name="NonRESBGvpCC1pi" nominal="-1.14" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvnCC1pi" nominal="-1.14" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvpNC1pi" nominal="-1.14" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvnNC1pi" nominal="-1.14" type="genie_parameter" state="FIX"/>
+
+ <!-- Scale by 0.50 with 0.50 uncertainity -->
+ <parameter name="NonRESBGvbarpCC1pi" nominal="-1.00" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvbarnCC1pi" nominal="-1.00" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvbarpNC1pi" nominal="-1.00" type="genie_parameter" state="FIX"/>
+ <parameter name="NonRESBGvbarnNC1pi" nominal="-1.00" type="genie_parameter" state="FIX"/>
+
+</nuisance>
diff --git a/MINERvA_NOvA_WS/plotscript.cc b/MINERvA_NOvA_WS/plotscript.cc
new file mode 100644
index 0000000..acdeb05
--- /dev/null
+++ b/MINERvA_NOvA_WS/plotscript.cc
@@ -0,0 +1,245 @@
+void plotscript(std::string file1, std::string file2, std::string file3, std::string file4) {
+ // file1 untuned MINERvA
+ // file2 untuned NOvA
+ // file3 tuned MINERvA
+ // file4 tuned NOvA
+ TFile *f1 = new TFile(file1.c_str(), "OPEN");
+ TFile *f2 = new TFile(file2.c_str(), "OPEN");
+ TFile *f3 = new TFile(file3.c_str(), "OPEN");
+ TFile *f4 = new TFile(file4.c_str(), "OPEN");
+
+ // Loop through all
+ TIter next(f1->GetListOfKeys());
+ TKey *key;
+ std::string name;
+
+ TCanvas *canv = new TCanvas("canv", "canv", 1024, 1024);
+ canv->SetRightMargin(0.05);
+ canv->Print((file1+"_"+file2+"_comp.pdf[").c_str());
+
+ // Loop through all entries
+ while ((key = (TKey*)next())) {
+
+ // Get name of object
+ name = std::string(key->GetName());
+
+ if (name.find("_data") != std::string::npos && name.find("SHAPE") == std::string::npos && name.find("RATIO") == std::string::npos && name.find("sample") == std::string::npos) {
+ if (name == "MiniBooNE_CCQE_XSec_1DQ2_nu_data" || name == "MiniBooNE_CCQE_XSec_1DQ2_antinu_data" || name == "MiniBooNE_CCQELike_XSec_1DQ2_nu_CCQELIKE_BKG_data" || name == "MiniBooNE_CCQELike_XSec_1DQ2_antinu_data") continue;
+ if (name.find("_1D") != std::string::npos && name.find("MINERvA_CCinc_XSec") != std::string::npos) continue;
+
+ std::string bla = name.substr(0, name.find("_data"));
+ std::string dataName = name;
+
+ // Get class of object
+ TClass *cl = gROOT->GetClass(key->GetClassName());
+
+ // Check TH1D inheritance and that both files contain the name
+ if (!f2->GetListOfKeys()->Contains(name.c_str())) continue;
+ if (!f3->GetListOfKeys()->Contains(name.c_str())) continue;
+ if (!f4->GetListOfKeys()->Contains(name.c_str())) continue;
+
+ if (std::string((key->ReadObj())->ClassName()).compare("TH1D") == 0) {
+ std::cout << name << std::endl;
+
+ bool error = false;
+ TH1D *data = (TH1D*)(f1->Get(name.c_str()));
+ if (data == NULL) {
+ std::cerr << "no data" << std::endl;
+ error = true;
+ }
+
+ TH1D *MC = (TH1D*)(f1->Get((bla+"_MC").c_str()));
+ if (MC == NULL) {
+ std::cerr << "no MC" << std::endl;
+ error = true;
+ }
+ TH1D *MC2 = (TH1D*)(f2->Get((bla+"_MC").c_str()));
+ if (MC2 == NULL) {
+ std::cerr << "no MC2" << std::endl;
+ error = true;
+ }
+
+ TH1D *MC3 = (TH1D*)(f3->Get((bla+"_MC").c_str()));
+ if (MC3 == NULL) {
+ std::cerr << "no MC3" << std::endl;
+ error = true;
+ }
+
+ TH1D *MC4 = (TH1D*)(f4->Get((bla+"_MC").c_str()));
+ if (MC4 == NULL) {
+ std::cerr << "no MC4" << std::endl;
+ error = true;
+ }
+
+ if (error) continue;
+
+ data->SetMinimum(0);
+ for (int i = 0; i < MC->GetNbinsX() + 1; i++) {
+ MC->SetBinError(i+1, 0);
+ MC2->SetBinError(i+1, 0);
+ }
+
+ canv->cd();
+ data->Draw();
+ MC->Draw("same,hist");
+ MC2->Draw("same,hist");
+ MC3->Draw("same,hist");
+ MC4->Draw("same,hist");
+
+ double maximum = data->GetMaximum();
+ if (maximum < MC->GetMaximum()) maximum = MC->GetMaximum();
+ data->GetYaxis()->SetRangeUser(0, maximum*1.7);
+
+ data->SetLineWidth(2);
+ MC->SetLineWidth(2);
+ MC2->SetLineWidth(2);
+ MC3->SetLineWidth(2);
+ MC4->SetLineWidth(2);
+
+ MC->SetLineColor(kRed-9);
+ MC->SetMarkerStyle(0);
+ MC->SetLineStyle(kDashed);
+
+ MC2->SetLineColor(kRed+2);
+ MC2->SetMarkerStyle(0);
+
+ MC3->SetLineColor(kBlue-9);
+ MC3->SetMarkerStyle(0);
+ MC3->SetLineStyle(kDashed);
+
+ MC4->SetLineColor(kBlue+2);
+ MC4->SetMarkerStyle(0);
+
+ TLegend *leg = new TLegend(0.6, 0.5, 0.95, 0.90);
+ leg->AddEntry(data, "Data", "le");
+ double chi2ndof = std::atof(MC->GetTitle())/MC->GetNbinsX();
+ double chi2ndof2 = std::atof(MC2->GetTitle())/MC->GetNbinsX();
+ double chi2ndof3 = std::atof(MC3->GetTitle())/MC->GetNbinsX();
+ double chi2ndof4 = std::atof(MC4->GetTitle())/MC->GetNbinsX();
+ leg->AddEntry(MC, Form("MINERvA untuned, #chi^{2}/ndof=%.2f", chi2ndof), "l");
+ leg->AddEntry(MC2, Form("MINERvA tuned, #chi^{2}/ndof=%.2f", chi2ndof2), "l");
+ leg->AddEntry(MC3, Form("NOvA untuned, #chi^{2}/ndof=%.2f", chi2ndof3), "l");
+ leg->AddEntry(MC4, Form("NOvA tuned, #chi^{2}/ndof=%.2f", chi2ndof4), "l");
+ leg->SetBorderSize(0);
+ leg->SetFillStyle(0);
+ leg->SetFillColor(0);
+ leg->Draw("same");
+
+ canv->Print((file1+"_"+file2+"_comp.pdf").c_str());
+ delete leg;
+
+ // Now draw the THStacks
+
+ } else if (std::string((key->ReadObj())->ClassName()).compare("TH2D") == 0) {
+ std::cout << name << std::endl;
+
+ // Do projections of the TH2D
+ bool error = false;
+ TH2D *data2d = (TH2D*)(f1->Get(name.c_str()));
+ if (data2d == NULL) {
+ std::cerr << "no data" << std::endl;
+ error = true;
+ }
+
+ TH2D *MC2d = (TH2D*)(f1->Get((bla+"_MC").c_str()));
+ if (MC2d == NULL) {
+ std::cerr << "no MC" << std::endl;
+ error = true;
+ }
+ TH2D *MC22d = (TH2D*)(f2->Get((bla+"_MC").c_str()));
+ if (MC22d == NULL) {
+ std::cerr << "no MC2" << std::endl;
+ error = true;
+ }
+
+ TH2D *MC32d = (TH2D*)(f3->Get((bla+"_MC").c_str()));
+ if (MC32d == NULL) {
+ std::cerr << "no MC3" << std::endl;
+ error = true;
+ }
+
+ TH2D *MC42d = (TH2D*)(f4->Get((bla+"_MC").c_str()));
+ if (MC42d == NULL) {
+ std::cerr << "no MC4" << std::endl;
+ error = true;
+ }
+
+ if (error) continue;
+
+ /*
+ data2d->SetMinimum(0);
+ for (int i = 0; i < MC2d->GetXaxis()->GetNbins()+1; i++) {
+ for (int j = 0; i < MC2d->GetYaxis()->GetNbins()+1; j++) {
+ MC2d->SetBinError(i+1, j+1, 0);
+ MC22d->SetBinError(i+1, j+1, 0);
+ MC32d->SetBinError(i+1, j+1, 0);
+ MC42d->SetBinError(i+1, j+1, 0);
+ }
+ }
+ */
+ // Do the projections
+ int nbinsx = data2d->GetXaxis()->GetNbins();
+ for (int i = 1; i < nbinsx+1; ++i) {
+ TH1D *datax = data2d->ProjectionY(Form("%s_%i,%i", data2d->GetName(), 0, i), i, i);
+ TH1D *mcx = MC2d ->ProjectionY(Form("%s_%i,%i", MC2d->GetName(), 1, i), i, i);
+ TH1D *mc2x = MC22d ->ProjectionY(Form("%s_%i,%i", MC22d->GetName(), 2, i), i, i);
+ TH1D *mc3x = MC32d ->ProjectionY(Form("%s_%i,%i", MC32d->GetName(), 3, i), i, i);
+ TH1D *mc4x = MC42d ->ProjectionY(Form("%s_%i,%i", MC42d->GetName(), 4, i), i, i);
+
+ datax->Draw();
+ mcx->Draw("same,hist");
+ mc2x->Draw("same,hist");
+ mc3x->Draw("same,hist");
+ mc4x->Draw("same,hist");
+
+ double maximum = datax->GetMaximum();
+ if (maximum < MC->GetMaximum()) maximum = mcx->GetMaximum();
+ datax->GetYaxis()->SetRangeUser(0, maximum*1.7);
+ if (name == "MINERvA_CCinc_XSec_2DEavq3_nu_data") {
+ datax->GetXaxis()->SetRangeUser(0, 0.6);
+ datax->GetYaxis()->SetRangeUser(0, 6E-42);
+ }
+
+ mcx->SetLineColor(kRed-9);
+ mcx->SetMarkerStyle(0);
+ mcx->SetLineStyle(kDashed);
+
+ mc2x->SetLineColor(kRed+2);
+ mc2x->SetMarkerStyle(0);
+
+ mc3x->SetLineColor(kBlue-9);
+ mc3x->SetMarkerStyle(0);
+ mc3x->SetLineStyle(kDashed);
+
+ mc4x->SetLineColor(kBlue+2);
+ mc4x->SetMarkerStyle(0);
+
+ TLegend *leg = new TLegend(0.6, 0.5, 0.95, 0.90);
+ int nbins = MC->GetXaxis()->GetNbins()*MC->GetYaxis()->GetNbins();
+ double chi2ndof = std::atof(MC->GetTitle())/nbins;
+ double chi2ndof2 = std::atof(MC2->GetTitle())/nbins;
+ double chi2ndof3 = std::atof(MC3->GetTitle())/nbins;
+ double chi2ndof4 = std::atof(MC4->GetTitle())/nbins;
+ leg->AddEntry(datax, Form("Data %.2f-%.2f", data2d->GetXaxis()->GetBinLowEdge(i), data2d->GetXaxis()->GetBinLowEdge(i+1)), "le");
+ leg->AddEntry(MC, Form("MINERvA untuned, #chi^{2}/ndof=%.2f", chi2ndof), "l");
+ leg->AddEntry(MC2, Form("MINERvA tuned, #chi^{2}/ndof=%.2f", chi2ndof2), "l");
+ leg->AddEntry(MC3, Form("NOvA untuned, #chi^{2}/ndof=%.2f", chi2ndof3), "l");
+ leg->AddEntry(MC4, Form("NOvA tuned, #chi^{2}/ndof=%.2f", chi2ndof4), "l");
+ leg->SetBorderSize(0);
+ leg->SetFillStyle(0);
+ leg->SetFillColor(0);
+ leg->Draw("same");
+
+ canv->Print((file1+"_"+file2+"_comp.pdf").c_str());
+ delete leg;
+ }
+
+
+ }
+
+
+ }
+
+ }
+ canv->Print((file1+"_"+file2+"_comp.pdf]").c_str());
+}
diff --git a/README b/README
index 356149b..b29c641 100644
--- a/README
+++ b/README
@@ -1,147 +1,147 @@
# NUISANCE special release for MINERvA-NOvA workshop(s)
[Indico page, 29 Sep 2018](https://minerva-docdb.fnal.gov/cgi-bin/private/DisplayMeeting?conferenceid=6457)
----
## Description
NUISANCE release used for MINERvA-NOvA workshop on 29 Sep 2018. Used to compare the NOvA tuned GENIE 2.12.10 interaction simulation to MINERvA's tuned GENIE 2.8.6/4.
Talk is available on [FNAL DocDB](https://minerva-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=20487) and [here](http://www.hep.ph.ic.ac.uk/~cvw09/files/MINERvA_NOvA_WS_forNOVA.pdf).
Requires GENIE 2.8.4 and above and the generated GENIE files.
Please read the known issues!
----
## Instructions
Follow the usual instructions to install NUISANCE.
In a nutshell:
-1. Install GENIE to some directory, export that directory as `${GENIE}`
-2. Source the `environment_setup.sh` file for GENIE, setting up all its dependencies
-3. Get NUISANCE, get this branch, set the `${NUISANCE}` environment variable to the nuisance folder
-4. Source `${NUISANCE}/myenv.sh` which sets up all your environment variables (e.g. ROOT) and generator dependencies (e.g. GENIE) — an example file is provided
-5. Source `${NUISANCE}/freshbuild.sh`, making sure it contains `-DUSE_MINERvA_RW=1` (for parts of the MINERvA tune), and `-DUSE_GENIE=1` (for GENIE event libraries and linking), with any other generators you want included
-6. NUISANCE should now be built in `${NUISANCE}/build` with executables in `${NUISANCE}/build/app`
-7. `${NUISANCE}/build/app/PrepareGENIE` prepares GENIE output files for NUISANCE use. It converts the GHep format into something more manageable and produces cross-sections per target and per process. Its syntax is found by `./PrepareGENIE --help`
+1. Install GENIE to some directory, export that directory as ``${GENIE}``
+2. Source the ``environment_setup.sh`` file for GENIE, setting up all its dependencies
+3. Get NUISANCE, get this branch, set the ``${NUISANCE}`` environment variable to the nuisance folder
+4. Source ``${NUISANCE}/myenv.sh`` which sets up all your environment variables (e.g. ROOT) and generator dependencies (e.g. GENIE) — an example file is provided
+5. Source ``${NUISANCE}/freshbuild.sh``, making sure it contains ``-DUSE_MINERvA_RW=1`` (for parts of the MINERvA tune), and ``-DUSE_GENIE=1`` (for GENIE event libraries and linking), with any other generators you want included
+6. NUISANCE should now be built in ``${NUISANCE}/build`` with executables in ``${NUISANCE}/build/app``
+7. ``${NUISANCE}/build/app/PrepareGENIE`` prepares GENIE output files for NUISANCE use. It converts the GHep format into something more manageable and produces cross-sections per target and per process. Its syntax is found by ``./PrepareGENIE --help``
----
## Generated GENIE files
-The GENIE files used are located [on the box](https://imperialcollegelondon.box.com/v/MINERvA-NOvA-WS).The file naming is `EXPERIMENT_FluxAndTarget_WithTUNEModel*.root`, where `EXPERIMENT` is the experiment whose flux and target generated the events, and `TUNE` is the NOvA or MINERvA tune.
+The GENIE files used are located [on the box](https://imperialcollegelondon.box.com/v/MINERvA-NOvA-WS).The file naming is ``EXPERIMENT_FluxAndTarget_WithTUNEModel*.root``, where ``EXPERIMENT`` is the experiment whose flux and target generated the events, and ``TUNE`` is the NOvA or MINERvA tune.
-The `WithNOvAModel` files should have an additional `TTree` called `nova_wgts`, which are the weights provided by Jeremy Wolcott (Tufts). See below for the meaning of these weights.
+The ``WithNOvAModel`` files should have an additional ``TTree`` called ``nova_wgts``, which are the weights provided by Jeremy Wolcott (Tufts). See below for the meaning of these weights.
----
## Running flat-tree converters, external data comparisons, and producing plots
-The folder `${NUISANCE}/MINERvA_NOvA_WS` contains `xml` cardfiles for NUISANCE to produce external data comparison plots. It also contains a file `minerva_tune.xml` which is used to apply the MINERvA tune.
+The folder ``${NUISANCE}/MINERvA_NOvA_WS`` contains ``xml`` cardfiles for NUISANCE to produce external data comparison plots. It also contains a file ``minerva_tune.xml`` which is used to apply the MINERvA tune.
-The NOvA tune is applied by the code looking for the `nova_wgts` branch in the GENIE file. If it can't find it it moves on, if it does it applies the total weight from that file as a reweight.
+The NOvA tune is applied by the code looking for the ``nova_wgts`` branch in the GENIE file. If it can't find it it moves on, if it does it applies the total weight from that file as a reweight.
-All the below assumes your raw GENIE file has been converted using `PrepareGENIE`, outlined in step 7 above.
+All the below assumes your raw GENIE file has been converted using ``PrepareGENIE``, outlined in step 7 above.
### To run the flat-tree converter:
-Do `./nuisflat -i "GENIE:${GENIE_PREPARED_FILE}" -o "${GENIE_PREPARED_FILE%%.root}_FlatTree_Tune.root"` Add `-c minerva_tune.xml` if you want to apply the MINERvA tune.
+Do ``./nuisflat -i "GENIE:${GENIE_PREPARED_FILE}" -o "${GENIE_PREPARED_FILE%%.root}_FlatTree_Tune.root"`` Add ``-c minerva_tune.xml`` if you want to apply the MINERvA tune.
-The flat-tree variables are intuitively named, and their meaning can be found in `${NUISANCE}/src/MCStudies/GenericFlux_Vectors.cxx`.
+The flat-tree variables are intuitively named, and their meaning can be found in ``${NUISANCE}/src/MCStudies/GenericFlux_Vectors.cxx``.
-To apply the tunings use the tree entries `Weight` for the MINERvA tune and `CustomWeight` for the NOvA tune. The `CustomWeightArray[6]` contains the different parts of the NOvA tune and are ordered as
+To apply the tunings use the tree entries ``Weight`` for the MINERvA tune and ``CustomWeight`` for the NOvA tune. The ``CustomWeightArray[6]`` contains the different parts of the NOvA tune and are ordered as
```
fNUISANCEEvent->CustomWeight = NOVAw;
fNUISANCEEvent->CustomWeightArray[0] = MAQEw;
fNUISANCEEvent->CustomWeightArray[1] = NonResw;
fNUISANCEEvent->CustomWeightArray[2] = RPAQEw;
fNUISANCEEvent->CustomWeightArray[3] = RPARESw;
fNUISANCEEvent->CustomWeightArray[4] = MECw;
fNUISANCEEvent->CustomWeightArray[5] = NOVAw;
```
-For the MINERvA tune the `CustomWeight` and `CustomWeightArray` are all 1.0. These are all set in `${NUISANCE}/src/InputHandler/GENIEInputHandler.cxx`.
+For the MINERvA tune the ``CustomWeight`` and ``CustomWeightArray`` are all 1.0. These are all set in ``${NUISANCE}/src/InputHandler/GENIEInputHandler.cxx``.
-To scale from the event rates to cross sections apply `fScaleFactor` to your distributions. All entries have their own `fScaleFactor` but for GENIE they are all the same, so doing `double scale = tree->GetMinimum("fScaleFactor")` and applying that to a given histogram provides the scaling.
+To scale from the event rates to cross sections apply ``fScaleFactor`` to your distributions. All entries have their own ``fScaleFactor`` but for GENIE they are all the same, so doing ``double scale = tree->GetMinimum("fScaleFactor")`` and applying that to a given histogram provides the scaling.
### To compare against external data:
-Do `./nuiscomp -c cardfile.xml -o GENIE_FILE.root` where the `cardfile.xml` provides NUISANCE with what experiments you want to run and where the generated events live.
+Do ``./nuiscomp -c cardfile.xml -o GENIE_FILE.root`` where the ``cardfile.xml`` provides NUISANCE with what experiments you want to run and where the generated events live.
-The example cardfile `${NUISANCE}/MINERvA_NOvA_WS/exp_list.xml` provides the general structure of the `xml` cardfiles.
+The example cardfile ``${NUISANCE}/MINERvA_NOvA_WS/exp_list.xml`` provides the general structure of the ``xml`` cardfiles.
-To find all supported experiments run `${NUISANCE}/scripts/nuissamples`
+To find all supported experiments run ``${NUISANCE}/scripts/nuissamples``
### Producing plots:
#### Flat-tree
-An example flat-tree analysis ROOT scripts is provided in `${NUISANCE}/MINERvA_NOvA_WS/FlatAnalysis.cc`. It takes two arguments:
+An example flat-tree analysis ROOT scripts is provided in ``${NUISANCE}/MINERvA_NOvA_WS/FlatAnalysis.cc``. It takes two arguments:
-```
+``````
root -b -q -l 'FlatAnalysis.cc("MINERvA_FlatTree.root", "NOvA_FlatTree.root")'
-```
+``````
-where `MINERvA_FlatTree.root` is the flat-tree produced with the MINERvA tuning. `NOvA_FlatTree.root` is the equivalent for the NOvA tuning.
+where ``MINERvA_FlatTree.root`` is the flat-tree produced with the MINERvA tuning. ``NOvA_FlatTree.root`` is the equivalent for the NOvA tuning.
#### Data comparisons
-`${NUISANCE}/MINERvA_NOvA_WS/plotscript.cc` takes four arguments:
+``${NUISANCE}/MINERvA_NOvA_WS/plotscript.cc`` takes four arguments:
```
root -b -q -l 'plotscript.cc("MINERvA_untuned.root", "MINERvA_tuned.root", "NOvA_untuned.root", "NOvA_tuned.root")'
```
-which are the output files from `nuiscomp` for the MINERvA untuned, tuned, NOvA untuned and tuned generator files.
+which are the output files from ``nuiscomp`` for the MINERvA untuned, tuned, NOvA untuned and tuned generator files.
These are far from perfect and exclude some known problems with some data distributions. So please contact us below if you need a hand or have requests!
----
## Known issues
-The cross section scaling variable `fScaleFactor` does not play well with the NOvA target. Will be fixed.
+The cross section scaling variable ``fScaleFactor`` does not play well with the NOvA target. Will be fixed.
Some of the data distributions have broken in moving beyond v2r7. E.g. MiniBooNE CCQE Q2 seems to have issues under some ROOT versions (e.g. 5.34/36). Will be fixed.
-The `${NUISANCE}/data/reweight` directory does not exist. This is because the RikRPA files are very heavy (beyond git recommendations), so have to be added manually. Email us below to sort this out.
+The ``${NUISANCE}/data/reweight`` directory does not exist. This is because the RikRPA files are very heavy (beyond git recommendations), so have to be added manually. Email us below to sort this out.
----
## Contact
Join our [Slack channel](https://nuisance-xsec.slack.com)
Visit our [website](https://nuisance.hepforge.org)
Send an email to [us](mailto:nuisance@projects.hepforge.org), [Clarence](mailto:cwret@fnal.gov), [Luke](mailto:picker24@fnal.gov), and [Kevin](mailto:kevin@rochester.edu)
----
## Old readme
Author Luke Pickering,
Patrick Stowell,
Callum Wilkinson,
Clarence Wret
Package Manager: (p.stowell@sheffield.ac.uk)
NUISANCE Package v2r7
README
20/07/2016
--- Compilation
The following instructions should be used to build the fitter after checking out from scratch.
1. Make sure environmental variables required for the generators you wish to build against are set.
2. In the top nuisance directory make a new build directory: "$mkdir build && cd build"
3. Run CMAKE with compiler flags for which generators are required
"$ cmake -DUSE_NuWro=1 -DUSE_NEUT=1 -DUSE_GENIE=0 ../"
4. Build the fitter
"$ make -j"
5. Build documentation
"$ make docs"
6. Install to build location
"$ make install"
7. Source the setup script
"$ source Linux/setup.sh"
If you prefer, most configure variables can be entered through a cmake UI, such as
ccmake. e.g. "$ mkdir build && cd build && ccmake ../"
--- Adding Classes
The fitter is designed to be easily extended by adding new measurement classes whilst keeping the input convertors and tuning functionality the same.
The Devel module folder is setup with some examples of how to add new classes into the framework. Feel free to email me if there are difficulties adding new measurements.
--- Running Fits
Whilst running fits is relatively quick and simple, there are now a large range of possible options. Doxygen Documentation is being added to the $NUISANCE/doc/html folder.
Refer there for guidance on how to properly formulate a card file.

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 7:53 PM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805933
Default Alt Text
(57 KB)

Event Timeline