Belle II Software  release-05-01-25
testSensorInfo.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 import os
5 import basf2
6 from basf2 import *
7 from ROOT import Belle2
8 import math as m
9 import ROOT as r
10 import os.path
11 import sys
12 
13 
22 
23 
24 class printVelocity(basf2.Module):
25 
26  def beginRun(self):
27 
29 
30  layer = 3
31  ladder = 1
32  sensor = 1
33  vxdID = Belle2.VxdID(layer, ladder, sensor)
34  sensorInfo = geoCache.getSensorInfo(vxdID)
35  print('printing velocity VS thickness for' + str(layer) + '.' + str(ladder) + '.' + str(sensor))
36  thickness = sensorInfo.getThickness()
37  N = 10
38  step = thickness / N
39  for s in range(0, N + 1):
40  print()
41  z = - thickness / 2 + step * s
42  print('Z = ' + str(z * 1e4) + ' um')
43  print(' electrons')
44  sensorInfo.getVelocity(-1, r.TVector3(0, 0, z)).Print()
45  print(' holes')
46  sensorInfo.getVelocity(+1, r.TVector3(0, 0, z)).Print()
47 
48 
49 class printMobility(basf2.Module):
50 
51  def beginRun(self):
52 
54 
55  layer = 3
56  ladder = 1
57  sensor = 1
58  vxdID = Belle2.VxdID(layer, ladder, sensor)
59  sensorInfo = geoCache.getSensorInfo(vxdID)
60  print('printing mobility VS thickness for' + str(layer) + '.' + str(ladder) + '.' + str(sensor))
61  thickness = sensorInfo.getThickness()
62  N = 10
63  step = thickness / N
64  for s in range(0, N + 1):
65  print()
66  z = - thickness / 2 + step * s
67  print('Z = ' + str(z * 1e4) + ' um')
68  print(' E-field')
69  sensorInfo.getEField(r.TVector3(0, 0, z)).Print()
70  print(' B-field')
71  sensorInfo.getBField(r.TVector3(0, 0, z)).Print()
72  print('electorn hall factor = ' + str(sensorInfo.getHallFactor(-1)))
73  print(' electron mobility = ' + str(sensorInfo.getElectronMobility(sensorInfo.getEField(r.TVector3(0, 0, z)).Mag())))
74  print(' hole mobility = ' + str(sensorInfo.getHoleMobility(sensorInfo.getEField(r.TVector3(0, 0, z)).Mag())))
75  print('hole hall factor = ' + str(sensorInfo.getHallFactor(+1)))
76 
77  print('TEMPERATURE = ' + str(sensorInfo.getTemperature))
78 
79 # add your database here
80 # use_database_chain()
81 # use_central_database("release-02-00-00")
82 # use_central_database("release-02-01-00")
83 # use_central_database("master_2018-12-24")
84 # use_central_database("release-03-00-02")
85 # use_local_database('data_reprocessing_prompt')
86 # Create paths
87 
88 
89 main = create_path()
90 
91 eventinfosetter = register_module('EventInfoSetter')
92 eventinfosetter.param('expList', [1003])
93 eventinfosetter.param('runList', [0])
94 eventinfosetter.param('evtNumList', [1])
95 main.add_module(eventinfosetter)
96 
97 main.add_module("Gearbox")
98 main.add_module('Geometry', useDB=True)
99 
100 main.add_module(printVelocity())
101 main.add_module(printMobility())
102 
103 print_path(main)
104 
105 # Process events
106 process(main)
107 
108 print(statistics)
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::VXD::GeoCache::getInstance
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:215
testSensorInfo.printVelocity
test SVD SensorInfo getters
Definition: testSensorInfo.py:24
testSensorInfo.printMobility
Definition: testSensorInfo.py:49