10 from ROOT
import Belle2
12 from ROOT
import gROOT, AddressOf
15 gROOT.ProcessLine(
'struct EventData {\
25 float truehit_charge;\
30 float cluster_uError;\
31 float cluster_vError;\
33 float cluster_charge;\
43 from ROOT
import EventData
49 A simple module to check the reconstruction of PXDTrueHits.
50 This module writes its output to a ROOT tree.
54 """Initialize the module"""
56 super(PXDHitErrorsTTree, self).
__init__()
58 self.
file = ROOT.TFile(
'PXDHitErrorOutput.root',
'recreate')
60 self.
tree = ROOT.TTree(
'tree',
'Event data of PXD simulation')
64 for key
in EventData.__dict__:
67 if isinstance(self.
data.__getattribute__(key), int):
69 self.
tree.Branch(key, AddressOf(self.
data, key), key + formstring)
75 """Find clusters with a truehit and print some stats."""
81 for cluster
in clusters:
82 cluster_truehits = cluster.getRelationsTo(
'PXDTrueHits')
85 if len(cluster_truehits) != 1:
88 for truehit
in cluster_truehits:
91 vxd_id = truehit.getSensorID()
92 self.data.vxd_id = vxd_id.getID()
93 self.data.layer = vxd_id.getLayerNumber()
94 self.data.ladder = vxd_id.getLadderNumber()
95 self.data.sensor = vxd_id.getSensorNumber()
96 self.data.truehit_index = truehit.getArrayIndex()
97 self.data.cluster_index = cluster.getArrayIndex()
101 thickness = sensor_info.getThickness()
104 self.data.truehit_u = truehit.getU()
105 self.data.truehit_v = truehit.getV()
106 self.data.truehit_time = truehit.getGlobalTime()
107 self.data.truehit_charge = truehit.getEnergyDep()
108 self.data.theta_u = math.atan2(truehit.getExitU() - truehit.getEntryU(), thickness)
109 self.data.theta_v = math.atan2(truehit.getExitV() - truehit.getEntryV(), thickness)
111 self.data.cluster_u = cluster.getU()
112 self.data.cluster_v = cluster.getV()
113 self.data.cluster_uError = cluster.getUSigma()
114 self.data.cluster_vError = cluster.getVSigma()
115 self.data.cluster_rho = cluster.getRho()
116 self.data.cluster_charge = cluster.getCharge()
117 self.data.cluster_seed = cluster.getSeedCharge()
118 self.data.cluster_size = cluster.getSize()
119 self.data.cluster_uSize = cluster.getUSize()
120 self.data.cluster_vSize = cluster.getVSize()
121 self.data.cluster_uPull = (cluster.getU() - truehit.getU()) / cluster.getUSigma()
122 self.data.cluster_vPull = (cluster.getV() - truehit.getV()) / cluster.getVSigma()
127 """ Close the output file."""