Belle II Software
release-05-01-25
trainRealisticSegmentPairFilter.py
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
4
import
os
5
import
sys
6
import
os.path
7
8
from
tracking.run.event_generation
import
ReadOrGenerateEventsRun
9
from
trackfindingcdc.run.training
import
TrainingRunMixin
10
11
12
class
RealisticSegmentPairFilterTrainingRun
(TrainingRunMixin,
ReadOrGenerateEventsRun
):
13
"""Run to record segment pairs encountered at the SegmentPairCreator and retrain its mva method"""
14
15
n_events = 10000
16
17
generator_module =
"generic"
18
19
bkg_files = os.path.join(os.environ[
"VO_BELLE2_SW_DIR"
],
"bkg"
)
20
21
22
truth =
"truth_positive"
23
24
@property
25
def
identifier
(self):
26
"""Database identifier of the filter being trained"""
27
return
"trackfindingcdc_RealisticSegmentPairFilter.xml"
28
29
def
create_path
(self):
30
"""Setup the recording path after the simulation"""
31
path = super().
create_path
()
32
33
# In contrast to other training use only the first *half* loop for more aggressive training
34
path.add_module(
"TFCDC_WireHitPreparer"
,
35
flightTimeEstimation=
"outwards"
)
36
37
path.add_module(
'TFCDC_ClusterPreparer'
,
38
SuperClusterDegree=3,
39
SuperClusterExpandOverApogeeGap=
True
)
40
41
path.add_module(
"TFCDC_SegmentFinderFacetAutomaton"
)
42
43
44
if
self.
task
==
"train"
:
45
varSets = [
46
"realistic"
,
47
"filter(truth)"
,
48
"truth"
,
# for weighting
49
]
50
skim =
"feasible"
51
52
elif
self.
task
==
"eval"
:
53
varSets = [
54
"filter(truth)"
,
55
"filter(realistic)"
,
56
"filter(feasible)"
,
57
"filter(fitless)"
,
58
"filter(simple)"
,
59
]
60
skim =
""
61
62
elif
self.
task
==
"explore"
:
63
varSets = [
64
"basic"
,
65
# "realistic",
66
"fitless"
,
67
"pre_fit"
,
68
"fit"
,
69
"truth"
,
# for weighting
70
# "old_fit",
71
# "filter(fitless)",
72
# "filter(simple)",
73
"filter(realistic)"
,
74
"filter(truth)"
,
75
]
76
skim =
"feasible"
77
78
else
:
79
raise
ValueError(
"Unknown task "
+ self.
task
)
80
81
path.add_module(
"TFCDC_TrackFinderSegmentPairAutomaton"
,
82
SegmentPairFilter=
"unionrecording"
,
83
SegmentPairFilterParameters={
84
"rootFileName"
: self.sample_file_name,
85
"varSets"
: varSets,
86
"skim"
: skim,
87
})
88
89
return
path
90
91
92
def
main
():
93
run =
RealisticSegmentPairFilterTrainingRun
()
94
run.configure_and_execute_from_commandline()
95
96
97
if
__name__ ==
"__main__"
:
98
import
logging
99
logging.basicConfig(stream=sys.stdout, level=logging.INFO, format=
'%(levelname)s:%(message)s'
)
100
main
()
trainRealisticSegmentPairFilter.RealisticSegmentPairFilterTrainingRun.task
task
Process each event according to the user's desired task (train, eval, explore)
Definition:
trainRealisticSegmentPairFilter.py:44
trainRealisticSegmentPairFilter.RealisticSegmentPairFilterTrainingRun.identifier
def identifier(self)
Definition:
trainRealisticSegmentPairFilter.py:25
trainRealisticSegmentPairFilter.RealisticSegmentPairFilterTrainingRun.create_path
def create_path(self)
Definition:
trainRealisticSegmentPairFilter.py:29
tracking.run.event_generation.ReadOrGenerateEventsRun
Definition:
event_generation.py:26
main
int main(int argc, char **argv)
Run all tests.
Definition:
test_main.cc:77
trainRealisticSegmentPairFilter.RealisticSegmentPairFilterTrainingRun
Definition:
trainRealisticSegmentPairFilter.py:12
tracking.run.event_generation
Definition:
event_generation.py:1
tracking
trackFindingCDC
train
trainRealisticSegmentPairFilter.py
Generated on Fri Nov 5 2021 04:04:06 for Belle II Software by
1.8.17