Belle II Software  release-05-01-25
testVXDTF2.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
16 
17 
18 from basf2 import *
19 import argparse
20 # Import custom module chain for VXDTF2
21 from setup_modules import setup_VXDTF2
22 
23 
24 # ---------------------------------------------------------------------------------------
25 # Argument parser for input of trained Sector Map.
26 arg_parser = argparse.ArgumentParser(description='VXDTF2 application:\
27  Applies trained SecMap on provided data and returns RecoTrackCands.\n\
28  Usage: basf2 testVXDTF2.py -i <inputFileName> -o <outputFileName> -- --secmap <secmapFile>')
29 
30 arg_parser.add_argument('--secmap', '-s', type=str,
31  help='Inclusion of the root file containing the trained SecMap for the application of the VXDTF2.')
32 
33 arguments = arg_parser.parse_args(sys.argv[1:])
34 secmap_name = arguments.secmap
35 
36 
37 # ---------------------------------------------------------------------------------------
38 # Settings
39 usePXD = False
40 useDisplay = False
41 
42 performFit = False
43 generateTimeSeedAfterFit = False
44 
45 # Logging and Debug Levels
46 set_log_level(LogLevel.ERROR)
47 log_to_file('logVXDTF2Execution.log', append=False)
48 
49 
50 # ---------------------------------------------------------------------------------------
51 path = create_path()
52 
53 # Input
54 rootInput = register_module('RootInput')
55 path.add_module(rootInput)
56 
57 # Event Info Module
58 eventinfoprinter = register_module('EventInfoPrinter')
59 path.add_module(eventinfoprinter)
60 
61 # Gearbox
62 gearbox = register_module('Gearbox')
63 path.add_module(gearbox)
64 
65 # Geometry
66 geometry = register_module('Geometry')
67 geometry.param('components', ['BeamPipe',
68  'MagneticFieldConstant4LimitedRSVD',
69  'PXD',
70  'SVD'])
71 path.add_module(geometry)
72 
73 # Event counter
74 eventCounter = register_module('EventCounter')
75 path.add_module(eventCounter)
76 
77 
78 # VXDTF2: Including actual VXDTF2 Modul Chain
79 setup_VXDTF2(path=path,
80  use_pxd=usePXD,
81  secmap_name=secmap_name,
82  overlap_filter='hopfield',
83  quality_estimator='circleFit')
84 
85 
86 if performFit:
87  # This is required for RecoFitter
88  genFitExtrapolation = register_module('SetupGenfitExtrapolation')
89  path.add_module(genFitExtrapolation)
90 
91  if not generateTimeSeedAfterFit:
92  timeSeed = register_module('IPTrackTimeEstimator')
93  timeSeed.param('useFittedInformation', False)
94  path.add_module(timeSeed)
95 
96  fitter = register_module('DAFRecoFitter')
97  path.add_module(fitter)
98 
99  if generateTimeSeedAfterFit:
100  timeSeedAfterFit = register_module('IPTrackTimeEstimator')
101  timeSeedAfterFit.param('useFittedInformation', True)
102  path.add_module(timeSeedAfterFit)
103 
104 
105 output = register_module('RootOutput')
106 path.add_module(output)
107 
108 
109 if useDisplay:
110  display = register_module('Display')
111  display.param('showAllPrimaries', True)
112  path.add_module(display)
113 
114 
115 process(path)
116 print(statistics)
tracking.validation.run.TrackingValidationRun.create_path
def create_path(self)
Definition: run.py:114