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 
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"""
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