Belle II Software  release-06-01-15
collectKinematicConstrainedMuMu.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 import basf2
13 
14 import simulation as sim
15 import reconstruction as reco
16 import modularAnalysis as ana
17 import beamparameters as beam
18 
19 main = basf2.create_path()
20 
21 main.add_module("RootInput")
22 # main.add_module("EventInfoSetter")
23 main.add_module("Gearbox")
24 main.add_module("Geometry")
25 main.add_module("HistoManager", histoFileName="CollectorOutput.root")
26 beam.add_beamparameters(main, 'Y4S', 10.5796, vertex=[0., 0., 0.])
27 
28 # main.add_module('PairGen', pdgCode=13)
29 sim.add_simulation(main)
30 reco.add_reconstruction(main, pruneTracks=False)
31 
32 # Pre-fit with beam+vertex constraint decays for alignment
33 ana.fillParticleList('mu+:qed', 'muonID > 0.1 and useCMSFrame(p) > 2.', writeOut=True, path=main)
34 ana.reconstructDecay('Z0:mumu -> mu-:qed mu+:qed', 'InvM > 10.5296 and InvM < 10.6296', writeOut=True, path=main)
35 
36 ana.vertexRaveDaughtersUpdate('Z0:mumu', 0.0, path=main, silence_warning=True)
37 
38 ana.matchMCTruth('mu+:qed', main)
39 ana.matchMCTruth('Z0:mumu', main)
40 
41 ana.printVariableValues('Z0:mumu', ['E', 'deltaE', 'M', 'InvM', 'mcPDG', 'p', 'Ecms'], path=main)
42 ana.printVariableValues('mu+:qed', ['E', 'deltaE', 'M', 'mcPDG', 'p', 'muonID'], path=main)
43 
44 main.add_module('VariablesToEventBasedTree',
45  particleList='Z0:mumu',
46  variables=['InvM', 'Ecms',
47  'daughter(0, p)', 'daughter(1, p)'],
48  event_variables=['nTracks', 'expNum', 'runNum', 'evtNum'])
49 main.add_module(
50  'MillepedeCollector',
51  components=['beamparameters'],
52  primaryTwoBodyDecays=['Z0:mumu'], tracks=[],
53  calibrateVertex=True,
54  useGblTree=False)
55 
56 main.add_module('RootOutput')
57 main.add_module("Progress")
58 
59 basf2.print_path(main)
60 basf2.process(main)
61 print(basf2.statistics)