Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
reconstruction_benchmarks
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
EIC
benchmarks
reconstruction_benchmarks
Merge requests
!15
Acceptance
Code
Review changes
Check out branch
Download
Patches
Plain diff
Expand sidebar
Merged
Acceptance
jihee.kim/reconstruction_benchmarks:acceptance
into
master
Overview
0
Commits
5
Pipelines
0
Changes
2
Merged
Acceptance
Jihee Kim
requested to merge
jihee.kim/reconstruction_benchmarks:acceptance
into
master
Oct 21, 2020
Overview
0
Commits
5
Pipelines
0
Changes
2
Created unified script to read reconstructed and thrown information
Added acceptance calcuation
Edited
Oct 21, 2020
by
Whitney Armstrong
0
0
Merge request reports
Compare
master
version 13
ad5a9337
Oct 21, 2020
version 12
9573b9e0
Oct 21, 2020
version 11
fba70eca
Oct 21, 2020
version 10
c3aa6ddf
Oct 21, 2020
version 9
f0433b94
Oct 21, 2020
version 8
b29f96a7
Oct 21, 2020
version 7
39400f83
Oct 21, 2020
version 6
a886aad9
Oct 21, 2020
version 5
aa243e96
Oct 21, 2020
version 4
582f5d73
Oct 21, 2020
version 3
1c826f5e
Oct 21, 2020
version 2
537e3e5b
Oct 21, 2020
version 1
af0cb186
Oct 21, 2020
master (base)
and
latest version
latest version
22bb2177
5 commits,
Oct 21, 2020
version 13
ad5a9337
4 commits,
Oct 21, 2020
version 12
9573b9e0
3 commits,
Oct 21, 2020
version 11
fba70eca
2 commits,
Oct 21, 2020
version 10
c3aa6ddf
1 commit,
Oct 21, 2020
version 9
f0433b94
8 commits,
Oct 21, 2020
version 8
b29f96a7
7 commits,
Oct 21, 2020
version 7
39400f83
6 commits,
Oct 21, 2020
version 6
a886aad9
5 commits,
Oct 21, 2020
version 5
aa243e96
4 commits,
Oct 21, 2020
version 4
582f5d73
3 commits,
Oct 21, 2020
version 3
1c826f5e
3 commits,
Oct 21, 2020
version 2
537e3e5b
2 commits,
Oct 21, 2020
version 1
af0cb186
1 commit,
Oct 21, 2020
2 files
+
377
−
5
Side-by-side
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
ecal/scripts/rec_emcal_electrons_reader.C
0 → 100644
+
370
−
0
View file @ 22bb2177
Edit in single-file editor
Open in Web IDE
////////////////////////////////////////
// Read reconstruction ROOT output file
// Plot variables
////////////////////////////////////////
int
rec_emcal_electrons_reader
(
double
e_start
=
1
.
0
,
double
e_end
=
1
.
0
,
const
char
*
input_fname
=
"sim_output/sim_emcal_electrons_output.root"
)
{
// Setting figures
gROOT
->
SetStyle
(
"Plain"
);
gStyle
->
SetLineWidth
(
3
);
gStyle
->
SetOptStat
(
"nem"
);
gStyle
->
SetPadTickX
(
1
);
gStyle
->
SetPadTickY
(
1
);
gStyle
->
SetPadGridX
(
1
);
gStyle
->
SetPadGridY
(
1
);
gStyle
->
SetPadLeftMargin
(
0
.
14
);
gStyle
->
SetPadRightMargin
(
0
.
14
);
// Input ROOT file
TFile
*
f
=
new
TFile
(
input_fname
,
"READ"
);
TTree
*
t
=
(
TTree
*
)
f
->
Get
(
"events"
);
// Set Branch status and addressed
t
->
SetMakeClass
(
1
);
t
->
SetBranchStatus
(
"*"
,
0
);
/*
Int_t mcparticles2_;
t->SetBranchStatus("mcparticles2", 1);
t->SetBranchAddress("mcparticles2", &mcparticles2_);
Int_t CrystalEcalHits2_;
t->SetBranchStatus("CrystalEcalHits2", 1);
t->SetBranchAddress("CrystalEcalHits2", &CrystalEcalHits2_);
*/
Int_t
RecoEcalHits_
;
t
->
SetBranchStatus
(
"RecoEcalHits"
,
1
);
t
->
SetBranchAddress
(
"RecoEcalHits"
,
&
RecoEcalHits_
);
Int_t
EcalClusters_
;
t
->
SetBranchStatus
(
"EcalClusters"
,
1
);
t
->
SetBranchAddress
(
"EcalClusters"
,
&
EcalClusters_
);
/*
const Int_t kMaxmcparticles2 = 100000;
Double_t px[kMaxmcparticles2];
Double_t py[kMaxmcparticles2];
Double_t pz[kMaxmcparticles2];
Double_t mass[kMaxmcparticles2];
t->SetBranchStatus("mcparticles2.psx",1);
t->SetBranchStatus("mcparticles2.psy",1);
t->SetBranchStatus("mcparticles2.psz",1);
t->SetBranchStatus("mcparticles2.mass",1);
t->SetBranchAddress("mcparticles2.psx",px);
t->SetBranchAddress("mcparticles2.psy",py);
t->SetBranchAddress("mcparticles2.psz",pz);
t->SetBranchAddress("mcparticles2.mass",mass);
const Int_t kMaxCrystalEcalHits2 = 100000;
Double_t truth_deposit[kMaxCrystalEcalHits2];
Double_t energyDeposit[kMaxCrystalEcalHits2];
t->SetBranchStatus("CrystalEcalHits2.truth.deposit",1);
t->SetBranchStatus("CrystalEcalHits2.energyDeposit",1);
t->SetBranchAddress("CrystalEcalHits2.truth.deposit",truth_deposit);
t->SetBranchAddress("CrystalEcalHits2.energyDeposit",energyDeposit);
*/
const
Int_t
kMaxRecoEcalHits
=
100000
;
Double_t
rec_x_pos
[
kMaxRecoEcalHits
];
Double_t
rec_y_pos
[
kMaxRecoEcalHits
];
Double_t
rec_energy
[
kMaxRecoEcalHits
];
t
->
SetBranchStatus
(
"RecoEcalHits.position.x"
,
1
);
t
->
SetBranchStatus
(
"RecoEcalHits.position.y"
,
1
);
t
->
SetBranchStatus
(
"RecoEcalHits.energy"
,
1
);
t
->
SetBranchAddress
(
"RecoEcalHits.position.x"
,
rec_x_pos
);
t
->
SetBranchAddress
(
"RecoEcalHits.position.y"
,
rec_y_pos
);
t
->
SetBranchAddress
(
"RecoEcalHits.energy"
,
rec_energy
);
const
Int_t
kMaxEcalClusters
=
100000
;
Double_t
cluster_x_pos
[
kMaxEcalClusters
];
Double_t
cluster_y_pos
[
kMaxEcalClusters
];
Double_t
cluster_z_pos
[
kMaxEcalClusters
];
Float_t
cluster_energy
[
kMaxEcalClusters
];
t
->
SetBranchStatus
(
"EcalClusters.position.x"
,
1
);
t
->
SetBranchStatus
(
"EcalClusters.position.y"
,
1
);
t
->
SetBranchStatus
(
"EcalClusters.position.z"
,
1
);
t
->
SetBranchStatus
(
"EcalClusters.energy"
,
1
);
t
->
SetBranchAddress
(
"EcalClusters.position.x"
,
cluster_x_pos
);
t
->
SetBranchAddress
(
"EcalClusters.position.y"
,
cluster_y_pos
);
t
->
SetBranchAddress
(
"EcalClusters.position.z"
,
cluster_z_pos
);
t
->
SetBranchAddress
(
"EcalClusters.energy"
,
cluster_energy
);
// Setting for Canvas
TCanvas
*
c1
=
new
TCanvas
(
"c1"
,
"c1"
,
500
,
500
);
TCanvas
*
c2
=
new
TCanvas
(
"c2"
,
"c2"
,
500
,
500
);
TCanvas
*
c3
=
new
TCanvas
(
"c3"
,
"c3"
,
500
,
500
);
TCanvas
*
c4
=
new
TCanvas
(
"c4"
,
"c4"
,
500
,
500
);
TCanvas
*
c5
=
new
TCanvas
(
"c5"
,
"c5"
,
500
,
500
);
TCanvas
*
c6
=
new
TCanvas
(
"c6"
,
"c6"
,
500
,
500
);
TCanvas
*
c7
=
new
TCanvas
(
"c7"
,
"c7"
,
500
,
500
);
TCanvas
*
c8
=
new
TCanvas
(
"c8"
,
"c8"
,
500
,
500
);
TCanvas
*
c9
=
new
TCanvas
(
"c9"
,
"c9"
,
500
,
500
);
TCanvas
*
c10
=
new
TCanvas
(
"c10"
,
"c10"
,
700
,
500
);
TCanvas
*
c11
=
new
TCanvas
(
"c11"
,
"c11"
,
700
,
500
);
TCanvas
*
c12
=
new
TCanvas
(
"c12"
,
"c12"
,
700
,
500
);
TCanvas
*
c13
=
new
TCanvas
(
"c13"
,
"c13"
,
700
,
500
);
TCanvas
*
c14
=
new
TCanvas
(
"c14"
,
"c14"
,
700
,
500
);
// Declare histograms
TH1D
*
h1
=
new
TH1D
(
"h1"
,
"Scattering Angle(#theta)"
,
100
,
130
.
0
,
180
.
0
);
TH1D
*
h2
=
new
TH1D
(
"h2"
,
"Pseudo-rapidity(#eta)"
,
100
,
-
5
.
0
,
0
.
0
);
TH2D
*
h3
=
new
TH2D
(
"h3"
,
"Cluster E vs Pseudo-rapidity"
,
100
,
e_start
-
0
.
5
,
e_end
+
0
.
5
,
100
,
-
5
.
0
,
0
.
0
);
TH1D
*
h4
=
new
TH1D
(
"h4"
,
"Reconstructed energy per event"
,
100
,
e_start
-
0
.
5
,
e_end
+
0
.
5
);
TH1D
*
h5
=
new
TH1D
(
"h5"
,
"Number of Clusters per event"
,
5
,
-
0
.
5
,
4
.
5
);
TH1D
*
h6
=
new
TH1D
(
"h6"
,
"Scattering Angle(#theta) with CUT"
,
100
,
130
.
0
,
180
.
0
);
TH1D
*
h7
=
new
TH1D
(
"h7"
,
"Pseudo-rapidity(#eta) with CUT"
,
100
,
-
5
.
0
,
0
.
0
);
TH2D
*
h8
=
new
TH2D
(
"h8"
,
"Cluster Hit Position"
,
62
,
-
62
.
0
,
62
.
0
,
62
,
-
62
.
0
,
62
.
0
);
TH2D
*
h9
=
new
TH2D
(
"h9"
,
"All Hit Position"
,
62
,
-
62
.
0
,
62
.
0
,
62
,
-
62
.
0
,
62
.
0
);
TH1D
*
h10
=
new
TH1D
(
"hEnergyRes"
,
"Energy Resolution"
,
100
,
-
0
.
3
,
0
.
3
);
TH1D
*
h11
=
new
TH1D
(
"hEnergyResCUT"
,
"Energy Resolution with CUT"
,
100
,
-
0
.
3
,
0
.
3
);
TH1D
*
h12
=
new
TH1D
(
"h12"
,
"Thrown momentum"
,
61
,
e_start
-
0
.
5
,
e_end
+
0
.
5
);
TH1D
*
h13
=
new
TH1D
(
"h13"
,
"Thrown momentum for reconstructed particle"
,
61
,
e_start
-
0
.
5
,
e_end
+
0
.
5
);
TH1D
*
h14
=
new
TH1D
(
"h14"
,
"Ratio p_{rec}/p_{thr}"
,
61
,
e_start
-
0
.
5
,
e_end
+
0
.
5
);
// Declare ellipse for boundary of crystal calorimeter
TEllipse
*
ell1
=
new
TEllipse
(
0
.
0
,
0
.
0
,
60
.
0
,
60
.
0
);
ell1
->
SetFillStyle
(
4000
);
TEllipse
*
ell2
=
new
TEllipse
(
0
.
0
,
0
.
0
,
12
.
0
,
12
.
0
);
ell2
->
SetFillStyle
(
4000
);
// Total number of entries
Int_t
nentries
=
t
->
GetEntries
();
// Variables are used in calculation
Double_t
r
;
// Radius [cm]
Double_t
phi
;
// Azimuth [degree]
Double_t
theta
;
// Inclination [degree]
Double_t
eta
;
// Pseudo-rapidity [unitless]
Float_t
cluster_e
;
// Cluster energy [GeV]
Float_t
total_cluster_e
;
// Add up clusters per event [GeV]
Double_t
total_thr_e
;
// Thrown energy [GeV]
Double_t
total_truth_sim_e
;
// Add up truth simulated deposit energy [GeV]
Double_t
total_sim_e
;
// Add up truth simulated deposit energy [GeV]
Double_t
momentum2
;
// momentum squared
Double_t
momentum
;
// momentum
Double_t
mass2
;
// mass squared
Double_t
diff_energy
;
// delta(E) = reconstructed energy - thrown energy
Double_t
eng_res
;
// delta(E)/thrown energy
// Loop over event by event
for
(
int
ievent
=
0
;
ievent
<
nentries
;
ievent
++
)
{
// Read event by event
t
->
GetEntry
(
ievent
);
// Read number of hits/clusters
/*
Int_t nmcparticle = 2;
Int_t nCrystalEcalHits = CrystalEcalHits2_;
*/
Int_t
nreconhits
=
RecoEcalHits_
;
Int_t
ncluster
=
EcalClusters_
;
// Initialize total energy variables
total_thr_e
=
0
.
0
;
total_truth_sim_e
=
0
.
0
;
total_sim_e
=
0
.
0
;
total_cluster_e
=
0
.
0
;
// Thrown energy, momentum, and mass
/*
momentum2 = px[nmcparticle]*px[nmcparticle]+py[nmcparticle]*py[nmcparticle]+pz[nmcparticle]*pz[nmcparticle];
momentum = TMath::Sqrt(momentum2);
mass2 = mass[nmcparticle]*mass[nmcparticle];
total_thr_e = sqrt(momentum2 + mass2)/1.e+3;
h12->Fill(momentum, 1.0);
// Loop over simulated hit by simulated hit
for (int isimhit=0; isimhit < nCrystalEcalHits; isimhit++)
{
total_truth_sim_e += truth_deposit[isimhit];
total_sim_e += energyDeposit[isimhit]/1.e+3;
}
*/
// Loop over reconstructed hit by reconstructed hit
for
(
int
ireconhit
=
0
;
ireconhit
<
nreconhits
;
ireconhit
++
)
h9
->
Fill
(
rec_x_pos
[
ireconhit
],
rec_y_pos
[
ireconhit
],
1
.
0
);
h5
->
Fill
(
ncluster
,
1
.
0
);
// Loop over cluster by cluster
for
(
int
icluster
=
0
;
icluster
<
ncluster
;
icluster
++
)
{
r
=
TMath
::
Sqrt
((
cluster_x_pos
[
icluster
]
*
cluster_x_pos
[
icluster
])
+
(
cluster_y_pos
[
icluster
]
*
cluster_y_pos
[
icluster
])
+
(
cluster_z_pos
[
icluster
]
*
cluster_z_pos
[
icluster
]));
phi
=
TMath
::
ATan
(
cluster_y_pos
[
icluster
]
/
cluster_x_pos
[
icluster
])
*
TMath
::
RadToDeg
();
theta
=
TMath
::
ACos
(
cluster_z_pos
[
icluster
]
/
r
)
*
TMath
::
RadToDeg
();
eta
=
-
1
.
0
*
TMath
::
Log
(
TMath
::
Tan
((
theta
*
TMath
::
DegToRad
())
/
2
.
0
));
cluster_e
=
cluster_energy
[
icluster
]
/
1.e+3
;
total_cluster_e
+=
cluster_e
;
}
// Select events with one cluster
if
(
ncluster
==
1
)
{
diff_energy
=
total_cluster_e
-
total_thr_e
;
eng_res
=
(
diff_energy
/
total_thr_e
);
h10
->
Fill
(
eng_res
,
1
.
0
);
h1
->
Fill
(
theta
,
1
.
0
);
h2
->
Fill
(
eta
,
1
.
0
);
h3
->
Fill
(
cluster_e
,
eta
,
1
.
0
);
h4
->
Fill
(
total_cluster_e
,
1
.
0
);
h8
->
Fill
(
cluster_x_pos
[
0
],
cluster_y_pos
[
0
],
1
.
0
);
h10
->
Fill
(
eng_res
,
1
.
0
);
if
(
total_cluster_e
>
0
.
2
*
total_thr_e
)
{
h6
->
Fill
(
theta
,
1
.
0
);
h7
->
Fill
(
eta
,
1
.
0
);
h11
->
Fill
(
eng_res
,
1
.
0
);
}
/*
if(total_cluster_e > 0.9*total_thr_e)
h13->Fill(momentum, 1.0);
*/
}
}
// Drawing and Saving figures
c1
->
cd
();
h1
->
SetLineColor
(
kBlue
);
h1
->
SetLineWidth
(
2
);
h1
->
GetYaxis
()
->
SetRangeUser
(
0
.
0
,
h1
->
GetMaximum
()
+
50
.
0
);
h1
->
GetXaxis
()
->
SetTitle
(
"#theta [degree]"
);
h1
->
GetYaxis
()
->
SetTitle
(
"events"
);
h1
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h1
->
DrawClone
();
c1
->
SaveAs
(
"results/electron_theta_hist_0GeVto30GeV.png"
);
c1
->
SaveAs
(
"results/electron_theta_hist_0GeVto30GeV.pdf"
);
c2
->
cd
();
h2
->
SetLineColor
(
kBlue
);
h2
->
SetLineWidth
(
2
);
h2
->
GetYaxis
()
->
SetRangeUser
(
0
.
0
,
h2
->
GetMaximum
()
+
50
.
0
);
h2
->
GetXaxis
()
->
SetTitle
(
"#eta"
);
h2
->
GetYaxis
()
->
SetTitle
(
"events"
);
h2
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h2
->
DrawClone
();
c2
->
SaveAs
(
"results/electron_eta_hist_0GeVto30GeV.png"
);
c2
->
SaveAs
(
"results/electron_eta_hist_0GeVto30GeV.pdf"
);
c3
->
cd
();
h3
->
GetXaxis
()
->
SetTitle
(
"Cluster energy [GeV]"
);
h3
->
GetYaxis
()
->
SetTitle
(
"#eta"
);
h3
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h3
->
DrawClone
(
"COLZ"
);
c3
->
SaveAs
(
"results/eletron_E_vs_eta_hist_0GeVto30GeV.png"
);
c3
->
SaveAs
(
"results/eletron_E_vs_eta_hist_0GeVto30GeV.pdf"
);
c4
->
cd
();
c4
->
SetLogy
(
1
);
h4
->
SetLineColor
(
kBlue
);
h4
->
SetLineWidth
(
2
);
h4
->
GetXaxis
()
->
SetTitle
(
"reconstructed energy [GeV]"
);
h4
->
GetYaxis
()
->
SetTitle
(
"events"
);
h4
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h4
->
DrawClone
();
c4
->
SaveAs
(
"results/electron_Erec_hist_0GeVto30GeV.png"
);
c4
->
SaveAs
(
"results/electron_Erec_hist_0GeVto30GeV.pdf"
);
c5
->
cd
();
c5
->
SetLogy
(
1
);
h5
->
SetLineColor
(
kBlue
);
h5
->
SetLineWidth
(
2
);
h5
->
GetXaxis
()
->
SetTitle
(
"Number of Clusters"
);
h5
->
GetYaxis
()
->
SetTitle
(
"events"
);
h5
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h5
->
DrawClone
();
c5
->
SaveAs
(
"results/electron_ncluster_hist_0GeVto30GeV.png"
);
c5
->
SaveAs
(
"results/electron_ncluster_hist_0GeVto30GeV.pdf"
);
c6
->
cd
();
h6
->
SetLineColor
(
kBlue
);
h6
->
SetLineWidth
(
2
);
h6
->
GetYaxis
()
->
SetRangeUser
(
0
.
0
,
h1
->
GetMaximum
()
+
50
.
0
);
h6
->
GetXaxis
()
->
SetTitle
(
"#theta [degree]"
);
h6
->
GetYaxis
()
->
SetTitle
(
"events"
);
h6
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h6
->
DrawClone
();
c6
->
SaveAs
(
"results/electron_theta_hist_CUT_0GeVto30GeV.png"
);
c6
->
SaveAs
(
"results/electron_theta_hist_CUT_0GeVto30GeV.pdf"
);
c7
->
cd
();
h7
->
SetLineColor
(
kBlue
);
h7
->
SetLineWidth
(
2
);
h7
->
GetYaxis
()
->
SetRangeUser
(
0
.
0
,
h2
->
GetMaximum
()
+
50
.
0
);
h7
->
GetXaxis
()
->
SetTitle
(
"#eta"
);
h7
->
GetYaxis
()
->
SetTitle
(
"events"
);
h7
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h7
->
DrawClone
();
c7
->
SaveAs
(
"results/electron_eta_hist_CUT_0GeVto30GeV.png"
);
c7
->
SaveAs
(
"results/electron_eta_hist_CUT_0GeVto30GeV.pdf"
);
c8
->
cd
();
h8
->
GetXaxis
()
->
SetTitle
(
"Hit position X [cm]"
);
h8
->
GetYaxis
()
->
SetTitle
(
"Hit position Y [cm]"
);
h8
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h8
->
DrawClone
(
"COLZ"
);
ell1
->
Draw
(
"same"
);
ell2
->
Draw
(
"same"
);
c8
->
SaveAs
(
"results/electron_hit_pos_cluster_0GeVto30GeV.png"
);
c8
->
SaveAs
(
"results/electron_hit_pos_cluster_0GeVto30GeV.pdf"
);
c9
->
cd
();
h9
->
GetXaxis
()
->
SetTitle
(
"Hit position X [cm]"
);
h9
->
GetYaxis
()
->
SetTitle
(
"Hit position Y [cm]"
);
h9
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h9
->
DrawClone
(
"COLZ"
);
ell1
->
Draw
(
"same"
);
ell2
->
Draw
(
"same"
);
c9
->
SaveAs
(
"results/electron_hit_pos_all_0GeVto30GeV.png"
);
c9
->
SaveAs
(
"results/electron_hit_pos_all_0GeVto30GeV.pdf"
);
c10
->
cd
();
h10
->
SetLineColor
(
kBlue
);
h10
->
SetLineWidth
(
2
);
h10
->
GetXaxis
()
->
SetTitle
(
"#DeltaE/E"
);
h10
->
GetYaxis
()
->
SetTitle
(
"events"
);
h10
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h10
->
Fit
(
"gaus"
);
h10
->
DrawClone
();
c10
->
SaveAs
(
"results/hEngRes.png"
);
c10
->
SaveAs
(
"results/hEngRes.pdf"
);
c11
->
cd
();
h11
->
SetLineColor
(
kBlue
);
h11
->
SetLineWidth
(
2
);
h11
->
GetXaxis
()
->
SetTitle
(
"#DeltaE/E"
);
h11
->
GetYaxis
()
->
SetTitle
(
"events"
);
h11
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h11
->
Fit
(
"gaus"
);
h11
->
DrawClone
();
c11
->
SaveAs
(
"results/hEngRes_CUT.png"
);
c11
->
SaveAs
(
"results/hEngRes_CUT.pdf"
);
c12
->
cd
();
h12
->
SetLineColor
(
kBlue
);
h12
->
SetLineWidth
(
2
);
h12
->
GetXaxis
()
->
SetTitle
(
"Reconstructed Momentum [GeV]"
);
h12
->
GetYaxis
()
->
SetTitle
(
"events"
);
h12
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h12
->
DrawClone
();
c12
->
SaveAs
(
"results/hThrMom.png"
);
c12
->
SaveAs
(
"results/hThrMom.pdf"
);
c13
->
cd
();
h13
->
SetLineColor
(
kBlue
);
h13
->
SetLineWidth
(
2
);
h13
->
GetXaxis
()
->
SetTitle
(
"Thrown Momentum [GeV]"
);
h13
->
GetYaxis
()
->
SetTitle
(
"events"
);
h13
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h13
->
DrawClone
();
c13
->
SaveAs
(
"results/hThrMom_Rec.png"
);
c13
->
SaveAs
(
"results/hThrMom_Rec.pdf"
);
c14
->
cd
();
h14
=
(
TH1D
*
)
h12
->
Clone
();
h14
->
Divide
(
h13
);
h14
->
SetTitle
(
"Ratio p_{rec}/p_{thr}"
);
h14
->
SetLineColor
(
kBlue
);
h14
->
SetLineWidth
(
2
);
h14
->
GetXaxis
()
->
SetTitle
(
"p [GeV]"
);
h14
->
GetYaxis
()
->
SetTitle
(
"p_{rec}/p_{thr}"
);
h14
->
GetYaxis
()
->
SetTitleOffset
(
1
.
4
);
h14
->
DrawClone
();
c14
->
SaveAs
(
"results/hAcceptance.png"
);
c14
->
SaveAs
(
"results/hAcceptance.pdf"
);
return
0
;
}
Loading