Belle II Software prerelease-11-00-00a
SVDVariablesToStorage.py
1#!/usr/bin/env python3
2
3
10
11
16
17import basf2 as b2
18import tracking as trk
19import simulation as sim
20import svd
21import glob
22import modularAnalysis as ma
23import rawdata as raw
24from basf2 import conditions as b2conditions
25
26
27def addSVDVariablesToStorageModule(path, storageType):
28
29 if (storageType == "ntuple"):
30 path.add_module(
31 'SVDVariablesToStorage',
32 outputFileName="SVDVariables_ntuple.root",
33 containerName="SVDClusters",
34 particleListName="pi+:all",
35 variablesToNtuple=[
36 "SVDClusterCharge",
37 "SVDClusterChargeNormTrkLength",
38 "SVDClusterSNR",
39 "SVDClusterSize",
40 "SVDClusterTime",
41 "SVDClusterTimeMinusEventT0",
42 "SVDTrackPrime",
43 "SVDResidual",
44 "SVDLayer",
45 "SVDLadder",
46 "SVDSensor",
47 "SVDSide"]).set_log_level(
48 b2.LogLevel.INFO)
49 elif (storageType == "histogram"):
50 path.add_module('SVDVariablesToStorage',
51 outputFileName="SVDVariables_histogram.root",
52 containerName="SVDClusters",
53 particleListName="pi+:all",
54 variablesToHistogram=[("SVDClusterCharge", 100, 0, 100e3),
55 ("SVDClusterSNR", 50, 0, 50),
56 ("SVDClusterSize", 10, 0, 10),
57 ("SVDClusterTime", 100, -100, 100),
58 ("SVDTrackPrime", 25, -1, 1),
59 ("SVDResidual", 100, -1e5, 1e5),
60 ("SVDLayer", 4, 3, 7),
61 ("SVDLadder", 16, 1, 17),
62 ("SVDSensor", 5, 1, 6),
63 ("SVDSide", 2, 0, 2)]
64 ).set_log_level(b2.LogLevel.INFO)
65
66
67if __name__ == '__main__':
68
69 useSimulation = True
70
71 b2.set_log_level(b2.LogLevel.ERROR)
72 main = b2.create_path()
73 b2.set_random_seed(1)
74
75 if useSimulation:
76 # options for simulation:
77 expList = [1003]
78 numEvents = 2000
79 bkgFiles = glob.glob('/sw/belle2/bkg/*.root') # Phase3 background
80 bkgFiles = None # uncomment to remove background
81 simulateJitter = False
82 ROIfinding = False
83 MCTracking = False
84 eventinfosetter = b2.register_module('EventInfoSetter')
85 eventinfosetter.param('expList', expList)
86 eventinfosetter.param('runList', [0])
87 eventinfosetter.param('evtNumList', [numEvents])
88 main.add_module(eventinfosetter)
89 # main.add_module('EventInfoPrinter')
90 main.add_module('EvtGenInput')
91
92 sim.add_simulation(
93 main,
94 bkgfiles=bkgFiles,
95 forceSetPXDDataReduction=True,
96 usePXDDataReduction=ROIfinding,
97 simulateT0jitter=simulateJitter)
98 else:
99 MCTracking = False
100
101 # setup database - if needed
102 b2conditions.reset()
103 b2conditions.override_globaltags()
104 b2conditions.globaltags = ["online"]
105
106 # input root files
107 main.add_module('RootInput', branchNames=['RawPXDs', 'RawSVDs', 'RawCDCs'])
108 raw.add_unpackers(main, components=['PXD', 'SVD', 'CDC'])
109
110 # now do reconstruction:
111 trk.add_tracking_reconstruction(
112 main,
113 mcTrackFinding=MCTracking,
114 trackFitHypotheses=[211],
115 append_full_grid_cdc_eventt0=True,
116 skip_full_grid_cdc_eventt0_if_svd_time_present=False)
117
118 # Reconstruct strips
120
121 # Fill particle lists
122 ma.fillParticleLists(decayStringsWithCuts=[("pi+:all", "")], path=main)
123
124 # Add SVDVariablesToStorageModule
125 addSVDVariablesToStorageModule(main, "ntuple")
126 # addSVDVariablesToStorageModule(main, "histogram")
127
128 main.add_module('RootOutput', branchNames=[
129 'EventExtraInfo',
130 'EventMetaData',
131 'Particles',
132 'ParticlesToTrackFitResults',
133 'RecoHitInformations',
134 'RecoHitInformationsToSVDClusters',
135 'RecoTracks',
136 'SVDClusters',
137 'SVDClustersToRecoTracks',
138 'SVDClustersToSVDTrueHits',
139 'SVDRecoTracks',
140 'SVDSimHits',
141 'SVDTrueHits',
142 'TrackFitResults',
143 'Tracks',
144 'TracksToRecoTracks',
145 ])
146
147 # Summary
148 main.add_module('Progress')
149 b2.print_path(main)
150 b2.process(main)
add_svd_create_recodigits(path, recocreatorName="SVDRecoDigitCreator", shaperDigitsName="")
Definition __init__.py:118