Belle II Software  release-05-02-19
svdPerformanceTree.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 from basf2 import *
4 from basf2 import conditions as b2conditions
5 import rawdata as raw
6 import tracking as trk
7 import simulation as sim
8 import glob
9 import modularAnalysis as ma
10 
11 
17 
18 
19 useSimulation = True
20 
21 # set this string to identify the output rootfiles
22 tag = "_test"
23 
24 main = create_path()
25 
26 set_random_seed(1)
27 
28 if useSimulation:
29  # options for simulation:
30  expList = [1003]
31  numEvents = 2000
32  bkgFiles = glob.glob('/sw/belle2/bkg/*.root') # Phase3 background
33  bkgFiles = None # uncomment to remove background
34  simulateJitter = False
35  ROIfinding = False
36  MCTracking = False
37  eventinfosetter = register_module('EventInfoSetter')
38  eventinfosetter.param('expList', expList)
39  eventinfosetter.param('runList', [0])
40  eventinfosetter.param('evtNumList', [numEvents])
41  main.add_module(eventinfosetter)
42  # main.add_module('EventInfoPrinter')
43  main.add_module('EvtGenInput')
44 
45  sim.add_simulation(
46  main,
47  bkgfiles=bkgFiles,
48  forceSetPXDDataReduction=True,
49  usePXDDataReduction=ROIfinding,
50  simulateT0jitter=simulateJitter)
51 else:
52  # setup database
53  b2conditions.reset()
54  b2conditions.override_globaltags()
55  b2conditions.globaltags = ["online"]
56 
57  # input root files
58  main.add_module('RootInput', branchNames=['RawPXDs', 'RawSVDs', 'RawCDCs'])
59  raw.add_unpackers(main, components=['PXD', 'SVD', 'CDC'])
60 
61  # change ZS to 5
62  # for moda in main.modules():
63  # if moda.name() == 'SVDUnpacker':
64  # moda.param("svdShaperDigitListName", "SVDShaperDigitsZS3")
65  # main.add_module("SVDZeroSuppressionEmulator",SNthreshold=5,ShaperDigits="SVDShaperDigitsZS3",ShaperDigitsIN="SVDShaperDigits")
66 
67 # now do reconstruction:
68 trk.add_tracking_reconstruction(
69  main,
70  mcTrackFinding=MCTracking,
71  trackFitHypotheses=[211]) # ,
72 # skipHitPreparerAdding=True)
73 
74 '''
75 # skim mu+mu- events:
76 ma.applyEventCuts("nTracks ==2", path=main)
77 
78 mySelection = 'pt>1.0 and abs(dz)<0.5 and dr<0.4'
79 ma.fillParticleList('mu+:DQM', mySelection, path=main)
80 ma.reconstructDecay('Upsilon(4S):IPDQM -> mu+:DQM mu-:DQM', '10<M<11', path=main)
81 
82 skimfilter = register_module('SkimFilter')
83 skimfilter.set_name('SkimFilter_MUMU')
84 skimfilter.param('particleLists', ['Upsilon(4S):IPDQM'])
85 main.add_module(skimfilter)
86 filter_path = create_path()
87 skimfilter.if_value('=1', filter_path, AfterConditionPath.CONTINUE)
88 '''
89 
90 # fill TTrees
91 main.add_module('SVDPerformanceTTree', outputFileName="SVDPerformanceTree"+str(tag)+".root")
92 
93 # write everything
94 main.add_module('OverlapResiduals', ExpertLevel=True)
95 
96 # main.add_module('RootOutput')
97 main.add_module('Progress')
98 
99 print_path(main)
100 
101 process(main)
102 
103 print(statistics)