]>
Commit | Line | Data |
---|---|---|
8074859b | 1 | void draw() |
2 | { | |
3dfa46a4 | 3 | //const char* files[] = { "trackCuts_normal.root", "trackCuts_increased.root", "trackCuts_decreased.root" }; |
4 | const char* files[] = | |
5 | { "Material-normal/trackCuts.root", | |
6 | "Material-increased-mcvtx/trackCuts.root", | |
7 | "Material-decreased-mcvtx/trackCuts.root" }; | |
8074859b | 8 | const char* titles[] = { "default geometry", "+ 10% material", "- 10% material" }; |
9 | Int_t colors[] = { 1, 2, 4 }; | |
3dfa46a4 | 10 | Int_t markers[] = {24, 25, 26, 27 }; |
8074859b | 11 | |
12 | TCanvas* c = new TCanvas; | |
3dfa46a4 | 13 | TCanvas* c2 = new TCanvas; |
8074859b | 14 | |
3dfa46a4 | 15 | TLegend* legend = new TLegend(0.6, 0.5, 0.9, 0.9); |
16 | TLegend* legend2 = new TLegend(0.7, 0.7, 0.9, 0.9); | |
8074859b | 17 | |
18 | for (Int_t i=0; i<3; i++) { | |
3dfa46a4 | 19 | if (!TFile::Open(files[i])) |
20 | return; | |
21 | ||
8074859b | 22 | TH1* ptPrim = gFile->Get("fTrackCutsPrimaries/before_cuts/pt"); |
23 | TH1* ptPrimCut = gFile->Get("fTrackCutsPrimaries/after_cuts/pt_cut"); | |
24 | ||
25 | TH1* ptSec = gFile->Get("fTrackCutsSecondaries/before_cuts/pt"); | |
26 | TH1* ptSecCut = gFile->Get("fTrackCutsSecondaries/after_cuts/pt_cut"); | |
27 | ||
3dfa46a4 | 28 | TH1* vertex = gFile->Get("fVertex"); |
29 | Int_t nEvents = vertex->GetEntries(); | |
30 | ||
8074859b | 31 | ptPrim->Add(ptSec); |
32 | ptPrimCut->Add(ptSecCut); | |
33 | ||
34 | ptPrim->Sumw2(); | |
35 | ptPrimCut->Sumw2(); | |
36 | ptSec->Sumw2(); | |
37 | ptSecCut->Sumw2(); | |
3dfa46a4 | 38 | |
8074859b | 39 | Printf("%s", titles[i]); |
3dfa46a4 | 40 | Printf("Total particles: %d", (Int_t) (ptPrim->GetEntries() + ptSec->GetEntries())); |
41 | Printf("Total particles/event: %.2f", (ptPrim->GetEntries() + ptSec->GetEntries()) / nEvents); | |
42 | Printf("Primaries/event: %.2f", ptPrim->GetEntries() / nEvents); | |
43 | Printf("Secondaries/event: %.2f", ptSec->GetEntries() / nEvents); | |
44 | Printf("Primaries > 0.2 GeV/c/event: %.2f", ptPrim->Integral(ptPrim->GetXaxis()->FindBin(0.21), ptPrim->GetNbinsX()) / nEvents); | |
45 | Printf("Secondaries > 0.2 GeV/c/event: %.2f", ptSec->Integral(ptSec->GetXaxis()->FindBin(0.21), ptSec->GetNbinsX()) / nEvents); | |
46 | Printf("Primaries after cuts > 0.2 GeV/c/event: %.2f +- %.2f", ptPrimCut->Integral(ptPrimCut->GetXaxis()->FindBin(0.21), ptPrimCut->GetNbinsX()) / nEvents, TMath::Sqrt(ptPrimCut->Integral(ptPrimCut->GetXaxis()->FindBin(0.21), ptPrimCut->GetNbinsX())) / nEvents); | |
47 | Printf("Secondaries after cuts > 0.2 GeV/c/event: %.2f +- %.2f", ptSecCut->Integral(ptSecCut->GetXaxis()->FindBin(0.21), ptSecCut->GetNbinsX()) / nEvents, TMath::Sqrt(ptSecCut->Integral(ptSecCut->GetXaxis()->FindBin(0.21), ptSecCut->GetNbinsX())) / nEvents); | |
8074859b | 48 | Printf("%.2f %% secondaries before cuts", 100.0 * ptSec->GetEntries() / ptPrim->GetEntries()); |
49 | Printf("%.2f %% secondaries after cuts", 100.0 * ptSecCut->GetEntries() / ptPrimCut->GetEntries()); | |
50 | Printf(""); | |
51 | ||
3dfa46a4 | 52 | ptPrim->SetLineColor(colors[i]); |
53 | ptPrimCut->SetLineColor(colors[i]); | |
8074859b | 54 | ptSec->SetLineColor(colors[i]); |
55 | ptSecCut->SetLineColor(colors[i]); | |
3dfa46a4 | 56 | |
57 | ptPrim->SetMarkerColor(colors[i]); | |
58 | ptPrimCut->SetMarkerColor(colors[i]); | |
59 | ptSec->SetMarkerColor(colors[i]); | |
60 | ptSecCut->SetMarkerColor(colors[i]); | |
61 | ||
62 | ptPrim->SetStats(kFALSE); | |
63 | ptPrim->SetTitle(""); | |
64 | ptPrim->GetYaxis()->SetTitle("N"); | |
8074859b | 65 | ptSec->SetStats(kFALSE); |
3dfa46a4 | 66 | ptSec->SetTitle(""); |
67 | ||
68 | ptPrim->SetMarkerStyle(markers[0]); | |
69 | ptPrimCut->SetMarkerStyle(markers[1]); | |
70 | ptSec->SetMarkerStyle(markers[2]); | |
71 | ptSecCut->SetMarkerStyle(markers[3]); | |
8074859b | 72 | |
3dfa46a4 | 73 | if (i == 0) { |
74 | legend->AddEntry(ptPrim->Clone(), "Primaries"); | |
75 | legend->AddEntry(ptPrimCut->Clone(), "Primaries after cuts"); | |
76 | legend->AddEntry(ptSec->Clone(), "Secondaries"); | |
77 | legend->AddEntry(ptSecCut->Clone(), "Secondaries after cuts"); | |
78 | } | |
79 | ||
80 | ptPrim->GetXaxis()->SetRangeUser(0, 2); | |
8074859b | 81 | ptSec->GetXaxis()->SetRangeUser(0, 2); |
3dfa46a4 | 82 | //ptPrim->GetYaxis()->SetRangeUser(1e-5, ptSec->GetMaximum() * 1.1); |
83 | ||
84 | c->cd(); | |
85 | ptPrim->DrawCopy((i > 0) ? "SAME" : ""); | |
86 | ptPrimCut->DrawCopy("SAME"); | |
87 | ptSec->DrawCopy("SAME"); | |
88 | ptSecCut->DrawCopy("SAME"); | |
89 | ||
90 | ptSec->Divide(ptSec, ptPrim, 1, 1, "B"); | |
91 | ptSecCut->Divide(ptSecCut, ptPrimCut, 1, 1, "B"); | |
92 | ||
93 | ptSec->SetMarkerStyle(1); | |
94 | ptSecCut->SetMarkerStyle(1); | |
95 | ||
8074859b | 96 | ptSec->GetYaxis()->SetRangeUser(0, 1); |
97 | ||
8074859b | 98 | ptSec->GetYaxis()->SetTitle("N_{Secondaries} / N_{All}"); |
3dfa46a4 | 99 | |
100 | c2->cd(); | |
8074859b | 101 | ptSec->DrawCopy((i > 0) ? "SAME" : ""); |
102 | ptSecCut->DrawCopy("SAME"); | |
103 | ||
104 | legend->AddEntry(ptSec, titles[i]); | |
3dfa46a4 | 105 | legend2->AddEntry(ptSec, titles[i]); |
8074859b | 106 | } |
107 | ||
3dfa46a4 | 108 | c->cd(); |
8074859b | 109 | legend->Draw(); |
3dfa46a4 | 110 | c->SaveAs("changedmaterial_absolute.gif"); |
8074859b | 111 | |
3dfa46a4 | 112 | c2->cd(); |
113 | legend2->Draw(); | |
114 | c2->SaveAs("changedmaterial_relative.gif"); | |
8074859b | 115 | } |
116 | ||
117 | void drawStats(const char* fileName = "trackCuts.root") | |
118 | { | |
119 | TFile::Open(fileName); | |
120 | ||
121 | TH1* stat1 = gFile->Get("fTrackCutsPrimaries/cut_statistics"); | |
122 | TH1* stat2 = gFile->Get("fTrackCutsSecondaries/cut_statistics"); | |
123 | ||
124 | new TCanvas; | |
125 | stat1->Draw(); | |
126 | stat2->SetLineColor(2); | |
127 | stat2->Draw("SAME"); | |
128 | } |