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