Belle II Software  release-06-02-00
displaydata.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 # This example demonstrates showing user-defined things using DisplayData
13 
14 import basf2 as b2
15 
16 from ROOT import Belle2
17 from ROOT import TVector3
18 import ROOT
19 
20 
21 class DisplayDataTest(b2.Module):
22  """Test DisplayData"""
23 
24  def initialize(self):
25  """reimplementation of Module::initialize()."""
26 
27  Belle2.PyStoreObj("DisplayData").registerInDataStore()
28 
29  def event(self):
30  """reimplementation of Module::event()."""
31 
32  displayData = Belle2.PyStoreObj("DisplayData")
33  displayData.create()
34 
35  # you can put a label at arbitrary points
36  displayData.obj().addLabel("Origin", TVector3(0, 0, 0))
37 
38  # or simple points (grouped into sets)
39  for i in range(10):
40  displayData.obj().addPoint("set 1", TVector3(15, 15, 10 * i))
41  for i in range(10):
42  displayData.obj().addPoint("set 2", TVector3(10 * i, 0, 50))
43 
44  # you can add arrows
45  pos = TVector3(0, 0, 100)
46  displayData.obj().addArrow("x", pos, pos + TVector3(50, 0, 0))
47  displayData.obj().addArrow("y", pos, pos + TVector3(0, 50, 0))
48  displayData.obj().addArrow("z", pos, pos + TVector3(0, 0, 50))
49 
50  displayData.obj().addArrow("z=-2m", TVector3(100, 100, -200), TVector3(0, 0, -200), ROOT.kGray)
51 
52  # highlight the first MCParticle
53  mcparticles = Belle2.PyStoreArray('MCParticles')
54  part = mcparticles[0]
55  if part is not None:
56  displayData.obj().select(part)
57 
58 
59 # register necessary modules
60 eventinfosetter = b2.register_module('EventInfoSetter')
61 eventinfosetter.param('evtNumList', [500])
62 
63 
64 # create geometry
65 gearbox = b2.register_module('Gearbox')
66 geometry = b2.register_module('Geometry')
67 geometry.param('components', ['CDC', 'MagneticField'])
68 
69 particlegun = b2.register_module('ParticleGun')
70 particlegun.param('nTracks', 4)
71 
72 
73 # simulation
74 g4sim = b2.register_module('FullSim')
75 # make the simulation less noisy
76 g4sim.logging.log_level = b2.LogLevel.ERROR
77 
78 # create paths
79 main = b2.create_path()
80 
81 # add modules to paths
82 main.add_module(eventinfosetter)
83 
84 main.add_module(gearbox)
85 main.add_module(geometry)
86 main.add_module(particlegun)
87 # main.add_module(g4sim)
88 
89 main.add_module(DisplayDataTest())
90 
91 # default parameters
92 display = b2.register_module('Display')
93 display.param('showAllPrimaries', True)
94 main.add_module(display)
95 
96 b2.process(main)
97 print(b2.statistics)
a (simplified) python wrapper for StoreArray.
Definition: PyStoreArray.h:56
a (simplified) python wrapper for StoreObjPtr.
Definition: PyStoreObj.h:67