Belle II Software development
trackFitWithGBL.py
1#!/usr/bin/env python3
2
3
10
11
22
23import basf2 as b2
24import simulation
25import reconstruction
26
27import modularAnalysis as ana
28
29import ROOT
30
31b2.set_random_seed(42)
32
33
34ROOT.gROOT.SetBatch(0)
35
36main = b2.create_path()
37
38
39# main.add_module("RootInput")
40
41
42main.add_module('EventInfoSetter')
43# main.add_module('EvtGenInput')
44main.add_module('HistoManager', histoFileName='CollectorOutput.root')
45main.add_module('Gearbox')
46main.add_module('Geometry')
47main.add_module('ParticleGun', momentumParams=[5.5, 5.50000000001], nTracks=1, pdgCodes=[
48 13]) # thetaParams=[90., 90.0000000000001], phiParams=[0., 0.00000001]
50reconstruction.add_reconstruction(main, pruneTracks=False, add_muid_hits=False, components=["PXD", "SVD", "CDC"])
51
52
53new_main = b2.create_path()
54
55for mod in main.modules():
56 if mod.type() == "DAFRecoFitter":
57 gbl_mod = b2.register_module("GBLRecoFitter2")
58 gbl_mod.param("resolveAmbiguities", 1)
59 gbl_mod.param("externalIterations", 2)
60 gbl_mod.param("gblInternalIterations", "hh")
61 gbl_mod.set_name(str(mod.name()).replace("DAFRecoFitter", "GBLRecoFitter2"))
62 for par in mod.available_params():
63 if par.setInSteering and par.name not in ["trackFitType"]:
64 gbl_mod.param(par.name, par.values)
65 print("Replacing DAFRecoFitter with name:", mod.name(), "with GBLRecoFitter using name:", gbl_mod.name())
66 new_main.add_module(gbl_mod)
67 else:
68 new_main.add_module(mod)
69
70main = new_main
71
72
73new_main = b2.create_path()
74
75for mod in main.modules():
76
77 if mod.name() == "Combined_DAFRecoFitter":
78 new_main.add_module("GBLRecoFitter2", resolveAmbiguities=1, externalIterations=2, gblInternalIterations="hh,hh")
79 else:
80 new_main.add_module(mod)
81
82main = new_main
83
84
85# main.add_module('GBLRecoFitter2')
86"""
87main.add_module(
88 'MillepedeCollector',
89 components=[],
90 tracks=['RecoTracks'])
91"""
92
93# main.add_module('Display', showRecoTracks=True)
94
95
96ana.fillParticleList("pi+:allCharged", "", path=main)
97
98track_variables = [
99 'chiProb',
100 'd0',
101 'z0',
102 'phi0',
103 'omega',
104 'tanLambda',
105 'pt',
106 'pionID',
107 'protonID',
108 'electronID',
109 'muonID',
110 'deuteronID',
111 'nVXDHits',
112 'nPXDHits',
113 'nSVDHits',
114 'nCDCHits',
115 'nTracks',
116 'x',
117 'y',
118 'z']
119
120
121ana.fillParticleList(
122 'pi+:goodPval',
123 'chiProb>0.5',
124 path=main)
125# main.add_module('SkimFilter', particleLists=['pi+:goodPval']).if_false(b2.create_path())
126
127ana.variablesToNtuple("pi+:allCharged",
128 variables=track_variables,
129 filename='ntuples.root', path=main)
130
131main.add_module('AlignDQM')
132main.add_module('TrackDQM')
133
134
135main.add_module("Progress", maxN=0)
136b2.print_path(main)
137b2.process(main)
138print(b2.statistics)
add_reconstruction(path, components=None, pruneTracks=True, add_trigger_calculation=True, skipGeometryAdding=False, trackFitHypotheses=None, addClusterExpertModules=True, with_cdc_cellular_automaton=False, use_second_cdc_hits=False, svd_standalone_mode="VXDTF2", add_muid_hits=False, reconstruct_cdst=None, use_random_numbers_for_hlt_prescale=True, pxd_filtering_offline=False, create_intercepts_for_pxd_ckf=False, append_full_grid_cdc_eventt0=True, legacy_ecl_charged_pid=False, emulate_HLT=False, skip_full_grid_cdc_eventt0_if_svd_time_present=True, switch_off_slow_modules_for_online=False, use_cat_finder=False)
add_simulation(path, components=None, bkgfiles=None, bkgOverlay=True, forceSetPXDDataReduction=False, usePXDDataReduction=True, cleanupPXDDataReduction=True, generate_2nd_cdc_hits=False, simulateT0jitter=True, isCosmics=False, FilterEvents=False, usePXDGatedMode=False, skipExperimentCheckForBG=False, ignoreRunNumberForBG=False, save_slow_pions_in_mc=False, save_all_charged_particles_in_mc=False)