Belle II Software development
SVDClustersQuickCheck Class Reference
Inheritance diagram for SVDClustersQuickCheck:

Public Member Functions

 initialize (self)
 
 event (self)
 
 terminate (self)
 

Public Attributes

list test = []
 list of test histograms
 
list testNew = []
 another list of test histograms
 

Detailed Description

 quick check of cluster reconstruction

Definition at line 30 of file testNewReco.py.

Member Function Documentation

◆ event()

event ( self)
 look at cluster and new clusters

Definition at line 97 of file testNewReco.py.

97 def event(self):
98 ''' look at cluster and new clusters'''
99
100 clusterList = Belle2.PyStoreArray("SVDClusters")
101 clusterListNew = Belle2.PyStoreArray("SVDNewClusters")
102 print("number of clusters = " + str(clusterList.getEntries()) + " (old) VS " + str(clusterListNew.getEntries()) + " (new)")
103
104 for d in clusterList:
105 trueList = d.getRelationsTo('SVDTrueHits') # SVDClustersToSVDTrueHits
106 isU = 0
107 if (d.isUCluster()):
108 isU = 0.5
109 truePos = trueList[0].getU()
110 else:
111 truePos = trueList[0].getV()
112
113 self.size.Fill(d.getSize())
114 self.time.Fill(d.getClsTime())
115 self.ff.Fill(d.getFirstFrame())
116 self.charge.Fill(d.getCharge() / 1000)
117 self.SNR.Fill(d.getSNR())
118 self.position.Fill(d.getPosition())
119 self.positionSigma.Fill(d.getPositionSigma() * 1e4)
120 if d.getSize() == 1:
121 self.positionS1.Fill(d.getPosition())
122 self.positionS1Sigma.Fill(d.getPositionSigma() * 1e4)
123 self.positionPull1.Fill((d.getPosition() - truePos) / d.getPositionSigma())
124 if d.getSize() == 2:
125 self.positionS2.Fill(d.getPosition())
126 self.positionS2Sigma.Fill(d.getPositionSigma() * 1e4)
127 self.positionPull2.Fill((d.getPosition() - truePos) / d.getPositionSigma())
128 if d.getSize() > 2:
129 self.positionS3.Fill(d.getPosition())
130 self.positionS3Sigma.Fill(d.getPositionSigma() * 1e4)
131 self.positionPull3.Fill((d.getPosition() - truePos) / d.getPositionSigma())
132
133 self.test[d.getSensorID().getLayerNumber() - 3].Fill(d.getSensorID().getLadderNumber(),
134 d.getSensorID().getSensorNumber() + isU)
135 self.positionPull.Fill((d.getPosition() - truePos) / d.getPositionSigma())
136
137 for d in clusterListNew:
138
139 isU = 0
140 trueListNew = d.getRelationsTo('SVDTrueHits') # SVDClustersToSVDTrueHits
141 if (d.isUCluster()):
142 isU = 0.5
143 truePos = trueListNew[0].getU()
144 else:
145 truePos = trueListNew[0].getV()
146
147 self.sizeNew.Fill(d.getSize())
148 self.timeNew.Fill(d.getClsTime())
149 self.ffNew.Fill(d.getFirstFrame())
150 self.chargeNew.Fill(d.getCharge() / 1000)
151 self.SNRNew.Fill(d.getSNR())
152 self.positionNew.Fill(d.getPosition())
153 self.positionSigmaNew.Fill(d.getPositionSigma() * 1e4)
154 if d.getSize() == 1:
155 self.positionS1New.Fill(d.getPosition())
156 self.positionS1SigmaNew.Fill(d.getPositionSigma() * 1e4)
157 self.positionPull1New.Fill((d.getPosition() - truePos) / d.getPositionSigma())
158 if d.getSize() == 2:
159 self.positionS2New.Fill(d.getPosition())
160 self.positionS2SigmaNew.Fill(d.getPositionSigma() * 1e4)
161 self.positionPull2New.Fill((d.getPosition() - truePos) / d.getPositionSigma())
162 if d.getSize() > 2:
163 self.positionS3New.Fill(d.getPosition())
164 self.positionS3SigmaNew.Fill(d.getPositionSigma() * 1e4)
165 self.positionPull3New.Fill((d.getPosition() - truePos) / d.getPositionSigma())
166
167 self.testNew[d.getSensorID().getLayerNumber() - 3].Fill(d.getSensorID().getLadderNumber(),
168 d.getSensorID().getSensorNumber() + isU)
169 self.positionPullNew.Fill((d.getPosition() - truePos) / d.getPositionSigma())
170
A (simplified) python wrapper for StoreArray.

◆ initialize()

initialize ( self)
define histograms

Definition at line 33 of file testNewReco.py.

33 def initialize(self):
34 '''define histograms'''
35
36
37 self.test = []
38
39 self.testNew = []
40
41 self.size = TH1F("cl_size", "Cluster Size", 20, 0, 20)
42 self.sizeNew = TH1F("clNew_size", "New Cluster Size", 20, 0, 20)
43 self.time = TH1F("cl_time", "Cluster Time", 300, -100, 200)
44 self.timeNew = TH1F("clNew_time", "New Cluster Time", 300, -100, 200)
45 self.ff = TH1F("cl_ff", "Cluster FirstFrame", 4, -0.4, 3.5)
46 self.ffNew = TH1F("clNew_ff", "New Cluster FirstFrame", 4, -0.4, 3.5)
47 self.charge = TH1F("cl_charge", "Cluster Charge", 300, 0, 100)
48 self.chargeNew = TH1F("clNew_charge", "New Cluster Charge", 300, 0, 100)
49 self.SNR = TH1F("cl_SNR", "Cluster SNR", 100, 0, 100)
50 self.SNRNew = TH1F("clNew_SNR", "New Cluster SNR", 100, 0, 100)
51 self.position = TH1F("cl_position", "Cluster Position", 300, -6, 6)
52 self.positionNew = TH1F("clNew_position", "New Cluster Position", 300, -6, 6)
53 self.positionSigma = TH1F("cl_positionSigma", "Cluster Position Error", 300, 0, 100)
54 self.positionSigmaNew = TH1F("clNew_positionSigma", "New Cluster Position Error", 300, 0, 100)
55 self.positionS1 = TH1F("cl_positionS1", "Cluster Position Size 1", 300, -6, 6)
56 self.positionS1New = TH1F("clNew_positionS1", "New Cluster Position Size 1", 300, -6, 6)
57 self.positionS1Sigma = TH1F("cl_positionS1Sigma", "Cluster Position Error Size 1", 300, 0, 100)
58 self.positionS1SigmaNew = TH1F("clNew_positionS1Sigma", "New Cluster Position Error Size 1", 300, 0, 100)
59 self.positionS2 = TH1F("cl_positionS2", "Cluster Position Size 2", 300, -6, 6)
60 self.positionS2New = TH1F("clNew_positionS2", "New Cluster Position Size 2", 300, -6, 6)
61 self.positionS2Sigma = TH1F("cl_positionS2Sigma", "Cluster Position Size Error 2", 300, 0, 100)
62 self.positionS2SigmaNew = TH1F("clNew_positionS2Sigma", "New Cluster Position Error Size 2", 300, 0, 100)
63 self.positionS3 = TH1F("cl_positionS3", "Cluster Position Size >2", 300, -6, 6)
64 self.positionS3New = TH1F("clNew_positionS3", "New Cluster Position Size >2", 300, -6, 6)
65 self.positionS3Sigma = TH1F("cl_positionS3Sigma", "Cluster Position Error Size >2", 300, 0, 100)
66 self.positionS3SigmaNew = TH1F("clNew_positionS3Sigma", "New Cluster Position Error Size >2", 300, 0, 100)
67 self.positionPull = TH1F("cl_positionPull", "Cluster Position Pull", 200, -10, 10)
68 self.positionPullNew = TH1F("clNew_positionPull", "New Cluster Position Pull", 200, -10, 10)
69 self.positionPull1 = TH1F("cl_positionPull1", "Cluster Position Pull Size 1", 200, -10, 10)
70 self.positionPull1New = TH1F("clNew_positionPull1", "New Cluster Position Pull Size 1", 200, -10, 10)
71 self.positionPull2 = TH1F("cl_positionPull2", "Cluster Position Pull Size 2", 200, -10, 10)
72 self.positionPull2New = TH1F("clNew_positionPull2", "New Cluster Position Pull Size 2", 200, -10, 10)
73 self.positionPull3 = TH1F("cl_positionPull3", "Cluster Position Pull Size >2", 200, -10, 10)
74 self.positionPull3New = TH1F("clNew_positionPull3", "New Cluster Position Pull Size >2", 200, -10, 10)
75
76
78
79 ladderN = 0
80 sensorN = 0
81
82 for layer in geoCache.getLayers(Belle2.VXD.SensorInfoBase.SVD):
83 layerNumber = layer.getLayerNumber()
84 ladderN = 0
85 for ladder in geoCache.getLadders(layer):
86 ladderN = ladderN + 1
87 sensorN = 0
88 for sensor in geoCache.getSensors(ladder):
89 sensorN = sensorN + 1
90 self.test.append(TH2F("cl_layer" + str(layerNumber), "Layer " + str(layerNumber) +
91 " Ladder VS Sensor.Side", ladderN, 0.5, ladderN + 0.5, 2 * sensorN, +0.75, sensorN + 0.75))
92 self.testNew.append(TH2F("clNew_layer" + str(layerNumber), "Layer " + str(layerNumber) +
93 " Ladder VS Sensor.Side", ladderN, 0.5, ladderN + 0.5, 2 * sensorN, +0.75, sensorN + 0.75))
94
95 print(self.test)
96
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition GeoCache.cc:214

◆ terminate()

terminate ( self)
write

Definition at line 171 of file testNewReco.py.

171 def terminate(self):
172 '''write'''
173
174 f = TFile("quicktestSVDClusterOldDefault.root", "RECREATE")
175 for hist in self.test:
176 hist.GetXaxis().SetTitle("ladder #")
177 hist.GetYaxis().SetTitle("sensor # + 0.5 is isU")
178 hist.Write()
179 for hist in self.testNew:
180 hist.GetXaxis().SetTitle("ladder #")
181 hist.GetYaxis().SetTitle("sensor # + 0.5 is isU")
182 hist.Write()
183
184 self.size.GetXaxis().SetTitle("cluster size")
185 self.size.Write()
186 self.sizeNew.GetXaxis().SetTitle("cluster size")
187 self.sizeNew.Write()
188
189 self.time.GetXaxis().SetTitle("cluster time (ns)")
190 self.time.Write()
191 self.timeNew.GetXaxis().SetTitle("cluster time (ns)")
192 self.timeNew.Write()
193
194 self.ff.GetXaxis().SetTitle("cluster firstFrame")
195 self.ff.Write()
196 self.ffNew.GetXaxis().SetTitle("cluster firstFrame")
197 self.ffNew.Write()
198
199 self.charge.GetXaxis().SetTitle("cluster charge (ke-)")
200 self.charge.Write()
201 self.chargeNew.GetXaxis().SetTitle("cluster charge (ke-)")
202 self.chargeNew.Write()
203
204 self.SNR.GetXaxis().SetTitle("cluster SNR")
205 self.SNR.Write()
206 self.SNRNew.GetXaxis().SetTitle("cluster SNR")
207 self.SNRNew.Write()
208
209 self.position.GetXaxis().SetTitle("cluster position (cm)")
210 self.position.Write()
211 self.positionNew.GetXaxis().SetTitle("cluster position (cm)")
212 self.positionNew.Write()
213
214 self.positionSigma.GetXaxis().SetTitle("cluster position error (#mum)")
215 self.positionSigma.Write()
216 self.positionSigmaNew.GetXaxis().SetTitle("cluster position error (#mum)")
217 self.positionSigmaNew.Write()
218
219 self.positionS1.GetXaxis().SetTitle("cluster position (cm)")
220 self.positionS1.Write()
221 self.positionS1New.GetXaxis().SetTitle("cluster position (cm)")
222 self.positionS1New.Write()
223
224 self.positionS1Sigma.GetXaxis().SetTitle("cluster position error (#mum)")
225 self.positionS1Sigma.Write()
226 self.positionS1SigmaNew.GetXaxis().SetTitle("cluster position error (#mum)")
227 self.positionS1SigmaNew.Write()
228
229 self.positionS2.GetXaxis().SetTitle("cluster position (cm)")
230 self.positionS2.Write()
231 self.positionS2New.GetXaxis().SetTitle("cluster position (cm)")
232 self.positionS2New.Write()
233
234 self.positionS2Sigma.GetXaxis().SetTitle("cluster position error (#mum)")
235 self.positionS2Sigma.Write()
236 self.positionS2SigmaNew.GetXaxis().SetTitle("cluster position error (#mum)")
237 self.positionS2SigmaNew.Write()
238
239 self.positionS3.GetXaxis().SetTitle("cluster position (cm)")
240 self.positionS3.Write()
241 self.positionS3New.GetXaxis().SetTitle("cluster position (cm)")
242 self.positionS3New.Write()
243
244 self.positionS3Sigma.GetXaxis().SetTitle("cluster position error (#mum)")
245 self.positionS3Sigma.Write()
246 self.positionS3SigmaNew.GetXaxis().SetTitle("cluster position error (#mum)")
247 self.positionS3SigmaNew.Write()
248
249 self.positionPull.GetXaxis().SetTitle("cluster position pull")
250 self.positionPull.Write()
251 self.positionPullNew.GetXaxis().SetTitle("cluster position pull")
252 self.positionPullNew.Write()
253 self.positionPull1.GetXaxis().SetTitle("cluster position pull")
254 self.positionPull1.Write()
255 self.positionPull1New.GetXaxis().SetTitle("cluster position pull")
256 self.positionPull1New.Write()
257 self.positionPull2.GetXaxis().SetTitle("cluster position pull")
258 self.positionPull2.Write()
259 self.positionPull2New.GetXaxis().SetTitle("cluster position pull")
260 self.positionPull2New.Write()
261 self.positionPull3.GetXaxis().SetTitle("cluster position pull")
262 self.positionPull3.Write()
263 self.positionPull3New.GetXaxis().SetTitle("cluster position pull")
264 self.positionPull3New.Write()
265
266 f.Close()
267
268

Member Data Documentation

◆ test

test = []

list of test histograms

Definition at line 37 of file testNewReco.py.

◆ testNew

list testNew = []

another list of test histograms

Definition at line 39 of file testNewReco.py.


The documentation for this class was generated from the following file: