55 char histo_title[500];
56 sprintf(histo_title,
"^{%d}%s, Q^{2} = (%0.1f #pm %0.2f) GeV",
58 TH1D* delnu =
new TH1D(
"genie", histo_title, 100, -1.0, 2.0);
59 delnu->GetXaxis()->SetTitle(
"#nu - Q^{2} / (2 * M_{p}) (GeV)");
60 delnu->GetYaxis()->SetTitle(
"(1 / #sigma) d#sigma / d#nu (GeV^{-1})");
61 delnu->SetLineColor(kRed);
62 const int start_run = 500000;
63 const int end_run = 500010;
64 for (
int run = start_run; run <= end_run; run++) {
66 sprintf(data_file,
"./data/EFF/nu_14/%d_%d/gntp.%d.gst.root", nucZ, nucA, run);
68 const int num_events_per_file = 50000;
69 for (
int event = 0;
event < num_events_per_file;
event++) {
74 delnu->Scale(1.0 / delnu->Integral(
"width"));
79 vector<float>* delnu_vals, vector<float>* relative_xs) {
80 char superscaling_data_file[500];
81 sprintf(superscaling_data_file,
"superscaling/%d_%d_%0.1f.txt", nucZ, nucA, q2);
82 ifstream
infile(superscaling_data_file);
87 while (getline(
infile, line)) {
88 float delnu, xs, garbage;
89 if (!(istringstream(line) >> delnu >> garbage >> xs)) {
90 cerr <<
"Couldn't process line: " << line << endl;
93 delnu_vals->push_back(delnu);
94 relative_xs->push_back(xs);
100 vector<float> delnu_vals;
101 vector<float> relative_xs;
103 return new TH1D(
"",
"", 100, -1, 1);
105 TH1D* delnu =
new TH1D(
"SuSc",
"SuSc", delnu_vals.size() - 1, &delnu_vals[0]);
106 for (
int i = 0; i < (int)delnu_vals.size(); i++) {
107 delnu->Fill(delnu_vals[i], relative_xs[i]);
109 delnu->SetLineColor(kBlack);
110 delnu->Scale(1.0 / delnu->Integral(
"width"));
132 TFile def_file(
"./splines/DEF_QE_splines.root",
"READ");
133 TFile eff_file(
"./splines/TE_QE_splines.root",
"READ");
135 sprintf(hist_name,
"nu_mu_%sC12/qel_cc_%s",
136 (is_bar ?
"bar_" :
""), (is_bar ?
"p" :
"n"));
137 TGraph* def_energy_xs = (TGraph*)def_file.Get(hist_name);
138 def_energy_xs->SetLineColor(kOrange);
139 TGraph* eff_energy_xs = (TGraph*)eff_file.Get(hist_name);
140 eff_energy_xs->SetLineColor(kRed);
141 def_energy_xs->Apply(&TF2(
"name,",
"y / 6.0"));
142 eff_energy_xs->Apply(&TF2(
"name",
"y / 6.0"));
144 sprintf(title,
"%sNeutrino Cross Section - %s + %s #rightarrow %s + #mu^%s",
145 (is_bar ?
"Anti-" :
""), (is_bar ?
"#bar{#nu}" :
"#nu"),
146 (is_bar ?
"p" :
"n"), (is_bar ?
"n" :
"p"), (is_bar ?
"{+}" :
"{-}"));
147 TH1F* frame = canvas.DrawFrame(1
e-1, 0, 1e2, (is_bar ? 1.2 : 1.6));
148 frame->SetTitle(title);
149 frame->GetYaxis()->SetTitle(
"#sigma (10^{-38} cm^{2})");
150 frame->GetXaxis()->SetTitle(
"E_{#nu} (GeV)");
152 eff_energy_xs->Draw(
"SAME");
153 def_energy_xs->Draw(
"SAME");
156 sprintf(file_name,
"./plots/nu_%sxs_energy.pdf", (is_bar ?
"bar_" :
""));
157 canvas.Print(file_name);
167 TFile def_file(
"./splines/DEF_QE_splines.root",
"READ");
168 TFile eff_file(
"./splines/TE_QE_splines.root",
"READ");
170 sprintf(hist_name,
"nu_mu_%sC12/qel_cc_%s",
171 (is_bar ?
"bar_" :
""), (is_bar ?
"p" :
"n"));
172 TGraph* def_energy_xs = (TGraph*)def_file.Get(hist_name);
173 TGraph* eff_energy_xs = (TGraph*)eff_file.Get(hist_name);
175 ratio.Set(def_energy_xs->GetN());
176 for (
int i = 0; i < def_energy_xs->GetN(); i++) {
177 double x_val, def_point, eff_point;
178 def_energy_xs->GetPoint(i, x_val, def_point);
179 eff_energy_xs->GetPoint(i, x_val, eff_point);
181 ratio.SetPoint(i, x_val, eff_point / def_point);
183 ratio.SetPoint(i, x_val, 0);
186 ratio.SetLineColor(kRed);
189 sprintf(title,
"%s + %s #rightarrow %s + #mu^%s, (Trans Enh in G^{#nu}_{M}, M_{A} = 1.014) / (M_{A} = 1.014)",
190 (is_bar ?
"#bar{#nu}" :
"#nu"), (is_bar ?
"p" :
"n"), (is_bar ?
"n" :
"p"), (is_bar ?
"{+}" :
"{-}"));
191 TH1F* frame = canvas.DrawFrame(0, (is_bar ? 0.85 : 0.9), 10, (is_bar ? 1.4 : 1.5));
192 frame->SetTitle(title);
193 frame->GetYaxis()->SetTitle(
"ratio #sigma");
194 frame->GetXaxis()->SetTitle(
"E^{#nu} (GeV)");
198 sprintf(file_name,
"./plots/nu_%sratio_energy.pdf", (is_bar ?
"bar_" :
""));
199 canvas.Print(file_name);
208 TFile def_file(
"./splines/DEF_QE_splines.root",
"READ");
209 TFile eff_file(
"./splines/TE_QE_splines.root",
"READ");
211 sprintf(hist_name,
"nu_mu_%sC12/qel_cc_%s",
212 (is_bar ?
"bar_" :
""), (is_bar ?
"p" :
"n"));
213 TGraph* def_energy_xs = (TGraph*)def_file.Get(hist_name);
214 TGraph* eff_energy_xs = (TGraph*)eff_file.Get(hist_name);
215 for (
int i = 0; i < def_energy_xs->GetN(); i++) {
216 double point_energy, def_xs, eff_xs;
217 def_energy_xs->GetPoint(i, point_energy, def_xs);
218 if (point_energy > energy) {
219 eff_energy_xs->GetPoint(i, point_energy, eff_xs);
220 return eff_xs / def_xs;