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