6 <contact> SVD Software Group, svd-software@belle2.org </contact>
8 This module is used for the SVD validation.
9 It gets information about truehits, saving in a ttree in a ROOT file.
17 from ROOT
import Belle2
18 from ROOT
import gROOT, AddressOf
21 gROOT.ProcessLine(
'struct EventDataTrueHit {\
30 from ROOT
import EventDataTrueHit
34 '''class to create the true hit ttree'''
37 """Initialize the module"""
39 super(SVDValidationTTreeTrueHit, self).
__init__()
40 self.
file = ROOT.TFile(
'../SVDValidationTTreeTrueHit.root',
'recreate')
41 '''Output ROOT file'''
42 self.
tree = ROOT.TTree(
'tree',
'Event data of SVD validation events')
43 '''TTrees for output data'''
44 self.
data = EventDataTrueHit()
45 '''Instance of the EventDataTrueHit class'''
48 for key
in EventDataTrueHit.__dict__:
51 if isinstance(self.
data.__getattribute__(key), int):
53 self.
tree.Branch(key, AddressOf(self.
data, key), key + formstring)
56 """ Start with truehits and use the relation to get the corresponding clusters """
58 for truehit
in svdtruehits:
59 clusters = truehit.getRelationsFrom(
'SVDClusters')
60 if len(clusters) == 0:
62 sensorID = truehit.getSensorID()
63 self.
data.sensor_id = int(sensorID)
64 sensorNum = sensorID.getSensorNumber()
65 self.
data.sensor = sensorNum
66 layerNum = sensorID.getLayerNumber()
67 self.
data.layer = layerNum
75 self.
data.sensor_type = sensorType
76 ladderNum = sensorID.getLadderNumber()
77 self.
data.ladder = ladderNum
78 self.
data.strip_dir = -1
83 for cluster
in clusters:
85 sensorID = truehit.getSensorID()
86 self.
data.sensor_id = int(sensorID)
87 sensorNum = sensorID.getSensorNumber()
88 self.
data.sensor = sensorNum
89 layerNum = sensorID.getLayerNumber()
90 self.
data.layer = layerNum
98 self.
data.sensor_type = sensorType
99 ladderNum = sensorID.getLadderNumber()
100 self.
data.ladder = ladderNum
101 if cluster.isUCluster():
102 self.
data.strip_dir = 0
104 self.
data.strip_dir = 1
110 """Close the output file. """