Belle II Software
release-05-01-25
trainFacetRelationFilter.py
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
4
# This is for training a mva classifier for relations between hit triplets
5
# It performs a tip better than the current default chi2 filter
6
# However run time is quite a bit slower which is why it wont be used in the standard chain.
7
# Nevertheless this script can be used to generate variables to consider
8
# for improvements or cross checks with --task explore
9
10
import
os
11
import
sys
12
import
os.path
13
14
from
tracking.run.event_generation
import
StandardEventGenerationRun
15
from
trackfindingcdc.run.training
import
TrainingRunMixin
16
17
18
class
FacetRelationFilterTrainingRun
(TrainingRunMixin,
StandardEventGenerationRun
):
19
"""Run for recording facets encountered at the filter"""
20
21
n_events = 1000
22
23
24
generator_module =
"generic"
25
# detector_setup = "TrackingDetector"
26
27
28
task =
"explore"
29
30
31
truth =
"truth_positive"
32
33
@property
34
def
identifier
(self):
35
"""Database identifier of the filter being trained"""
36
return
"trackfindingcdc_FacetRelationFilter.xml"
37
38
def
create_path
(self):
39
"""Setup the recording path after the simulation"""
40
path = super().
create_path
()
41
42
43
if
self.
task
==
"train"
:
44
var_sets = [
45
"mva"
,
46
"filter(truth)"
,
47
]
48
49
elif
self.
task
==
"eval"
:
50
var_sets = [
51
"basic"
,
52
"filter(chi2)"
,
53
"filter(chi2_old)"
,
54
"filter(simple)"
,
55
"filter(truth)"
,
56
]
57
58
self.
variables
= [
59
"chi2_weight"
,
60
"chi2_accept"
,
61
"chi2_old_weight"
,
62
"chi2_old_accept"
,
63
"simple_accept"
,
64
]
65
66
self.
groupby
= [
""
,
"superlayer_id"
]
67
self.
auxiliaries
= [
68
"superlayer_id"
,
69
]
70
71
elif
self.
task
==
"explore"
:
72
var_sets = [
73
"basic"
,
74
"bend"
,
75
"fit"
,
76
"filter(chi2)"
,
77
"filter(simple)"
,
78
"filter(truth)"
,
79
]
80
81
83
self.
variables
= [
84
# "delta_phi",
85
# "delta_phi_pull",
86
# "delta_phi_pull_per_r",
87
# "delta_curv",
88
# "delta_curv_pull",
89
# "delta_curv_pull_per_r",
90
91
# "cos_delta",
92
# "from_middle_cos_delta",
93
# "to_middle_cos_delta",
94
95
"chi2_0"
,
96
# "chi2_0_per_s",
97
# "erf_0",
98
# "fit_0_phi0",
99
# "fit_0_cos_delta",
100
101
# "chi2_1",
102
# "chi2_1_per_s",
103
# "fit_1_phi0",
104
# "fit_1_cos_delta",
105
106
# "chi2",
107
# "chi2_per_s",
108
# "fit_phi0",
109
# "fit_cos_delta",
110
111
# "phi0_from_sigma",
112
# "phi0_to_sigma",
113
114
# "phi0_ref_pull",
115
# "phi0_ref_diff",
116
# "phi0_ref_sigma",
117
118
# "chi2_comb",
119
# "phi0_comb_pull",
120
# "phi0_comb_diff",
121
# "phi0_comb_sigma",
122
123
# "chi2_kari_unit",
124
# "abs_curv_unit",
125
126
# "chi2_kari_l",
127
# "abs_curv_l",
128
129
# "chi2_kari_pseudo",
130
# "abs_curv_pseudo",
131
132
# "chi2_kari_proper",
133
# "abs_curv_proper",
134
]
135
136
137
self.
groupby
= [
""
,
"superlayer_id"
]
138
139
self.
auxiliaries
= [
140
"superlayer_id"
,
141
]
142
143
path.add_module(
"TFCDC_WireHitPreparer"
,
144
flightTimeEstimation=
"outwards"
,
145
UseNLoops=1.0)
146
147
path.add_module(
"TFCDC_ClusterPreparer"
)
148
149
path.add_module(
"TFCDC_SegmentFinderFacetAutomaton"
,
150
FacetRelationFilter=
"unionrecording"
,
151
FacetRelationFilterParameters={
152
"rootFileName"
: self.sample_file_name,
153
"varSets"
: var_sets,
154
})
155
156
return
path
157
158
159
def
main
():
160
"""Execute the facet relation recording"""
161
run =
FacetRelationFilterTrainingRun
()
162
run.configure_and_execute_from_commandline()
163
164
165
if
__name__ ==
"__main__"
:
166
import
logging
167
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format=
'%(levelname)s:%(message)s'
)
168
main
()
trainFacetRelationFilter.FacetRelationFilterTrainingRun
Definition:
trainFacetRelationFilter.py:18
tracking.run.event_generation.StandardEventGenerationRun
Definition:
event_generation.py:188
main
int main(int argc, char **argv)
Run all tests.
Definition:
test_main.cc:77
trainFacetRelationFilter.FacetRelationFilterTrainingRun.variables
variables
Signal some variables to select in the classification analysis self.variables = None #all variables.
Definition:
trainFacetRelationFilter.py:58
trainFacetRelationFilter.FacetRelationFilterTrainingRun.groupby
groupby
group output by superlayer_id
Definition:
trainFacetRelationFilter.py:66
trainFacetRelationFilter.FacetRelationFilterTrainingRun.create_path
def create_path(self)
Definition:
trainFacetRelationFilter.py:38
trainFacetRelationFilter.FacetRelationFilterTrainingRun.auxiliaries
auxiliaries
auxiliary histograms
Definition:
trainFacetRelationFilter.py:67
tracking.run.event_generation
Definition:
event_generation.py:1
trainFacetRelationFilter.FacetRelationFilterTrainingRun.task
string task
Default task set to explore.
Definition:
trainFacetRelationFilter.py:28
trainFacetRelationFilter.FacetRelationFilterTrainingRun.identifier
def identifier(self)
Definition:
trainFacetRelationFilter.py:34
tracking
trackFindingCDC
train
trainFacetRelationFilter.py
Generated on Fri Nov 5 2021 04:04:05 for Belle II Software by
1.8.17