14 import simulation
as sim
15 import reconstruction
as reco
16 import modularAnalysis
as ana
17 import beamparameters
as beam
19 main = basf2.create_path()
21 main.add_module(
"RootInput")
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.])
29 sim.add_simulation(main)
30 reco.add_reconstruction(main, pruneTracks=
False)
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)
36 ana.vertexRaveDaughtersUpdate(
'Z0:mumu', 0.0, path=main, silence_warning=
True)
38 ana.matchMCTruth(
'mu+:qed', main)
39 ana.matchMCTruth(
'Z0:mumu', main)
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)
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'])
51 components=[
'beamparameters'],
52 primaryTwoBodyDecays=[
'Z0:mumu'], tracks=[],
56 main.add_module(
'RootOutput')
57 main.add_module(
"Progress")
59 basf2.print_path(main)
61 print(basf2.statistics)