Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cbmroot
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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dario Ramirez
cbmroot
Commits
70db16f2
Commit
70db16f2
authored
3 years ago
by
Viktor Klochkov
Committed by
Volker Friese
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Do not use cuts by default in AnalysisTreeQA, install file with cuts
parent
153b0e87
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
macro/CMakeLists.txt
+1
-0
1 addition, 0 deletions
macro/CMakeLists.txt
macro/analysis/common/qa/run_analysistree_qa.C
+95
-93
95 additions, 93 deletions
macro/analysis/common/qa/run_analysistree_qa.C
with
96 additions
and
93 deletions
macro/CMakeLists.txt
+
1
−
0
View file @
70db16f2
...
@@ -41,6 +41,7 @@ Install(FILES C2F/.rootrc C2F/c2f_transport.C C2F/sis100_electron.tree.list
...
@@ -41,6 +41,7 @@ Install(FILES C2F/.rootrc C2F/c2f_transport.C C2F/sis100_electron.tree.list
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/at_kfpf_interface/run_at_kfpf.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/at_kfpf_interface/run_at_kfpf.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/qa/run_analysistree_qa.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/qa/run_analysistree_qa.C
${
CBMROOT_SOURCE_DIR
}
/macro/analysis/common/cuts/cbm_cuts.h
DESTINATION share/cbmroot/macro/c2f
DESTINATION share/cbmroot/macro/c2f
)
)
Install
(
CODE
"FILE(MAKE_DIRECTORY
${
CMAKE_INSTALL_PREFIX
}
/share/cbmroot/macro/c2f/data)"
)
Install
(
CODE
"FILE(MAKE_DIRECTORY
${
CMAKE_INSTALL_PREFIX
}
/share/cbmroot/macro/c2f/data)"
)
...
...
This diff is collapsed.
Click to expand it.
macro/analysis/common/qa/run_analysistree_qa.C
+
95
−
93
View file @
70db16f2
...
@@ -2,17 +2,23 @@
...
@@ -2,17 +2,23 @@
SPDX-License-Identifier: GPL-3.0-only
SPDX-License-Identifier: GPL-3.0-only
Authors: Viktor Klochkov [committer], Viktor Klochkov [committer] */
Authors: Viktor Klochkov [committer], Viktor Klochkov [committer] */
//#include <AnalysisTree/TaskManager.hpp>
/** @brief run_analysistree_qa
//#include "AnalysisTree/Cuts.hpp"
** @param filelist Filefist (text file) of input AnalysisTree files
** @param is_single_file if true, instead of filelist a single ROOT file will be used as input
//#include "src/EntryConfig.hpp"
**
//#include "src/Task.hpp"
** Macro to run AnalysisTreeQA package (https://github.com/HeavyIonAnalysis/AnalysisTreeQA)
//#include "src/Utils.hpp"
** Produces an output ROOT file with specified histograms / TProfiles.
** Examples how to add plots could be found here:
#include
"../cuts/cbm_cuts.h"
** https://github.com/HeavyIonAnalysis/AnalysisTreeQA/blob/master/examples/example.cpp
** To add event cuts:
typedef
AnalysisTree
::
QA
::
EntryConfig
::
PlotType
PlotType
;
** task->SetEventCuts(EventCuts);
using
AnalysisTree
::
QA
::
gNbins
;
** where EventCuts is AnalysisTree::Cuts* object, for example
** GetCbmEventCuts("RecEventHeader") from macro/analysis/common/cuts/cbm_cuts.h
** To apply a cut on some branch, for example select only primiry MC-tracks:
** task->AddBranchCut(GetCbmMcTracksCuts("SimParticles"));
** or apply quality cuts on STS tracks:
** task->AddBranchCut(GetCbmTrackCuts("RecTracks"));
**/
using
namespace
AnalysisTree
;
using
namespace
AnalysisTree
;
...
@@ -50,10 +56,6 @@ void run_analysistree_qa(std::string filelist, bool is_single_file)
...
@@ -50,10 +56,6 @@ void run_analysistree_qa(std::string filelist, bool is_single_file)
auto
*
task
=
new
QA
::
Task
;
auto
*
task
=
new
QA
::
Task
;
task
->
SetOutputFileName
(
"cbm_qa.root"
);
task
->
SetOutputFileName
(
"cbm_qa.root"
);
task
->
SetEventCuts
(
GetCbmEventCuts
(
"RecEventHeader"
));
task
->
AddBranchCut
(
GetCbmMcTracksCuts
(
"SimParticles"
));
task
->
AddBranchCut
(
GetCbmTrackCuts
(
"RecTracks"
));
RichRingsQA
(
*
task
);
RichRingsQA
(
*
task
);
TrdTracksQA
(
*
task
);
TrdTracksQA
(
*
task
);
// KFPFTracksQA(*task);
// KFPFTracksQA(*task);
...
@@ -83,39 +85,39 @@ void TrdTracksQA(QA::Task& task)
...
@@ -83,39 +85,39 @@ void TrdTracksQA(QA::Task& task)
AddTrackQA
(
&
task
,
trd_tracks
);
AddTrackQA
(
&
task
,
trd_tracks
);
AddTracksMatchQA
(
&
task
,
trd_tracks
,
rec_tracks
);
AddTracksMatchQA
(
&
task
,
trd_tracks
,
rec_tracks
);
task
.
AddH1
({
"TRD energy loss in 1st station, keV"
,
{
trd_tracks
,
"energy_loss_0"
},
{
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 1st station, keV"
,
{
trd_tracks
,
"energy_loss_0"
},
{
QA
::
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 2nd station"
,
{
trd_tracks
,
"energy_loss_1"
},
{
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 2nd station"
,
{
trd_tracks
,
"energy_loss_1"
},
{
QA
::
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 3rd station"
,
{
trd_tracks
,
"energy_loss_2"
},
{
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 3rd station"
,
{
trd_tracks
,
"energy_loss_2"
},
{
QA
::
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 4th station"
,
{
trd_tracks
,
"energy_loss_3"
},
{
gNbins
,
0
,
50
}});
task
.
AddH1
({
"TRD energy loss in 4th station"
,
{
trd_tracks
,
"energy_loss_3"
},
{
QA
::
gNbins
,
0
,
50
}});
task
.
AddH1
({
"Number of hits in TRD"
,
{
trd_tracks
,
"n_hits"
},
{
6
,
0
,
6
}});
task
.
AddH1
({
"Number of hits in TRD"
,
{
trd_tracks
,
"n_hits"
},
{
6
,
0
,
6
}});
task
.
AddH1
({
"PID Likelihood, e^{-}"
,
{
trd_tracks
,
"pid_like_e"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, e^{-}"
,
{
trd_tracks
,
"pid_like_e"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, #pi"
,
{
trd_tracks
,
"pid_like_pi"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, #pi"
,
{
trd_tracks
,
"pid_like_pi"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, K"
,
{
trd_tracks
,
"pid_like_k"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, K"
,
{
trd_tracks
,
"pid_like_k"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, p"
,
{
trd_tracks
,
"pid_like_p"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"PID Likelihood, p"
,
{
trd_tracks
,
"pid_like_p"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"#chi^{2}/NDF"
,
{
trd_tracks
,
"chi2_ov_ndf"
},
{
gNbins
,
0
,
30
}});
task
.
AddH1
({
"#chi^{2}/NDF"
,
{
trd_tracks
,
"chi2_ov_ndf"
},
{
QA
::
gNbins
,
0
,
30
}});
task
.
AddH1
({
"p_{T}^{last} (GeV/c)"
,
{
trd_tracks
,
"pT_out"
},
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"p_{T}^{last} (GeV/c)"
,
{
trd_tracks
,
"pT_out"
},
{
QA
::
gNbins
,
0
,
10
}});
task
.
AddH1
({
"p^{last} (GeV/c)"
,
{
trd_tracks
,
"p_out"
},
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"p^{last} (GeV/c)"
,
{
trd_tracks
,
"p_out"
},
{
QA
::
gNbins
,
0
,
10
}});
}
}
void
RichRingsQA
(
QA
::
Task
&
task
)
void
RichRingsQA
(
QA
::
Task
&
task
)
{
{
task
.
AddH1
({
"RICh ring x-position (cm)"
,
{
rich_rings
,
"x"
},
{
gNbins
,
-
100
,
100
}});
task
.
AddH1
({
"RICh ring x-position (cm)"
,
{
rich_rings
,
"x"
},
{
QA
::
gNbins
,
-
100
,
100
}});
task
.
AddH1
({
"RICh ring y-position (cm)"
,
{
rich_rings
,
"y"
},
{
gNbins
,
-
250
,
250
}});
task
.
AddH1
({
"RICh ring y-position (cm)"
,
{
rich_rings
,
"y"
},
{
QA
::
gNbins
,
-
250
,
250
}});
task
.
AddH2
({
"RICh ring x-position (cm)"
,
{
rich_rings
,
"x"
},
{
gNbins
,
-
100
,
100
}},
task
.
AddH2
({
"RICh ring x-position (cm)"
,
{
rich_rings
,
"x"
},
{
QA
::
gNbins
,
-
100
,
100
}},
{
"RICh ring y-position (cm)"
,
{
rich_rings
,
"y"
},
{
gNbins
,
-
250
,
250
}});
{
"RICh ring y-position (cm)"
,
{
rich_rings
,
"y"
},
{
QA
::
gNbins
,
-
250
,
250
}});
task
.
AddH1
({
"Ring radius"
,
{
rich_rings
,
"radius"
},
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"Ring radius"
,
{
rich_rings
,
"radius"
},
{
QA
::
gNbins
,
0
,
10
}});
task
.
AddH1
({
"n_hits"
,
{
rich_rings
,
"n_hits"
},
{
gNbins
,
0
,
60
}});
task
.
AddH1
({
"n_hits"
,
{
rich_rings
,
"n_hits"
},
{
QA
::
gNbins
,
0
,
60
}});
task
.
AddH1
({
"n_hits_on_ring"
,
{
rich_rings
,
"n_hits_on_ring"
},
{
gNbins
,
0
,
100
}});
task
.
AddH1
({
"n_hits_on_ring"
,
{
rich_rings
,
"n_hits_on_ring"
},
{
QA
::
gNbins
,
0
,
100
}});
task
.
AddH1
({
"axis_a"
,
{
rich_rings
,
"axis_a"
},
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"axis_a"
,
{
rich_rings
,
"axis_a"
},
{
QA
::
gNbins
,
0
,
10
}});
task
.
AddH1
({
"axis_b"
,
{
rich_rings
,
"axis_b"
},
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"axis_b"
,
{
rich_rings
,
"axis_b"
},
{
QA
::
gNbins
,
0
,
10
}});
task
.
AddH1
({
"chi2_ov_ndf"
,
{
rich_rings
,
"chi2_ov_ndf"
},
{
gNbins
,
0
,
1
}});
task
.
AddH1
({
"chi2_ov_ndf"
,
{
rich_rings
,
"chi2_ov_ndf"
},
{
QA
::
gNbins
,
0
,
1
}});
task
.
AddH1
({
"phi_ellipse"
,
{
rich_rings
,
"phi_ellipse"
},
{
gNbins
,
-
3
.
2
,
3
.
2
}});
task
.
AddH1
({
"phi_ellipse"
,
{
rich_rings
,
"phi_ellipse"
},
{
QA
::
gNbins
,
-
3
.
2
,
3
.
2
}});
}
}
void
VertexTracksQA
(
QA
::
Task
&
task
)
void
VertexTracksQA
(
QA
::
Task
&
task
)
...
@@ -126,33 +128,33 @@ void VertexTracksQA(QA::Task& task)
...
@@ -126,33 +128,33 @@ void VertexTracksQA(QA::Task& task)
Variable
chi2_over_ndf
(
"chi2_ndf"
,
{{
rec_tracks
,
"chi2"
},
{
rec_tracks
,
"ndf"
}},
Variable
chi2_over_ndf
(
"chi2_ndf"
,
{{
rec_tracks
,
"chi2"
},
{
rec_tracks
,
"ndf"
}},
[](
std
::
vector
<
double
>&
var
)
{
return
var
.
at
(
0
)
/
var
.
at
(
1
);
});
[](
std
::
vector
<
double
>&
var
)
{
return
var
.
at
(
0
)
/
var
.
at
(
1
);
});
task
.
AddH1
({
"DCA_{x}, cm"
,
{
rec_tracks
,
"dcax"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"DCA_{x}, cm"
,
{
rec_tracks
,
"dcax"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"DCA_{y}, cm"
,
{
rec_tracks
,
"dcay"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"DCA_{y}, cm"
,
{
rec_tracks
,
"dcay"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"DCA_{z}, cm"
,
{
rec_tracks
,
"dcaz"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"DCA_{z}, cm"
,
{
rec_tracks
,
"dcaz"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"NDF"
,
{
rec_tracks
,
"ndf"
},
{
30
,
0
,
30
}});
task
.
AddH1
({
"NDF"
,
{
rec_tracks
,
"ndf"
},
{
30
,
0
,
30
}});
task
.
AddH1
({
"Number of hits (STS+MVD)"
,
{
rec_tracks
,
"nhits"
},
{
15
,
0
,
15
}});
task
.
AddH1
({
"Number of hits (STS+MVD)"
,
{
rec_tracks
,
"nhits"
},
{
15
,
0
,
15
}});
task
.
AddH1
({
"Number of hits (MVD)"
,
{
rec_tracks
,
"nhits_mvd"
},
{
5
,
0
,
5
}});
task
.
AddH1
({
"Number of hits (MVD)"
,
{
rec_tracks
,
"nhits_mvd"
},
{
5
,
0
,
5
}});
task
.
AddH1
({
"#chi^{2}_{vertex}"
,
{
rec_tracks
,
"vtx_chi2"
},
{
500
,
0
,
100
}});
task
.
AddH1
({
"#chi^{2}_{vertex}"
,
{
rec_tracks
,
"vtx_chi2"
},
{
500
,
0
,
100
}});
task
.
AddH1
({
"#chi^{2}/NDF"
,
chi2_over_ndf
,
{
gNbins
,
0
,
10
}});
task
.
AddH1
({
"#chi^{2}/NDF"
,
chi2_over_ndf
,
{
QA
::
gNbins
,
0
,
10
}});
task
.
AddH2
({
"DCA_{x}, cm"
,
{
rec_tracks
,
"dcax"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"DCA_{x}, cm"
,
{
rec_tracks
,
"dcax"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"DCA_{y}, cm"
,
{
rec_tracks
,
"dcay"
},
{
gNbins
,
-
1
,
1
}});
{
"DCA_{y}, cm"
,
{
rec_tracks
,
"dcay"
},
{
QA
::
gNbins
,
-
1
,
1
}});
}
}
void
TofHitsQA
(
QA
::
Task
&
task
)
void
TofHitsQA
(
QA
::
Task
&
task
)
{
{
task
.
AddH1
({
"TOF hit x-position (cm)"
,
{
tof_hits
,
"x"
},
{
gNbins
,
-
600
,
600
}});
task
.
AddH1
({
"TOF hit x-position (cm)"
,
{
tof_hits
,
"x"
},
{
QA
::
gNbins
,
-
600
,
600
}});
task
.
AddH1
({
"TOF hit y-position (cm)"
,
{
tof_hits
,
"y"
},
{
gNbins
,
-
400
,
400
}});
task
.
AddH1
({
"TOF hit y-position (cm)"
,
{
tof_hits
,
"y"
},
{
QA
::
gNbins
,
-
400
,
400
}});
task
.
AddH1
({
"TOF hit z-position (cm)"
,
{
tof_hits
,
"z"
},
{
gNbins
,
600
,
800
}});
task
.
AddH1
({
"TOF hit z-position (cm)"
,
{
tof_hits
,
"z"
},
{
QA
::
gNbins
,
600
,
800
}});
task
.
AddH2
({
"TOF hit x-position (cm)"
,
{
tof_hits
,
"x"
},
{
gNbins
,
-
600
,
600
}},
task
.
AddH2
({
"TOF hit x-position (cm)"
,
{
tof_hits
,
"x"
},
{
QA
::
gNbins
,
-
600
,
600
}},
{
"TOF hit y-position (cm)"
,
{
tof_hits
,
"y"
},
{
gNbins
,
-
600
,
600
}});
{
"TOF hit y-position (cm)"
,
{
tof_hits
,
"y"
},
{
QA
::
gNbins
,
-
600
,
600
}});
Variable
qp_sts
(
"qp_reco"
,
{{
rec_tracks
,
"q"
},
{
rec_tracks
,
"p"
}},
Variable
qp_sts
(
"qp_reco"
,
{{
rec_tracks
,
"q"
},
{
rec_tracks
,
"p"
}},
[](
std
::
vector
<
double
>&
qp
)
{
return
qp
.
at
(
0
)
*
qp
.
at
(
1
);
});
[](
std
::
vector
<
double
>&
qp
)
{
return
qp
.
at
(
0
)
*
qp
.
at
(
1
);
});
task
.
AddH2
({
"sign(q)*p, GeV/c"
,
qp_sts
,
{
gNbins
,
-
10
,
10
}},
task
.
AddH2
({
"sign(q)*p, GeV/c"
,
qp_sts
,
{
QA
::
gNbins
,
-
10
,
10
}},
{
"m^{2}, GeV^{2}/c^{2}"
,
{
tof_hits
,
"mass2"
},
{
gNbins
,
-
1
,
2
}});
{
"m^{2}, GeV^{2}/c^{2}"
,
{
tof_hits
,
"mass2"
},
{
QA
::
gNbins
,
-
1
,
2
}});
task
.
AddH2
({
"sign(q)*p STS, GeV/c"
,
qp_sts
,
{
gNbins
,
-
10
,
10
}},
task
.
AddH2
({
"sign(q)*p STS, GeV/c"
,
qp_sts
,
{
QA
::
gNbins
,
-
10
,
10
}},
{
"sign(q)*p TOF, GeV/c"
,
{
tof_hits
,
"qp_tof"
},
{
gNbins
,
-
10
,
10
}});
{
"sign(q)*p TOF, GeV/c"
,
{
tof_hits
,
"qp_tof"
},
{
QA
::
gNbins
,
-
10
,
10
}});
SimpleCut
sc_protons
=
EqualsCut
(
"SimParticles.pid"
,
2212
);
SimpleCut
sc_protons
=
EqualsCut
(
"SimParticles.pid"
,
2212
);
SimpleCut
sc_prim
=
EqualsCut
(
"SimParticles.mother_id"
,
-
1
);
SimpleCut
sc_prim
=
EqualsCut
(
"SimParticles.mother_id"
,
-
1
);
...
@@ -175,36 +177,36 @@ void SimParticlesQA(QA::Task& task) { AddParticleQA(&task, sim_particles); }
...
@@ -175,36 +177,36 @@ void SimParticlesQA(QA::Task& task) { AddParticleQA(&task, sim_particles); }
void
SimEventHeaderQA
(
QA
::
Task
&
task
)
void
SimEventHeaderQA
(
QA
::
Task
&
task
)
{
{
task
.
AddH1
({
"x_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"x_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"y_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"y_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"z_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_z"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"z_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_z"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"b (fm)"
,
{
sim_event_header
,
"b"
},
{
gNbins
,
0
,
20
}});
task
.
AddH1
({
"b (fm)"
,
{
sim_event_header
,
"b"
},
{
QA
::
gNbins
,
0
,
20
}});
task
.
AddH1
({
"#Psi_{RP}"
,
{
sim_event_header
,
"psi_RP"
},
{
gNbins
,
0
,
6
.
5
}});
task
.
AddH1
({
"#Psi_{RP}"
,
{
sim_event_header
,
"psi_RP"
},
{
QA
::
gNbins
,
0
,
6
.
5
}});
task
.
AddH2
({
"x_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"x_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"y_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}});
{
"y_{vertex}^{MC} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}});
}
}
void
RecEventHeaderQA
(
QA
::
Task
&
task
)
void
RecEventHeaderQA
(
QA
::
Task
&
task
)
{
{
task
.
AddH1
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"z_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_z"
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"z_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_z"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
"#chi^{2}_{vertex fit}"
,
{
rec_event_header
,
"vtx_chi2"
},
{
gNbins
,
0
,
5
}});
task
.
AddH1
({
"#chi^{2}_{vertex fit}"
,
{
rec_event_header
,
"vtx_chi2"
},
{
QA
::
gNbins
,
0
,
5
}});
task
.
AddH1
({
"E_{PSD} (GeV)"
,
{
rec_event_header
,
"Epsd"
},
{
gNbins
,
0
,
60
}});
task
.
AddH1
({
"E_{PSD} (GeV)"
,
{
rec_event_header
,
"Epsd"
},
{
QA
::
gNbins
,
0
,
60
}});
task
.
AddH1
({
"M_{tracks}"
,
{
rec_event_header
,
"M"
},
{
800
,
0
,
800
}});
task
.
AddH1
({
"M_{tracks}"
,
{
rec_event_header
,
"M"
},
{
800
,
0
,
800
}});
task
.
AddH1
({
"Event ID"
,
{
rec_event_header
,
"evt_id"
},
{
gNbins
,
0
,
2000
}});
task
.
AddH1
({
"Event ID"
,
{
rec_event_header
,
"evt_id"
},
{
QA
::
gNbins
,
0
,
2000
}});
task
.
AddH2
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}});
{
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH2
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"x_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"x_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
gNbins
,
-
1
,
1
}});
{
"x_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_x"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH2
({
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"y_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"y_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
gNbins
,
-
1
,
1
}});
{
"y_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_y"
},
{
QA
::
gNbins
,
-
1
,
1
}});
task
.
AddH2
({
"z_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_z"
},
{
gNbins
,
-
1
,
1
}},
task
.
AddH2
({
"z_{vertex} (cm)"
,
{
rec_event_header
,
"vtx_z"
},
{
QA
::
gNbins
,
-
1
,
1
}},
{
"z_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_z"
},
{
gNbins
,
-
1
,
1
}});
{
"z_{vertex} (cm)"
,
{
sim_event_header
,
"vtx_z"
},
{
QA
::
gNbins
,
-
1
,
1
}});
}
}
void
EfficiencyMaps
(
QA
::
Task
&
task
)
void
EfficiencyMaps
(
QA
::
Task
&
task
)
...
@@ -227,19 +229,19 @@ void EfficiencyMaps(QA::Task& task)
...
@@ -227,19 +229,19 @@ void EfficiencyMaps(QA::Task& task)
Cuts
*
mc_pions_neg
=
new
Cuts
(
"McPionsNeg"
,
{
EqualsCut
({
sim_particles
+
".pid"
},
-
211
)});
Cuts
*
mc_pions_neg
=
new
Cuts
(
"McPionsNeg"
,
{
EqualsCut
({
sim_particles
+
".pid"
},
-
211
)});
Cuts
*
mc_pions_pos
=
new
Cuts
(
"McPionsPos"
,
{
EqualsCut
({
sim_particles
+
".pid"
},
-
211
)});
Cuts
*
mc_pions_pos
=
new
Cuts
(
"McPionsPos"
,
{
EqualsCut
({
sim_particles
+
".pid"
},
-
211
)});
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
gNbins
,
-
1
,
5
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
gNbins
,
0
,
2
}},
mc_protons
);
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_protons
);
task
.
AddH2
({
"#it{y}_{Lab}"
,
proton_y
,
{
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
gNbins
,
0
,
2
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
proton_y
,
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_protons
);
mc_protons
);
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
gNbins
,
-
1
,
5
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
gNbins
,
0
,
2
}},
mc_pions_neg
);
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_pions_neg
);
task
.
AddH2
({
"#it{y}_{Lab}"
,
pion_y
,
{
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
gNbins
,
0
,
2
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
pion_y
,
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_pions_neg
);
mc_pions_neg
);
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
gNbins
,
-
1
,
5
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
{
sim_particles
,
"rapidity"
},
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
gNbins
,
0
,
2
}},
mc_pions_pos
);
{
"p_{T}, GeV/c"
,
{
sim_particles
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_pions_pos
);
task
.
AddH2
({
"#it{y}_{Lab}"
,
pion_y
,
{
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
gNbins
,
0
,
2
}},
task
.
AddH2
({
"#it{y}_{Lab}"
,
pion_y
,
{
QA
::
gNbins
,
-
1
,
5
}},
{
"p_{T}, GeV/c"
,
{
rec_tracks
,
"pT"
},
{
QA
::
gNbins
,
0
,
2
}},
mc_pions_pos
);
mc_pions_pos
);
}
}
...
@@ -248,22 +250,22 @@ void KFPFTracksQA(QA::Task& task)
...
@@ -248,22 +250,22 @@ void KFPFTracksQA(QA::Task& task)
const
std
::
vector
<
std
::
string
>
field_par_names_
{
"cx0"
,
"cx1"
,
"cx2"
,
"cy1"
,
"cy2"
,
"cz0"
,
"cz1"
,
"cz2"
};
const
std
::
vector
<
std
::
string
>
field_par_names_
{
"cx0"
,
"cx1"
,
"cx2"
,
"cy1"
,
"cy2"
,
"cz0"
,
"cz1"
,
"cz2"
};
const
std
::
vector
<
std
::
string
>
cov_names_
{
"cov1"
,
"cov2"
,
"cov3"
,
"cov4"
,
"cov5"
,
"cov6"
,
"cov7"
,
"cov8"
,
const
std
::
vector
<
std
::
string
>
cov_names_
{
"cov1"
,
"cov2"
,
"cov3"
,
"cov4"
,
"cov5"
,
"cov6"
,
"cov7"
,
"cov8"
,
"cov9"
,
"cov10"
,
"cov11"
,
"cov12"
,
"cov13"
,
"cov14"
,
"cov15"
};
"cov9"
,
"cov10"
,
"cov11"
,
"cov12"
,
"cov13"
,
"cov14"
,
"cov15"
};
// KFPF tracks
task
.
AddH1
({
"x, cm"
,
{
rec_tracks
,
"x"
},
{
gNbins
,
-
10
,
10
}});
task
.
AddH1
({
"x, cm"
,
{
rec_tracks
,
"x"
},
{
QA
::
gNbins
,
-
10
,
10
}});
task
.
AddH1
({
"y, cm"
,
{
rec_tracks
,
"y"
},
{
gNbins
,
-
10
,
10
}});
task
.
AddH1
({
"y, cm"
,
{
rec_tracks
,
"y"
},
{
QA
::
gNbins
,
-
10
,
10
}});
task
.
AddH1
({
"z, cm"
,
{
rec_tracks
,
"z"
},
{
gNbins
,
0
,
40
}});
task
.
AddH1
({
"z, cm"
,
{
rec_tracks
,
"z"
},
{
QA
::
gNbins
,
0
,
40
}});
task
.
AddH1
({
"t_{x}"
,
{
rec_tracks
,
"tx"
},
{
gNbins
,
-
2
,
2
}});
task
.
AddH1
({
"t_{x}"
,
{
rec_tracks
,
"tx"
},
{
QA
::
gNbins
,
-
2
,
2
}});
task
.
AddH1
({
"t_{y}"
,
{
rec_tracks
,
"ty"
},
{
gNbins
,
-
2
,
2
}});
task
.
AddH1
({
"t_{y}"
,
{
rec_tracks
,
"ty"
},
{
QA
::
gNbins
,
-
2
,
2
}});
task
.
AddH1
({
"q*p, GeV/c"
,
{
rec_tracks
,
"qp"
},
{
gNbins
,
-
10
,
10
}});
task
.
AddH1
({
"q*p, GeV/c"
,
{
rec_tracks
,
"qp"
},
{
QA
::
gNbins
,
-
10
,
10
}});
for
(
const
auto
&
field_par_name
:
field_par_names_
)
for
(
const
auto
&
field_par_name
:
field_par_names_
)
task
.
AddH1
({
field_par_name
,
{
rec_tracks
,
field_par_name
},
{
gNbins
,
-
1
,
1
}});
task
.
AddH1
({
field_par_name
,
{
rec_tracks
,
field_par_name
},
{
QA
::
gNbins
,
-
1
,
1
}});
for
(
const
auto
&
cov_name
:
cov_names_
)
for
(
const
auto
&
cov_name
:
cov_names_
)
task
.
AddH1
({
cov_name
,
{
rec_tracks
,
cov_name
},
{
1000
,
-
.
1
,
.
1
}});
task
.
AddH1
({
cov_name
,
{
rec_tracks
,
cov_name
},
{
1000
,
-
.
1
,
.
1
}});
task
.
AddH1
({
"cy0"
,
{
rec_tracks
,
"cy0"
},
{
gNbins
,
-
12
,
-
8
}});
task
.
AddH1
({
"cy0"
,
{
rec_tracks
,
"cy0"
},
{
QA
::
gNbins
,
-
12
,
-
8
}});
task
.
AddH1
({
"z0"
,
{
rec_tracks
,
"z0"
},
{
gNbins
,
0
,
40
}});
task
.
AddH1
({
"z0"
,
{
rec_tracks
,
"z0"
},
{
QA
::
gNbins
,
0
,
40
}});
}
}
int
main
(
int
argc
,
char
**
argv
)
int
main
(
int
argc
,
char
**
argv
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment