Belle II Software  release-05-01-25
evaluateVXDTF2.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 from setup_modules import setup_Geometry
23 from tracking.harvesting_validation.combined_module import CombinedTrackingValidationModule
24 
25 # ---------------------------------------------------------------------------------------
26 # Argument parser for input of trained Sector Map.
27 arg_parser = argparse.ArgumentParser(description='VXDTF2 evaluation:\
28  Applies VXDTF2 to selected dataset \n\
29  Usage: basf2 testVXDTF2.py -i <inputFileName> -- --secmap <secmapFile>')
30 
31 arg_parser.add_argument('--secmap', '-s', type=str,
32  help='Inclusion of the root file containing the trained SecMap for the application of the VXDTF2.')
33 
34 arguments = arg_parser.parse_args(sys.argv[1:])
35 sec_map_file = arguments.secmap
36 
37 
38 # ---------------------------------------------------------------------------------------
39 # Settings
40 usePXD = False
41 
42 # these are the "default" settings
43 setup_name = 'SVDOnlyDefault'
44 if usePXD:
45  setup_name = 'SVDPXDDefault'
46 
47 performFit = True
48 
49 # Logging and Debug Levels
50 set_log_level(LogLevel.ERROR)
51 log_to_file('logVXDTF2Evaluation.log', append=False)
52 
53 
54 # ---------------------------------------------------------------------------------------
55 path = create_path()
56 
57 # Input
58 rootInput = register_module('RootInput')
59 path.add_module(rootInput)
60 
61 # Event Info Module
62 eventinfoprinter = register_module('EventInfoPrinter')
63 path.add_module(eventinfoprinter)
64 
65 # puts gearbox and geometry into the path
66 setup_Geometry(path)
67 
68 # Event counter
69 eventCounter = register_module('EventCounter')
70 path.add_module(eventCounter)
71 
72 # VXDTF2: Including actual VXDTF2 Modul Chain
73 setup_VXDTF2(path=path,
74  use_pxd=usePXD,
75  sec_map_file=sec_map_file,
76  setup_name=setup_name,
77  overlap_filter='hopfield',
78  quality_estimator='circleFit')
79 
80 if performFit:
81  genFitExtrapolation = register_module('SetupGenfitExtrapolation')
82  path.add_module(genFitExtrapolation)
83 
84  fitter = register_module('DAFRecoFitter')
85  path.add_module(fitter)
86  path.add_module('TrackCreator', pdgCodes=[211, 13, 321, 2212])
87 
88 # Matching
89 mcTrackMatcherModule = register_module('MCRecoTracksMatcher')
90 mcTrackMatcherModule.param({
91  'UseCDCHits': False,
92  'UseSVDHits': True,
93  'UsePXDHits': usePXD,
94  'mcRecoTracksStoreArrayName': 'MCRecoTracks',
95  'MinimalPurity': .66,
96 })
97 path.add_module(mcTrackMatcherModule)
98 
99 # Evaluation of matching
100 trackingValidationModule = CombinedTrackingValidationModule(
101  "",
102  contact="",
103  output_file_name="VXDTF2Validation.root",
104  expert_level=2)
105 path.add_module(trackingValidationModule)
106 
107 process(path)
108 print(statistics)
tracking.harvesting_validation.combined_module
Definition: combined_module.py:1
tracking.validation.run.TrackingValidationRun.create_path
def create_path(self)
Definition: run.py:114