44 #include <TDirectory.h>
47 #include <TLorentzVector.h>
48 #include <TPostScript.h>
54 #include <TPavesText.h>
65 using std::ostringstream;
68 using namespace genie;
75 void CreatePlots (
string filename,
string filename_ref);
82 int main(
int argc,
char ** argv)
92 void CreatePlots(
string inp_filename,
string inp_filename_ref)
100 LOG(
"gevcomp",
pERROR) <<
"Input file: " << inp_filename <<
" doesn't exist";
103 fin_0 =
new TFile(inp_filename.c_str(),
"READ");
104 gst_0 = (TTree *) fin_0->Get(
"gst");
108 fin_1 =
new TFile(inp_filename_ref.c_str(),
"READ");
109 gst_1 = (TTree *) fin_1->Get(
"gst");
113 gst_0->SetLineColor(kBlack);
114 gst_0->SetLineWidth(3);
116 gst_1->SetLineColor(kRed);
117 gst_1->SetMarkerColor(kRed);
118 gst_1->SetLineWidth(2);
119 gst_1->SetMarkerStyle(20);
120 gst_1->SetMarkerSize(1);
125 gStyle->SetOptTitle(0);
126 gStyle->SetOptStat(0);
127 gStyle->SetHistTopMargin(0.33);
128 gStyle->SetHistMinimumZero(
true);
132 bool monoenergetic_sample =
true;
133 bool show_coh_plots =
true;
134 bool show_calc_kinematics =
true;
135 bool show_mult_per_proc =
true;
136 bool show_primary_hadsyst =
true;
138 gst_0->Draw(
"1",
"tgt>1000010010",
"GOFF");
139 show_coh_plots = (gst_0->GetSelectedRows() > 0);
141 TCanvas * c =
new TCanvas(
"c",
"",20,20,500,650);
147 TLegend * ls =
new TLegend(0.20,0.94,0.99,0.99);
149 ls->SetBorderSize(0);
152 TPostScript *
ps =
new TPostScript(ps_filename.c_str(), 111);
159 c->Range(0,0,100,100);
160 TPavesText hdr(10,40,90,70,3,
"tr");
161 hdr.AddText(
"GENIE Event Sample Comparisons");
164 hdr.AddText(
"Event Sample:");
167 hdr.AddText(
"Notes:");
177 TH1F * h0num =
new TH1F(
"h0num",
"", 2, 0., 2.);
178 TH1F * h1num =
new TH1F(
"h1num",
"", 2, 0., 2.);
181 c->Range(0,0,100,100);
182 TPavesText evn(10,10,90,90,3,
"tr");
183 evn.AddText(
"Event Numbers:");
186 gst_0->Draw(
"1>>h0num",
"1",
"goff");
187 if(gst_1) gst_1->Draw(
"1>>h1num",
"1",
"goff");
188 n0 = h0num->GetEntries();
189 n1 = (gst_1) ? h1num->GetEntries() : 0;
190 evn.AddText( Form(
"ALL : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
192 gst_0->Draw(
"1>>h0num",
"qel",
"goff");
193 if(gst_1) gst_1->Draw(
"1>>h1num",
"qel",
"goff");
194 n0 = h0num->GetEntries();
195 n1 = (gst_1) ? h1num->GetEntries() : 0;
196 evn.AddText( Form(
"QEL : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
198 gst_0->Draw(
"1>>h0num",
"qel&&cc",
"goff");
199 if(gst_1) gst_1->Draw(
"1>>h1num",
"qel&&cc",
"goff");
200 n0 = h0num->GetEntries();
201 n1 = (gst_1) ? h1num->GetEntries() : 0;
202 evn.AddText( Form(
"QEL-CC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
204 gst_0->Draw(
"1>>h0num",
"qel&&nc",
"goff");
205 if(gst_1) gst_1->Draw(
"1>>h1num",
"qel&&nc",
"goff");
206 n0 = h0num->GetEntries();
207 n1 = (gst_1) ? h1num->GetEntries() : 0;
208 evn.AddText( Form(
"QEL-NC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
210 gst_0->Draw(
"1>>h0num",
"res",
"goff");
211 if(gst_1) gst_1->Draw(
"1>>h1num",
"res",
"goff");
212 n0 = h0num->GetEntries();
213 n1 = (gst_1) ? h1num->GetEntries() : 0;
214 evn.AddText( Form(
"RES : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
216 gst_0->Draw(
"1>>h0num",
"res&&cc",
"goff");
217 if(gst_1) gst_1->Draw(
"1>>h1num",
"res&&cc",
"goff");
218 n0 = h0num->GetEntries();
219 n1 = (gst_1) ? h1num->GetEntries() : 0;
220 evn.AddText( Form(
"RES-CC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
222 gst_0->Draw(
"1>>h0num",
"res&&nc",
"goff");
223 if(gst_1) gst_1->Draw(
"1>>h1num",
"res&&nc",
"goff");
224 n0 = h0num->GetEntries();
225 n1 = (gst_1) ? h1num->GetEntries() : 0;
226 evn.AddText( Form(
"RES-NC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
228 gst_0->Draw(
"1>>h0num",
"dis",
"goff");
229 if(gst_1) gst_1->Draw(
"1>>h1num",
"dis",
"goff");
230 n0 = h0num->GetEntries();
231 n1 = (gst_1) ? h1num->GetEntries() : 0;
232 evn.AddText( Form(
"DIS : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
234 gst_0->Draw(
"1>>h0num",
"dis&&cc",
"goff");
235 if(gst_1) gst_1->Draw(
"1>>h1num",
"dis&&cc",
"goff");
236 n0 = h0num->GetEntries();
237 n1 = (gst_1) ? h1num->GetEntries() : 0;
238 evn.AddText( Form(
"DIS-CC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
240 gst_0->Draw(
"1>>h0num",
"dis&&nc",
"goff");
241 if(gst_1) gst_1->Draw(
"1>>h1num",
"dis&&nc",
"goff");
242 n0 = h0num->GetEntries();
243 n1 = (gst_1) ? h1num->GetEntries() : 0;
244 evn.AddText( Form(
"DIS-NC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
246 gst_0->Draw(
"1>>h0num",
"coh",
"goff");
247 if(gst_1) gst_1->Draw(
"1>>h1num",
"coh",
"goff");
248 n0 = h0num->GetEntries();
249 n1 = (gst_1) ? h1num->GetEntries() : 0;
250 evn.AddText( Form(
"COH : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
252 gst_0->Draw(
"1>>h0num",
"coh&&cc",
"goff");
253 if(gst_1) gst_1->Draw(
"1>>h1num",
"coh&&cc",
"goff");
254 n0 = h0num->GetEntries();
255 n1 = (gst_1) ? h1num->GetEntries() : 0;
256 evn.AddText( Form(
"COH-CC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
258 gst_0->Draw(
"1>>h0num",
"coh&&nc",
"goff");
259 if(gst_1) gst_1->Draw(
"1>>h1num",
"coh&&nc",
"goff");
260 n0 = h0num->GetEntries();
261 n1 = (gst_1) ? h1num->GetEntries() : 0;
262 evn.AddText( Form(
"COH-NC : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
264 gst_0->Draw(
"1>>h0num",
"imd",
"goff");
265 if(gst_1) gst_1->Draw(
"1>>h1num",
"imd",
"goff");
266 n0 = h0num->GetEntries();
267 n1 = (gst_1) ? h1num->GetEntries() : 0;
268 evn.AddText( Form(
"IMD : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
270 gst_0->Draw(
"1>>h0num",
"nuel",
"goff");
271 if(gst_1) gst_1->Draw(
"1>>h1num",
"nuel",
"goff");
272 n0 = h0num->GetEntries();
273 n1 = (gst_1) ? h1num->GetEntries() : 0;
274 evn.AddText( Form(
"NuE-EL : %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
276 gst_0->Draw(
"1>>h0num",
"dis&&cc&&charm",
"goff");
277 if(gst_1) gst_1->Draw(
"1>>h1num",
"dis&&cc&&charm",
"goff");
278 n0 = h0num->GetEntries();
279 n1 = (gst_1) ? h1num->GetEntries() : 0;
280 evn.AddText( Form(
"DIS-CHARM: %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
282 gst_0->Draw(
"1>>h0num",
"qel&&cc&&charm",
"goff");
283 if(gst_1) gst_1->Draw(
"1>>h1num",
"qel&&cc&&charm",
"goff");
284 n0 = h0num->GetEntries();
285 n1 = (gst_1) ? h1num->GetEntries() : 0;
286 evn.AddText( Form(
"QEL-CHARM: %7.0f [test sample], %7.0f [ref sample]", n0, n1) );
291 if(!monoenergetic_sample) {
292 gst_0->Draw(
"Ev",
"",
"");
293 if(gst_1) gst_1->Draw(
"Ev",
"",
"perrsame");
295 ls->SetHeader(
"Neutrino Energy Spectrum");
305 c->Range(0,0,100,100);
306 TPavesText hdrk(10,40,90,70,3,
"tr");
307 hdrk.AddText(
"Selected Kinematical Quantities");
314 gst_0->Draw(
"Q2s",
"Q2s>0",
"");
315 if(gst_1) gst_1->Draw(
"Q2s",
"Q2s>0",
"perrsame");
317 ls->SetHeader(
"selected Q2 for all events");
323 gst_0->Draw(
"Q2s",
"qel&&!charm",
"");
324 if(gst_1) gst_1->Draw(
"Q2s",
"qel&&!charm",
"perrsame");
326 ls->SetHeader(
"selected Q2 for QEL events");
332 gst_0->Draw(
"Q2s",
"qel&&cc&&!charm",
"");
333 if(gst_1) gst_1->Draw(
"Q2s",
"qel&&cc&&!charm",
"perrsame");
335 ls->SetHeader(
"selected Q2 for QEL CC events");
341 gst_0->Draw(
"Q2s",
"qel&&nc&&!charm",
"");
342 if(gst_1) gst_1->Draw(
"Q2s",
"qel&&nc&&!charm",
"perrsame");
344 ls->SetHeader(
"selected Q2 for QEL NC events");
350 gst_0->Draw(
"Q2s",
"res",
"");
351 if(gst_1) gst_1->Draw(
"Q2s",
"res",
"perrsame");
353 ls->SetHeader(
"selected Q2 for RES events");
359 gst_0->Draw(
"Q2s",
"res&&cc",
"");
360 if(gst_1) gst_1->Draw(
"Q2s",
"res&&cc",
"perrsame");
362 ls->SetHeader(
"selected Q2 for RES CC events");
368 gst_0->Draw(
"Q2s",
"res&&nc",
"");
369 if(gst_1) gst_1->Draw(
"Q2s",
"res&&nc",
"perrsame");
371 ls->SetHeader(
"selected Q2 for RES NC events");
377 gst_0->Draw(
"Q2s",
"dis",
"");
378 if(gst_1) gst_1->Draw(
"Q2s",
"dis",
"perrsame");
380 ls->SetHeader(
"selected Q2 for DIS events");
386 gst_0->Draw(
"Q2s",
"dis&&cc",
"");
387 if(gst_1) gst_1->Draw(
"Q2s",
"dis&&cc",
"perrsame");
389 ls->SetHeader(
"selected Q2 for DIS CC events");
395 gst_0->Draw(
"Q2s",
"dis&&nc",
"");
396 if(gst_1) gst_1->Draw(
"Q2s",
"dis&&nc",
"perrsame");
398 ls->SetHeader(
"selected Q2 for DIS NC events");
404 gst_0->Draw(
"Q2s",
"dis&&charm",
"");
405 if(gst_1) gst_1->Draw(
"Q2s",
"dis&&charm",
"perrsame");
407 ls->SetHeader(
"selected Q2 for Charm/DIS events");
414 gst_0->Draw(
"Q2s",
"coh",
"");
415 if(gst_1) gst_1->Draw(
"Q2s",
"coh",
"perrsame");
417 ls->SetHeader(
"selected Q2 for COH events");
423 gst_0->Draw(
"Q2s",
"coh&&cc",
"");
424 if(gst_1) gst_1->Draw(
"Q2s",
"coh&&cc",
"perrsame");
426 ls->SetHeader(
"selected Q2 for COH CC events");
432 gst_0->Draw(
"Q2s",
"coh&&nc",
"");
433 if(gst_1) gst_1->Draw(
"Q2s",
"coh&&nc",
"perrsame");
435 ls->SetHeader(
"selected Q2 for COH NC events");
442 gst_0->Draw(
"Ws",
"Ws>0",
"");
443 if(gst_1) gst_1->Draw(
"Ws",
"Ws>0",
"perrsame");
445 ls->SetHeader(
"selected W for all events");
451 gst_0->Draw(
"Ws",
"qel&&!charm",
"");
452 if(gst_1) gst_1->Draw(
"Ws",
"qel&&!charm",
"perrsame");
454 ls->SetHeader(
"selected W for QEL events");
460 gst_0->Draw(
"Ws",
"res",
"");
461 if(gst_1) gst_1->Draw(
"Ws",
"res",
"perrsame");
463 ls->SetHeader(
"selected W for RES events");
469 gst_0->Draw(
"Ws",
"dis",
"");
470 if(gst_1) gst_1->Draw(
"Ws",
"dis",
"perrsame");
472 ls->SetHeader(
"selected W for DIS events");
478 gst_0->Draw(
"Ws",
"dis&&cc",
"");
479 if(gst_1) gst_1->Draw(
"Ws",
"dis&&cc",
"perrsame");
481 ls->SetHeader(
"selected W for DIS CC events");
487 gst_0->Draw(
"Ws",
"dis&&nc",
"");
488 if(gst_1) gst_1->Draw(
"Ws",
"dis&&nc",
"perrsame");
490 ls->SetHeader(
"selected W for DIS NC events");
496 gst_0->Draw(
"xs",
"",
"");
497 if(gst_1) gst_1->Draw(
"xs",
"",
"perrsame");
499 ls->SetHeader(
"selected x for all events");
505 gst_0->Draw(
"xs",
"qel&&!charm",
"");
506 if(gst_1) gst_1->Draw(
"xs",
"qel&&!charm",
"perrsame");
508 ls->SetHeader(
"selected x for QEL events");
514 gst_0->Draw(
"xs",
"res",
"");
515 if(gst_1) gst_1->Draw(
"xs",
"res",
"perrsame");
517 ls->SetHeader(
"selected x for RES events");
523 gst_0->Draw(
"xs",
"dis",
"");
524 if(gst_1) gst_1->Draw(
"xs",
"dis",
"perrsame");
526 ls->SetHeader(
"selected x for DIS events");
532 gst_0->Draw(
"xs",
"dis&&cc",
"");
533 if(gst_1) gst_1->Draw(
"xs",
"dis&&cc",
"perrsame");
535 ls->SetHeader(
"selected x for DIS CC events");
541 gst_0->Draw(
"xs",
"dis&&nc",
"");
542 if(gst_1) gst_1->Draw(
"xs",
"dis&&nc",
"perrsame");
544 ls->SetHeader(
"selected x for DIS NC events");
550 gst_0->Draw(
"xs",
"dis&&charm",
"");
551 if(gst_1) gst_1->Draw(
"xs",
"dis&&charm",
"perrsame");
553 ls->SetHeader(
"selected x for Charm/DIS events");
560 gst_0->Draw(
"xs",
"coh",
"");
561 if(gst_1) gst_1->Draw(
"xs",
"coh",
"perrsame");
563 ls->SetHeader(
"selected x for COH events");
569 gst_0->Draw(
"xs",
"coh&&cc",
"");
570 if(gst_1) gst_1->Draw(
"xs",
"coh&&cc",
"perrsame");
572 ls->SetHeader(
"selected x for COH CC events");
578 gst_0->Draw(
"xs",
"coh&&nc",
"");
579 if(gst_1) gst_1->Draw(
"xs",
"coh&&nc",
"perrsame");
581 ls->SetHeader(
"selected x for COH NC events");
588 gst_0->Draw(
"ys",
"",
"");
589 if(gst_1) gst_1->Draw(
"ys",
"",
"perrsame");
591 ls->SetHeader(
"selected y for all events");
597 gst_0->Draw(
"ys",
"qel&&!charm",
"");
598 if(gst_1) gst_1->Draw(
"ys",
"qel&&!charm",
"perrsame");
600 ls->SetHeader(
"selected y for QEL events");
606 gst_0->Draw(
"ys",
"res",
"");
607 if(gst_1) gst_1->Draw(
"ys",
"res",
"perrsame");
609 ls->SetHeader(
"selected y for RES events");
615 gst_0->Draw(
"ys",
"dis",
"");
616 if(gst_1) gst_1->Draw(
"ys",
"dis",
"perrsame");
618 ls->SetHeader(
"selected y for DIS events");
624 gst_0->Draw(
"ys",
"dis&&cc",
"");
625 if(gst_1) gst_1->Draw(
"ys",
"dis&&cc",
"perrsame");
627 ls->SetHeader(
"selected y for DIS CC events");
633 gst_0->Draw(
"ys",
"dis&&nc",
"");
634 if(gst_1) gst_1->Draw(
"ys",
"dis&&nc",
"perrsame");
636 ls->SetHeader(
"selected y for DIS NC events");
642 gst_0->Draw(
"ys",
"dis&&charm",
"");
643 if(gst_1) gst_1->Draw(
"ys",
"dis&&charm",
"perrsame");
645 ls->SetHeader(
"selected y for Charm/DIS events");
652 gst_0->Draw(
"ys",
"coh",
"");
653 if(gst_1) gst_1->Draw(
"ys",
"coh",
"perrsame");
655 ls->SetHeader(
"selected y for COH events");
661 gst_0->Draw(
"ys",
"coh&&cc",
"");
662 if(gst_1) gst_1->Draw(
"ys",
"coh&&cc",
"perrsame");
664 ls->SetHeader(
"selected y for COH CC events");
670 gst_0->Draw(
"ys",
"coh&&nc",
"");
671 if(gst_1) gst_1->Draw(
"ys",
"coh&&nc",
"perrsame");
673 ls->SetHeader(
"selected y for COH NC events");
679 gst_0->Draw(
"ts",
"coh",
"");
680 if(gst_1) gst_1->Draw(
"ts",
"coh",
"perrsame");
682 ls->SetHeader(
"selected t for COH events");
687 if(show_calc_kinematics) {
694 c->Range(0,0,100,100);
695 TPavesText hdrck(10,40,90,70,3,
"tr");
696 hdrck.AddText(
"Kinematical Quantities");
699 hdrck.AddText(
"Similar to the previous set of plots but");
700 hdrck.AddText(
"showing 'computed' rather than 'selected' variables");
706 gst_0->Draw(
"Q2",
"",
"");
707 if(gst_1) gst_1->Draw(
"Q2",
"",
"perrsame");
709 ls->SetHeader(
"computed Q2 for all events");
715 gst_0->Draw(
"Q2",
"qel&&!charm",
"");
716 if(gst_1) gst_1->Draw(
"Q2",
"qel&&!charm",
"perrsame");
718 ls->SetHeader(
"computed Q2 for QEL events");
724 gst_0->Draw(
"Q2",
"res",
"");
725 if(gst_1) gst_1->Draw(
"Q2",
"res",
"perrsame");
727 ls->SetHeader(
"computed Q2 for RES events");
733 gst_0->Draw(
"Q2",
"dis",
"");
734 if(gst_1) gst_1->Draw(
"Q2",
"dis",
"perrsame");
736 ls->SetHeader(
"computed Q2 for DIS events");
742 gst_0->Draw(
"x",
"",
"");
743 if(gst_1) gst_1->Draw(
"x",
"",
"perrsame");
745 ls->SetHeader(
"computed x for all events");
751 gst_0->Draw(
"x",
"qel&&!charm",
"");
752 if(gst_1) gst_1->Draw(
"x",
"qel&&!charm",
"perrsame");
754 ls->SetHeader(
"computed x for QEL events");
760 gst_0->Draw(
"x",
"res",
"");
761 if(gst_1) gst_1->Draw(
"x",
"res",
"perrsame");
763 ls->SetHeader(
"computed x for RES events");
769 gst_0->Draw(
"x",
"dis",
"");
770 if(gst_1) gst_1->Draw(
"x",
"dis",
"perrsame");
772 ls->SetHeader(
"computed x for DIS events");
778 gst_0->Draw(
"y",
"",
"");
779 if(gst_1) gst_1->Draw(
"y",
"",
"perrsame");
781 ls->SetHeader(
"computed y for all events");
787 gst_0->Draw(
"y",
"qel&&!charm",
"");
788 if(gst_1) gst_1->Draw(
"y",
"qel&&!charm",
"perrsame");
790 ls->SetHeader(
"computed y for QEL events");
796 gst_0->Draw(
"y",
"res",
"");
797 if(gst_1) gst_1->Draw(
"y",
"res",
"perrsame");
799 ls->SetHeader(
"computed y for RES events");
805 gst_0->Draw(
"y",
"dis",
"");
806 if(gst_1) gst_1->Draw(
"y",
"dis",
"perrsame");
808 ls->SetHeader(
"computed y for DIS events");
820 c->Range(0,0,100,100);
821 TPavesText hdrinuc(10,40,90,70,3,
"tr");
822 hdrinuc.AddText(
"Initial state nucleon 4-Momentum");
831 gst_0->Draw(
"pxn",
"",
"");
832 if(gst_1) gst_1->Draw(
"pxn",
"",
"perrsame");
834 gst_0->Draw(
"pyn",
"",
"");
835 if(gst_1) gst_1->Draw(
"pyn",
"",
"perrsame");
837 gst_0->Draw(
"pzn",
"",
"");
838 if(gst_1) gst_1->Draw(
"pzn",
"",
"perrsame");
840 gst_0->Draw(
"En",
"En>.2",
"");
841 if(gst_1) gst_1->Draw(
"En",
"En>.2",
"perrsame");
849 c->Range(0,0,100,100);
850 TPavesText hdrfsl(10,40,90,70,3,
"tr");
851 hdrfsl.AddText(
"Final State Primary Lepton 4-Momentum");
859 gst_0->Draw(
"pxl",
"",
"");
860 if(gst_1) gst_1->Draw(
"pxl",
"",
"perrsame");
862 gst_0->Draw(
"pyl",
"",
"");
863 if(gst_1) gst_1->Draw(
"pyl",
"",
"perrsame");
865 gst_0->Draw(
"pzl",
"",
"");
866 if(gst_1) gst_1->Draw(
"pzl",
"",
"perrsame");
868 gst_0->Draw(
"El",
"",
"");
869 if(gst_1) gst_1->Draw(
"El",
"",
"perrsame");
872 ls->SetHeader(
"Final state primary lepton 4-p: All events");
881 gst_0->Draw(
"pxl",
"cc",
"");
882 if(gst_1) gst_1->Draw(
"pxl",
"cc",
"perrsame");
884 gst_0->Draw(
"pyl",
"cc",
"");
885 if(gst_1) gst_1->Draw(
"pyl",
"cc",
"perrsame");
887 gst_0->Draw(
"pzl",
"cc",
"");
888 if(gst_1) gst_1->Draw(
"pzl",
"cc",
"perrsame");
890 gst_0->Draw(
"El",
"cc",
"");
891 if(gst_1) gst_1->Draw(
"El",
"cc",
"perrsame");
894 ls->SetHeader(
"Final state primary lepton 4-p: All CC events");
903 gst_0->Draw(
"pxl",
"nc",
"");
904 if(gst_1) gst_1->Draw(
"pxl",
"nc",
"perrsame");
906 gst_0->Draw(
"pyl",
"nc",
"");
907 if(gst_1) gst_1->Draw(
"pyl",
"nc",
"perrsame");
909 gst_0->Draw(
"pzl",
"nc",
"");
910 if(gst_1) gst_1->Draw(
"pzl",
"nc",
"perrsame");
912 gst_0->Draw(
"El",
"nc",
"");
913 if(gst_1) gst_1->Draw(
"El",
"nc",
"perrsame");
916 ls->SetHeader(
"Final state primary lepton 4-p: All NC events");
925 gst_0->Draw(
"pxl",
"qel&&!charm",
"");
926 if(gst_1) gst_1->Draw(
"pxl",
"qel&&!charm",
"perrsame");
928 gst_0->Draw(
"pyl",
"qel&&!charm",
"");
929 if(gst_1) gst_1->Draw(
"pyl",
"qel&&!charm",
"perrsame");
931 gst_0->Draw(
"pzl",
"qel&&!charm",
"");
932 if(gst_1) gst_1->Draw(
"pzl",
"qel&&!charm",
"perrsame");
934 gst_0->Draw(
"El",
"qel&&!charm",
"");
935 if(gst_1) gst_1->Draw(
"El",
"qel&&!charm",
"perrsame");
938 ls->SetHeader(
"Final state primary lepton 4-p: QEL events");
947 gst_0->Draw(
"pxl",
"res",
"");
948 if(gst_1) gst_1->Draw(
"pxl",
"res",
"perrsame");
950 gst_0->Draw(
"pyl",
"res",
"");
951 if(gst_1) gst_1->Draw(
"pyl",
"res",
"perrsame");
953 gst_0->Draw(
"pzl",
"res",
"");
954 if(gst_1) gst_1->Draw(
"pzl",
"res",
"perrsame");
956 gst_0->Draw(
"El",
"res",
"");
957 if(gst_1) gst_1->Draw(
"El",
"res",
"perrsame");
960 ls->SetHeader(
"Final state primary lepton 4-p: RES events");
969 gst_0->Draw(
"pxl",
"dis",
"");
970 if(gst_1) gst_1->Draw(
"pxl",
"dis",
"perrsame");
972 gst_0->Draw(
"pyl",
"dis",
"");
973 if(gst_1) gst_1->Draw(
"pyl",
"dis",
"perrsame");
975 gst_0->Draw(
"pzl",
"dis",
"");
976 if(gst_1) gst_1->Draw(
"pzl",
"dis",
"perrsame");
978 gst_0->Draw(
"El",
"dis",
"");
979 if(gst_1) gst_1->Draw(
"El",
"dis",
"perrsame");
982 ls->SetHeader(
"Final state primary lepton 4-p: All DIS events");
992 gst_0->Draw(
"pxl",
"coh",
"");
993 if(gst_1) gst_1->Draw(
"pxl",
"coh",
"perrsame");
995 gst_0->Draw(
"pyl",
"coh",
"");
996 if(gst_1) gst_1->Draw(
"pyl",
"coh",
"perrsame");
998 gst_0->Draw(
"pzl",
"coh",
"");
999 if(gst_1) gst_1->Draw(
"pzl",
"coh",
"perrsame");
1001 gst_0->Draw(
"El",
"coh",
"");
1002 if(gst_1) gst_1->Draw(
"El",
"coh",
"perrsame");
1005 ls->SetHeader(
"Final state primary lepton 4-p: COH events");
1015 c->Range(0,0,100,100);
1016 TPavesText hdrfhad(10,40,90,70,3,
"tr");
1017 hdrfhad.AddText(
"Final State Hadronic System");
1018 hdrfhad.AddText(
"Multiplicities and 4-Momenta");
1019 hdrfhad.AddText(
" ");
1020 hdrfhad.AddText(
" ");
1021 hdrfhad.AddText(
" ");
1022 hdrfhad.AddText(
" ");
1023 hdrfhad.AddText(
"Note:");
1024 hdrfhad.AddText(
"For nuclear targets these plots include the effect");
1025 hdrfhad.AddText(
"of intranuclear hadron transport / rescattering");
1031 gst_0->Draw(
"nfp",
"",
"");
1032 if(gst_1) gst_1->Draw(
"nfp",
"",
"perrsame");
1034 ls->SetHeader(
"Number of final state protons");
1040 gst_0->Draw(
"nfn",
"",
"");
1041 if(gst_1) gst_1->Draw(
"nfn",
"",
"perrsame");
1043 ls->SetHeader(
"Number of final state neutrons");
1049 gst_0->Draw(
"nfpip",
"",
"");
1050 if(gst_1) gst_1->Draw(
"nfpip",
"",
"perrsame");
1052 ls->SetHeader(
"Number of final state pi+");
1058 gst_0->Draw(
"nfpim",
"",
"");
1059 if(gst_1) gst_1->Draw(
"nfpim",
"",
"perrsame");
1061 ls->SetHeader(
"Number of final state pi-");
1067 gst_0->Draw(
"nfpi0",
"",
"");
1068 if(gst_1) gst_1->Draw(
"nfpi0",
"",
"perrsame");
1070 ls->SetHeader(
"Number of final state pi0");
1076 gst_0->Draw(
"nfkp",
"",
"");
1077 if(gst_1) gst_1->Draw(
"nfkp",
"",
"perrsame");
1079 ls->SetHeader(
"Number of final state K+");
1085 gst_0->Draw(
"nfkm",
"",
"");
1086 if(gst_1) gst_1->Draw(
"nfkm",
"",
"perrsame");
1088 ls->SetHeader(
"Number of final state K-");
1094 gst_0->Draw(
"nfk0",
"",
"");
1095 if(gst_1) gst_1->Draw(
"nfk0",
"",
"perrsame");
1097 ls->SetHeader(
"Number of final state K0");
1105 gst_0->Draw(
"pxf",
"pdgf==2212",
"");
1106 if(gst_1) gst_1->Draw(
"pxf",
"pdgf==2212",
"perrsame");
1108 gst_0->Draw(
"pyf",
"pdgf==2212",
"");
1109 if(gst_1) gst_1->Draw(
"pyf",
"pdgf==2212",
"perrsame");
1111 gst_0->Draw(
"pzf",
"pdgf==2212",
"");
1112 if(gst_1) gst_1->Draw(
"pzf",
"pdgf==2212",
"perrsame");
1114 gst_0->Draw(
"Ef",
"pdgf==2212",
"");
1115 if(gst_1) gst_1->Draw(
"Ef",
"pdgf==2212",
"perrsame");
1118 ls->SetHeader(
"Final state protons 4-momentum");
1127 gst_0->Draw(
"pxf",
"pdgf==2112",
"");
1128 if(gst_1) gst_1->Draw(
"pxf",
"pdgf==2112",
"perrsame");
1130 gst_0->Draw(
"pyf",
"pdgf==2112",
"");
1131 if(gst_1) gst_1->Draw(
"pyf",
"pdgf==2112",
"perrsame");
1133 gst_0->Draw(
"pzf",
"pdgf==2112",
"");
1134 if(gst_1) gst_1->Draw(
"pzf",
"pdgf==2112",
"perrsame");
1136 gst_0->Draw(
"Ef",
"pdgf==2112",
"");
1137 if(gst_1) gst_1->Draw(
"Ef",
"pdgf==2112",
"perrsame");
1140 ls->SetHeader(
"Final state neutrons 4-momentum");
1149 gst_0->Draw(
"pxf",
"pdgf==111",
"");
1150 if(gst_1) gst_1->Draw(
"pxf",
"pdgf==111",
"perrsame");
1152 gst_0->Draw(
"pyf",
"pdgf==111",
"");
1153 if(gst_1) gst_1->Draw(
"pyf",
"pdgf==111",
"perrsame");
1155 gst_0->Draw(
"pzf",
"pdgf==111",
"");
1156 if(gst_1) gst_1->Draw(
"pzf",
"pdgf==111",
"perrsame");
1158 gst_0->Draw(
"Ef",
"pdgf==111",
"");
1159 if(gst_1) gst_1->Draw(
"Ef",
"pdgf==111",
"perrsame");
1162 ls->SetHeader(
"Final state pi0's 4-momentum");
1171 gst_0->Draw(
"pxf",
"pdgf==211",
"");
1172 if(gst_1) gst_1->Draw(
"pxf",
"pdgf==211",
"perrsame");
1174 gst_0->Draw(
"pyf",
"pdgf==211",
"");
1175 if(gst_1) gst_1->Draw(
"pyf",
"pdgf==211",
"perrsame");
1177 gst_0->Draw(
"pzf",
"pdgf==211",
"");
1178 if(gst_1) gst_1->Draw(
"pzf",
"pdgf==211",
"perrsame");
1180 gst_0->Draw(
"Ef",
"pdgf==211",
"");
1181 if(gst_1) gst_1->Draw(
"Ef",
"pdgf==211",
"perrsame");
1184 ls->SetHeader(
"Final state pi+'s 4-momentum");
1193 gst_0->Draw(
"pxf",
"pdgf==-211",
"");
1194 if(gst_1) gst_1->Draw(
"pxf",
"pdgf==-211",
"perrsame");
1196 gst_0->Draw(
"pyf",
"pdgf==-211",
"");
1197 if(gst_1) gst_1->Draw(
"pyf",
"pdgf==-211",
"perrsame");
1199 gst_0->Draw(
"pzf",
"pdgf==-211",
"");
1200 if(gst_1) gst_1->Draw(
"pzf",
"pdgf==-211",
"perrsame");
1202 gst_0->Draw(
"Ef",
"pdgf==-211",
"");
1203 if(gst_1) gst_1->Draw(
"Ef",
"pdgf==-211",
"perrsame");
1206 ls->SetHeader(
"Final state pi-'s 4-momentum");
1210 if(show_mult_per_proc) {
1218 if(gst_1) gst_1->Draw(
"nfp",
"qel&&!charm",
"");
1219 gst_0->Draw(
"nfp",
"qel&&!charm",
"perrsame");
1221 ls->SetHeader(
"Number of final state protons / QEL only");
1227 if(gst_1) gst_1->Draw(
"nfn",
"qel&&!charm",
"");
1228 gst_0->Draw(
"nfn",
"qel&&!charm",
"perrsame");
1230 ls->SetHeader(
"Number of final state neutrons / QEL only");
1236 gst_0->Draw(
"nfpip",
"qel&&!charm",
"");
1237 if(gst_1) gst_1->Draw(
"nfpip",
"qel&&!charm",
"perrsame");
1239 ls->SetHeader(
"Number of final state pi+ / QEL only");
1245 gst_0->Draw(
"nfpim",
"qel&&!charm",
"");
1246 if(gst_1) gst_1->Draw(
"nfpim",
"qel&&!charm",
"perrsame");
1248 ls->SetHeader(
"Number of final state pi- / QEL only");
1254 gst_0->Draw(
"nfpi0",
"qel&&!charm",
"");
1255 if(gst_1) gst_1->Draw(
"nfpi0",
"qel&&!charm",
"perrsame");
1257 ls->SetHeader(
"Number of final state pi0 / QEL only");
1263 gst_0->Draw(
"nfkp",
"qel&&!charm",
"");
1264 if(gst_1) gst_1->Draw(
"nfkp",
"qel&&!charm",
"perrsame");
1266 ls->SetHeader(
"Number of final state K+ / QEL only");
1272 gst_0->Draw(
"nfkm",
"qel&&!charm",
"");
1273 if(gst_1) gst_1->Draw(
"nfkm",
"qel&&!charm",
"perrsame");
1275 ls->SetHeader(
"Number of final state K- / QEL only");
1281 gst_0->Draw(
"nfk0",
"qel&&!charm",
"");
1282 if(gst_1) gst_1->Draw(
"nfk0",
"qel&&!charm",
"perrsame");
1284 ls->SetHeader(
"Number of final state K0 / QEL only");
1292 gst_0->Draw(
"pxf",
"qel&&!charm&&pdgf==2212",
"");
1293 if(gst_1) gst_1->Draw(
"pxf",
"qel&&!charm&&pdgf==2212",
"perrsame");
1295 gst_0->Draw(
"pyf",
"qel&&!charm&&pdgf==2212",
"");
1296 if(gst_1) gst_1->Draw(
"pyf",
"qel&&!charm&&pdgf==2212",
"perrsame");
1298 gst_0->Draw(
"pzf",
"qel&&!charm&&pdgf==2212",
"");
1299 if(gst_1) gst_1->Draw(
"pzf",
"qel&&!charm&&pdgf==2212",
"perrsame");
1301 gst_0->Draw(
"Ef",
"qel&&!charm&&pdgf==2212",
"");
1302 if(gst_1) gst_1->Draw(
"Ef",
"qel&&!charm&&pdgf==2212",
"perrsame");
1305 ls->SetHeader(
"Final state protons 4-momentum / QEL only");
1314 gst_0->Draw(
"pxf",
"qel&&!charm&&pdgf==2112",
"");
1315 if(gst_1) gst_1->Draw(
"pxf",
"qel&&!charm&&pdgf==2112",
"perrsame");
1317 gst_0->Draw(
"pyf",
"qel&&!charm&&pdgf==2112",
"");
1318 if(gst_1) gst_1->Draw(
"pyf",
"qel&&!charm&&pdgf==2112",
"perrsame");
1320 gst_0->Draw(
"pzf",
"qel&&!charm&&pdgf==2112",
"");
1321 if(gst_1) gst_1->Draw(
"pzf",
"qel&&!charm&&pdgf==2112",
"perrsame");
1323 gst_0->Draw(
"Ef",
"qel&&!charm&&pdgf==2112",
"");
1324 if(gst_1) gst_1->Draw(
"Ef",
"qel&&!charm&&pdgf==2112",
"perrsame");
1327 ls->SetHeader(
"Final state neutrons 4-momentum / QEL only");
1336 gst_0->Draw(
"pxf",
"qel&&!charm&&pdgf==111",
"");
1337 if(gst_1) gst_1->Draw(
"pxf",
"qel&&!charm&&pdgf==111",
"perrsame");
1339 gst_0->Draw(
"pyf",
"qel&&!charm&&pdgf==111",
"");
1340 if(gst_1) gst_1->Draw(
"pyf",
"qel&&!charm&&pdgf==111",
"perrsame");
1342 gst_0->Draw(
"pzf",
"qel&&!charm&&pdgf==111",
"");
1343 if(gst_1) gst_1->Draw(
"pzf",
"qel&&!charm&&pdgf==111",
"perrsame");
1345 gst_0->Draw(
"Ef",
"qel&&!charm&&pdgf==111",
"");
1346 if(gst_1) gst_1->Draw(
"Ef",
"qel&&!charm&&pdgf==111",
"perrsame");
1349 ls->SetHeader(
"Final state pi0's 4-momentum / QEL only");
1358 gst_0->Draw(
"pxf",
"qel&&!charm&&pdgf==211",
"");
1359 if(gst_1) gst_1->Draw(
"pxf",
"qel&&!charm&&pdgf==211",
"perrsame");
1361 gst_0->Draw(
"pyf",
"qel&&!charm&&pdgf==211",
"");
1362 if(gst_1) gst_1->Draw(
"pyf",
"qel&&!charm&&pdgf==211",
"perrsame");
1364 gst_0->Draw(
"pzf",
"qel&&!charm&&pdgf==211",
"");
1365 if(gst_1) gst_1->Draw(
"pzf",
"qel&&!charm&&pdgf==211",
"perrsame");
1367 gst_0->Draw(
"Ef",
"qel&&!charm&&pdgf==211",
"");
1368 if(gst_1) gst_1->Draw(
"Ef",
"qel&&!charm&&pdgf==211",
"perrsame");
1371 ls->SetHeader(
"Final state pi+'s 4-momentum / QEL only");
1380 gst_0->Draw(
"pxf",
"qel&&!charm&&pdgf==-211",
"");
1381 if(gst_1) gst_1->Draw(
"pxf",
"qel&&!charm&&pdgf==-211",
"perrsame");
1383 gst_0->Draw(
"pyf",
"qel&&!charm&&pdgf==-211",
"");
1384 if(gst_1) gst_1->Draw(
"pyf",
"qel&&!charm&&pdgf==-211",
"perrsame");
1386 gst_0->Draw(
"pzf",
"qel&&!charm&&pdgf==-211",
"");
1387 if(gst_1) gst_1->Draw(
"pzf",
"qel&&!charm&&pdgf==-211",
"perrsame");
1389 gst_0->Draw(
"Ef",
"qel&&!charm&&pdgf==-211",
"");
1390 if(gst_1) gst_1->Draw(
"Ef",
"qel&&!charm&&pdgf==-211",
"perrsame");
1393 ls->SetHeader(
"Final state pi-'s 4-momentum/ QEL only");
1403 gst_0->Draw(
"nfp",
"res",
"");
1404 if(gst_1) gst_1->Draw(
"nfp",
"res",
"perrsame");
1406 ls->SetHeader(
"Number of final state protons / RES only");
1412 gst_0->Draw(
"nfn",
"res",
"");
1413 if(gst_1) gst_1->Draw(
"nfn",
"res",
"perrsame");
1415 ls->SetHeader(
"Number of final state neutrons / RES only");
1421 gst_0->Draw(
"nfpip",
"res",
"");
1422 if(gst_1) gst_1->Draw(
"nfpip",
"res",
"perrsame");
1424 ls->SetHeader(
"Number of final state pi+ / RES only");
1430 gst_0->Draw(
"nfpim",
"res",
"");
1431 if(gst_1) gst_1->Draw(
"nfpim",
"res",
"perrsame");
1433 ls->SetHeader(
"Number of final state pi- / RES only");
1439 gst_0->Draw(
"nfpi0",
"res",
"");
1440 if(gst_1) gst_1->Draw(
"nfpi0",
"res",
"perrsame");
1442 ls->SetHeader(
"Number of final state pi0 / RES only");
1448 gst_0->Draw(
"nfkp",
"res",
"");
1449 if(gst_1) gst_1->Draw(
"nfkp",
"res",
"perrsame");
1451 ls->SetHeader(
"Number of final state K+ / RES only");
1457 gst_0->Draw(
"nfkm",
"res",
"");
1458 if(gst_1) gst_1->Draw(
"nfkm",
"res",
"perrsame");
1460 ls->SetHeader(
"Number of final state K- / RES only");
1466 gst_0->Draw(
"nfk0",
"res",
"");
1467 if(gst_1) gst_1->Draw(
"nfk0",
"res",
"perrsame");
1469 ls->SetHeader(
"Number of final state K0 / RES only");
1477 gst_0->Draw(
"pxf",
"res&&pdgf==2212",
"");
1478 if(gst_1) gst_1->Draw(
"pxf",
"res&&pdgf==2212",
"perrsame");
1480 gst_0->Draw(
"pyf",
"res&&pdgf==2212",
"");
1481 if(gst_1) gst_1->Draw(
"pyf",
"res&&pdgf==2212",
"perrsame");
1483 gst_0->Draw(
"pzf",
"res&&pdgf==2212",
"");
1484 if(gst_1) gst_1->Draw(
"pzf",
"res&&pdgf==2212",
"perrsame");
1486 gst_0->Draw(
"Ef",
"res&&pdgf==2212",
"");
1487 if(gst_1) gst_1->Draw(
"Ef",
"res&&pdgf==2212",
"perrsame");
1490 ls->SetHeader(
"Final state protons 4-momentum / RES only");
1499 gst_0->Draw(
"pxf",
"res&&pdgf==2112",
"");
1500 if(gst_1) gst_1->Draw(
"pxf",
"res&&pdgf==2112",
"perrsame");
1502 gst_0->Draw(
"pyf",
"res&&pdgf==2112",
"");
1503 if(gst_1) gst_1->Draw(
"pyf",
"res&&pdgf==2112",
"perrsame");
1505 gst_0->Draw(
"pzf",
"res&&pdgf==2112",
"");
1506 if(gst_1) gst_1->Draw(
"pzf",
"res&&pdgf==2112",
"perrsame");
1508 gst_0->Draw(
"Ef",
"res&&pdgf==2112",
"");
1509 if(gst_1) gst_1->Draw(
"Ef",
"res&&pdgf==2112",
"perrsame");
1512 ls->SetHeader(
"Final state neutrons 4-momentum / RES only");
1521 gst_0->Draw(
"pxf",
"res&&pdgf==111",
"");
1522 if(gst_1) gst_1->Draw(
"pxf",
"res&&pdgf==111",
"perrsame");
1524 gst_0->Draw(
"pyf",
"res&&pdgf==111",
"");
1525 if(gst_1) gst_1->Draw(
"pyf",
"res&&pdgf==111",
"perrsame");
1527 gst_0->Draw(
"pzf",
"res&&pdgf==111",
"");
1528 if(gst_1) gst_1->Draw(
"pzf",
"res&&pdgf==111",
"perrsame");
1530 gst_0->Draw(
"Ef",
"res&&pdgf==111",
"");
1531 if(gst_1) gst_1->Draw(
"Ef",
"res&&pdgf==111",
"perrsame");
1534 ls->SetHeader(
"Final state pi0's 4-momentum / RES only");
1543 gst_0->Draw(
"pxf",
"res&&pdgf==211",
"");
1544 if(gst_1) gst_1->Draw(
"pxf",
"res&&pdgf==211",
"perrsame");
1546 gst_0->Draw(
"pyf",
"res&&pdgf==211",
"");
1547 if(gst_1) gst_1->Draw(
"pyf",
"res&&pdgf==211",
"perrsame");
1549 gst_0->Draw(
"pzf",
"res&&pdgf==211",
"");
1550 if(gst_1) gst_1->Draw(
"pzf",
"res&&pdgf==211",
"perrsame");
1552 gst_0->Draw(
"Ef",
"res&&pdgf==211",
"");
1553 if(gst_1) gst_1->Draw(
"Ef",
"res&&pdgf==211",
"perrsame");
1556 ls->SetHeader(
"Final state pi+'s 4-momentum / RES only");
1565 gst_0->Draw(
"pxf",
"res&&pdgf==-211",
"");
1566 if(gst_1) gst_1->Draw(
"pxf",
"res&&pdgf==-211",
"perrsame");
1568 gst_0->Draw(
"pyf",
"res&&pdgf==-211",
"");
1569 if(gst_1) gst_1->Draw(
"pyf",
"res&&pdgf==-211",
"perrsame");
1571 gst_0->Draw(
"pzf",
"res&&pdgf==-211",
"");
1572 if(gst_1) gst_1->Draw(
"pzf",
"res&&pdgf==-211",
"perrsame");
1574 gst_0->Draw(
"Ef",
"res&&pdgf==-211",
"");
1575 if(gst_1) gst_1->Draw(
"Ef",
"res&&pdgf==-211",
"perrsame");
1578 ls->SetHeader(
"Final state pi-'s 4-momentum/ RES only");
1588 gst_0->Draw(
"nfp",
"dis",
"");
1589 if(gst_1) gst_1->Draw(
"nfp",
"dis",
"perrsame");
1591 ls->SetHeader(
"Number of final state protons / DIS only");
1597 gst_0->Draw(
"nfn",
"dis",
"");
1598 if(gst_1) gst_1->Draw(
"nfn",
"dis",
"perrsame");
1600 ls->SetHeader(
"Number of final state neutrons / DIS only");
1606 gst_0->Draw(
"nfpip",
"dis",
"");
1607 if(gst_1) gst_1->Draw(
"nfpip",
"dis",
"perrsame");
1609 ls->SetHeader(
"Number of final state pi+ / DIS only");
1615 gst_0->Draw(
"nfpim",
"dis",
"");
1616 if(gst_1) gst_1->Draw(
"nfpim",
"dis",
"perrsame");
1618 ls->SetHeader(
"Number of final state pi- / DIS only");
1624 gst_0->Draw(
"nfpi0",
"dis",
"");
1625 if(gst_1) gst_1->Draw(
"nfpi0",
"dis",
"perrsame");
1627 ls->SetHeader(
"Number of final state pi0 / DIS only");
1633 gst_0->Draw(
"nfkp",
"dis",
"");
1634 if(gst_1) gst_1->Draw(
"nfkp",
"dis",
"perrsame");
1636 ls->SetHeader(
"Number of final state K+ / DIS only");
1642 gst_0->Draw(
"nfkm",
"dis",
"");
1643 if(gst_1) gst_1->Draw(
"nfkm",
"dis",
"perrsame");
1645 ls->SetHeader(
"Number of final state K- / DIS only");
1651 gst_0->Draw(
"nfk0",
"dis",
"");
1652 if(gst_1) gst_1->Draw(
"nfk0",
"dis",
"perrsame");
1654 ls->SetHeader(
"Number of final state K0 / DIS only");
1662 gst_0->Draw(
"pxf",
"dis&&pdgf==2212",
"");
1663 if(gst_1) gst_1->Draw(
"pxf",
"dis&&pdgf==2212",
"perrsame");
1665 gst_0->Draw(
"pyf",
"dis&&pdgf==2212",
"");
1666 if(gst_1) gst_1->Draw(
"pyf",
"dis&&pdgf==2212",
"perrsame");
1668 gst_0->Draw(
"pzf",
"dis&&pdgf==2212",
"");
1669 if(gst_1) gst_1->Draw(
"pzf",
"dis&&pdgf==2212",
"perrsame");
1671 gst_0->Draw(
"Ef",
"dis&&pdgf==2212",
"");
1672 if(gst_1) gst_1->Draw(
"Ef",
"dis&&pdgf==2212",
"perrsame");
1675 ls->SetHeader(
"Final state protons 4-momentum / DIS only");
1684 gst_0->Draw(
"pxf",
"dis&&pdgf==2112",
"");
1685 if(gst_1) gst_1->Draw(
"pxf",
"dis&&pdgf==2112",
"perrsame");
1687 gst_0->Draw(
"pyf",
"dis&&pdgf==2112",
"");
1688 if(gst_1) gst_1->Draw(
"pyf",
"dis&&pdgf==2112",
"perrsame");
1690 gst_0->Draw(
"pzf",
"dis&&pdgf==2112",
"");
1691 if(gst_1) gst_1->Draw(
"pzf",
"dis&&pdgf==2112",
"perrsame");
1693 gst_0->Draw(
"Ef",
"dis&&pdgf==2112",
"");
1694 if(gst_1) gst_1->Draw(
"Ef",
"dis&&pdgf==2112",
"perrsame");
1697 ls->SetHeader(
"Final state neutrons 4-momentum / DIS only");
1706 gst_0->Draw(
"pxf",
"dis&&pdgf==111",
"");
1707 if(gst_1) gst_1->Draw(
"pxf",
"dis&&pdgf==111",
"perrsame");
1709 gst_0->Draw(
"pyf",
"dis&&pdgf==111",
"");
1710 if(gst_1) gst_1->Draw(
"pyf",
"dis&&pdgf==111",
"perrsame");
1712 gst_0->Draw(
"pzf",
"dis&&pdgf==111",
"");
1713 if(gst_1) gst_1->Draw(
"pzf",
"dis&&pdgf==111",
"perrsame");
1715 gst_0->Draw(
"Ef",
"dis&&pdgf==111",
"");
1716 if(gst_1) gst_1->Draw(
"Ef",
"dis&&pdgf==111",
"perrsame");
1719 ls->SetHeader(
"Final state pi0's 4-momentum / DIS only");
1728 gst_0->Draw(
"pxf",
"dis&&pdgf==211",
"");
1729 if(gst_1) gst_1->Draw(
"pxf",
"dis&&pdgf==211",
"perrsame");
1731 gst_0->Draw(
"pyf",
"dis&&pdgf==211",
"");
1732 if(gst_1) gst_1->Draw(
"pyf",
"dis&&pdgf==211",
"perrsame");
1734 gst_0->Draw(
"pzf",
"dis&&pdgf==211",
"");
1735 if(gst_1) gst_1->Draw(
"pzf",
"dis&&pdgf==211",
"perrsame");
1737 gst_0->Draw(
"Ef",
"dis&&pdgf==211",
"");
1738 if(gst_1) gst_1->Draw(
"Ef",
"dis&&pdgf==211",
"perrsame");
1741 ls->SetHeader(
"Final state pi+'s 4-momentum / DIS only");
1750 gst_0->Draw(
"pxf",
"dis&&pdgf==-211",
"");
1751 if(gst_1) gst_1->Draw(
"pxf",
"dis&&pdgf==-211",
"perrsame");
1753 gst_0->Draw(
"pyf",
"dis&&pdgf==-211",
"");
1754 if(gst_1) gst_1->Draw(
"pyf",
"dis&&pdgf==-211",
"perrsame");
1756 gst_0->Draw(
"pzf",
"dis&&pdgf==-211",
"");
1757 if(gst_1) gst_1->Draw(
"pzf",
"dis&&pdgf==-211",
"perrsame");
1759 gst_0->Draw(
"Ef",
"dis&&pdgf==-211",
"");
1760 if(gst_1) gst_1->Draw(
"Ef",
"dis&&pdgf==-211",
"perrsame");
1763 ls->SetHeader(
"Final state pi-'s 4-momentum/ DIS only");
1772 if(show_primary_hadsyst) {
1776 c->Range(0,0,100,100);
1777 TPavesText hdrihad(10,40,90,70,3,
"tr");
1778 hdrihad.AddText(
"Parimary Hadronic System");
1779 hdrihad.AddText(
"Multiplicities and 4-Momenta");
1780 hdrihad.AddText(
" ");
1781 hdrihad.AddText(
" ");
1782 hdrihad.AddText(
" ");
1783 hdrihad.AddText(
" ");
1784 hdrihad.AddText(
"Note:");
1785 hdrihad.AddText(
"For nuclear targets these plots show the hadronic system");
1786 hdrihad.AddText(
"BEFORE any intranuclear hadron transport / rescattering");
1792 gst_0->Draw(
"nip",
"",
"");
1793 if(gst_1) gst_1->Draw(
"nip",
"",
"perrsame");
1795 ls->SetHeader(
"Primary Hadronic System: Number of protons");
1801 gst_0->Draw(
"nin",
"",
"");
1802 if(gst_1) gst_1->Draw(
"nin",
"",
"perrsame");
1804 ls->SetHeader(
"Primary Hadronic System: Number of neutrons");
1810 gst_0->Draw(
"nipip",
"",
"");
1811 if(gst_1) gst_1->Draw(
"nipip",
"",
"perrsame");
1813 ls->SetHeader(
"Primary Hadronic System: Number of pi+");
1819 gst_0->Draw(
"nipim",
"",
"");
1820 if(gst_1) gst_1->Draw(
"nipim",
"",
"perrsame");
1822 ls->SetHeader(
"Primary Hadronic System: Number of pi-");
1828 gst_0->Draw(
"nipi0",
"",
"");
1829 if(gst_1) gst_1->Draw(
"nipi0",
"",
"perrsame");
1831 ls->SetHeader(
"Primary Hadronic System: Number of pi0");
1837 gst_0->Draw(
"nikp",
"",
"");
1838 if(gst_1) gst_1->Draw(
"nikp",
"",
"perrsame");
1840 ls->SetHeader(
"Primary Hadronic System: Number of K+");
1846 gst_0->Draw(
"nikm",
"",
"");
1847 if(gst_1) gst_1->Draw(
"nikm",
"",
"perrsame");
1849 ls->SetHeader(
"Primary Hadronic System: Number of K-");
1855 gst_0->Draw(
"nik0",
"",
"");
1856 if(gst_1) gst_1->Draw(
"nik0",
"",
"perrsame");
1858 ls->SetHeader(
"Primary Hadronic System: Number of K0");
1866 gst_0->Draw(
"pxi",
"pdgi==2212",
"");
1867 if(gst_1) gst_1->Draw(
"pxi",
"pdgi==2212",
"perrsame");
1869 gst_0->Draw(
"pyi",
"pdgi==2212",
"");
1870 if(gst_1) gst_1->Draw(
"pyi",
"pdgi==2212",
"perrsame");
1872 gst_0->Draw(
"pzi",
"pdgi==2212",
"");
1873 if(gst_1) gst_1->Draw(
"pzi",
"pdgi==2212",
"perrsame");
1875 gst_0->Draw(
"Ei",
"pdgi==2212",
"");
1876 if(gst_1) gst_1->Draw(
"Ei",
"pdgi==2212",
"perrsame");
1879 ls->SetHeader(
"Primary Hadronic System: proton 4-momentum");
1888 gst_0->Draw(
"pxi",
"pdgi==2112",
"");
1889 if(gst_1) gst_1->Draw(
"pxi",
"pdgi==2112",
"perrsame");
1891 gst_0->Draw(
"pyi",
"pdgi==2112",
"");
1892 if(gst_1) gst_1->Draw(
"pyi",
"pdgi==2112",
"perrsame");
1894 gst_0->Draw(
"pzi",
"pdgi==2112",
"");
1895 if(gst_1) gst_1->Draw(
"pzi",
"pdgi==2112",
"perrsame");
1897 gst_0->Draw(
"Ei",
"pdgi==2112",
"");
1898 if(gst_1) gst_1->Draw(
"Ei",
"pdgi==2112",
"perrsame");
1901 ls->SetHeader(
"Primary Hadronic System: neutron 4-momentum");
1910 gst_0->Draw(
"pxi",
"pdgi==111",
"");
1911 if(gst_1) gst_1->Draw(
"pxi",
"pdgi==111",
"perrsame");
1913 gst_0->Draw(
"pyi",
"pdgi==111",
"");
1914 if(gst_1) gst_1->Draw(
"pyi",
"pdgi==111",
"perrsame");
1916 gst_0->Draw(
"pzi",
"pdgi==111",
"");
1917 if(gst_1) gst_1->Draw(
"pzi",
"pdgi==111",
"perrsame");
1919 gst_0->Draw(
"Ei",
"pdgi==111",
"");
1920 if(gst_1) gst_1->Draw(
"Ei",
"pdgi==111",
"perrsame");
1923 ls->SetHeader(
"Primary Hadronic System: pi0's 4-momentum");
1932 gst_0->Draw(
"pxi",
"pdgi==211",
"");
1933 if(gst_1) gst_1->Draw(
"pxi",
"pdgi==211",
"perrsame");
1935 gst_0->Draw(
"pyi",
"pdgi==211",
"");
1936 if(gst_1) gst_1->Draw(
"pyi",
"pdgi==211",
"perrsame");
1938 gst_0->Draw(
"pzi",
"pdgi==211",
"");
1939 if(gst_1) gst_1->Draw(
"pzi",
"pdgi==211",
"perrsame");
1941 gst_0->Draw(
"Ei",
"pdgi==211",
"");
1942 if(gst_1) gst_1->Draw(
"Ei",
"pdgi==211",
"perrsame");
1945 ls->SetHeader(
"Primary Hadronic System:pi+'s 4-momentum");
1954 gst_0->Draw(
"pxi",
"pdgi==-211",
"");
1955 if(gst_1) gst_1->Draw(
"pxi",
"pdgi==-211",
"perrsame");
1957 gst_0->Draw(
"pyi",
"pdgi==-211",
"");
1958 if(gst_1) gst_1->Draw(
"pyi",
"pdgi==-211",
"perrsame");
1960 gst_0->Draw(
"pzi",
"pdgi==-211",
"");
1961 if(gst_1) gst_1->Draw(
"pzi",
"pdgi==-211",
"perrsame");
1963 gst_0->Draw(
"Ei",
"pdgi==-211",
"");
1964 if(gst_1) gst_1->Draw(
"Ei",
"pdgi==-211",
"perrsame");
1967 ls->SetHeader(
"Primary Hadronic System: pi-'s 4-momentum");
1987 unsigned int L = inpname.length();
1991 if(inpname.substr(L-4, L).find(
"root") != string::npos) {
1992 inpname.erase(L-4, L);
1996 name << inpname <<
"sample_test.ps";
1998 return gSystem->BaseName(name.str().c_str());
2003 LOG(
"gevcomp",
pNOTICE) <<
"*** Parsing command line arguments";
2008 if( parser.OptionExists(
'f') ) {
2009 LOG(
"gevcomp",
pINFO) <<
"Reading filename for tested event sample";
2012 LOG(
"gevcomp",
pFATAL) <<
"Unspecified input filename - Exiting";
2018 if( parser.OptionExists(
'r') ) {
2019 LOG(
"gevcomp",
pINFO) <<
"Reading filename for reference event sample";
2022 LOG(
"gevcomp",
pNOTICE) <<
"Unspecified 'reference' event sample";
2029 <<
"\n\n" <<
"Syntax:" <<
"\n"
2030 <<
" gevcomp -f sample.root [-n nev] [-r reference_sample.root]\n";
2035 if(filename.size() == 0)
return false;
2037 bool is_accessible = ! (gSystem->AccessPathName(filename.c_str()));
2038 if (!is_accessible) {
2040 <<
"The input ROOT file [" << filename <<
"] is not accessible";
void SetDefaultStyle(bool black_n_white=false)
int main(int argc, char **argv)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
void CreatePlots(string filename, string filename_ref)
bool CheckRootFilename(string filename)
static constexpr double ps
string OutputFileName(string input_file_name)
Command line argument parser.
void GetCommandLineArgs(int argc, char **argv)
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...