13 <input>SVDValidationTTreeTrueHit.root</input>
14 <input>SVDValidationTTreeCluster.root</input>
15 <output>SVDClusterPerformance.root</output>
17 Validation plots related to cluster performance.
20 SVD Software Group, svd-software@belle2.org
29inputTH = R.TFile.Open("../SVDValidationTTreeTrueHit.root")
30inputC = R.TFile.Open("../SVDValidationTTreeCluster.root")
32treeTH = inputTH.Get("tree")
33treeC = inputC.Get("tree")
35histsCP = R.TFile.Open("SVDClusterPerformance.root", "recreate")
44 x_label=
'Cluster time (ns)',
48 expr=
'cluster_clsTime',
50 descr=
'Reconstructed time of the cluster for all clusters related to at least one TrueHit.\
51 Distribution for signal clusters.',
52 check=
'Distribution peak around 0.',
57 name=
'PositionResidual',
58 title=
'Cluster position residual',
62 x_label=
'Cluster position residual (cm)',
66 expr=
'cluster_position - truehit_position',
68 descr=
'Definition: (reconstructed position of the cluster) - (position of the best TrueHit).\
69 Distribution for signal clusters.',
70 check=
'Distribution peak around 0.',
75 name=
'PositionResidual_size1',
76 title=
'Cluster position residual for one strip',
80 x_label=
'Cluster position residual (cm)',
84 expr=
'cluster_position - truehit_position',
85 cut=pu.cut_size1 + pu.cut_matched,
86 descr=
'Definition: (reconstructed position of the cluster) - (position of the best TrueHit).\
87 Distribution for signal clusters.',
88 check=
'Distribution peak around 0.',
93 name=
'PositionResidual_size2',
94 title=
'Cluster position residual for two strips',
98 x_label=
'Cluster position residual (cm)',
102 expr=
'cluster_position - truehit_position',
103 cut=pu.cut_size2 + pu.cut_matched,
104 descr=
'Definition: (reconstructed position of the cluster) - (position of the best TrueHit).\
105 Distribution for signal clusters.',
106 check=
'Distribution peak around 0.',
111 name=
'PositionResidual_size3plus',
112 title=
'Cluster position residual for 3 or more strips',
116 x_label=
'Cluster position residual (cm)',
120 expr=
'cluster_position - truehit_position',
121 cut=pu.cut_size3plus + pu.cut_matched,
122 descr=
'Definition: (reconstructed position of the cluster) - (position of the best TrueHit).\
123 Distribution for signal clusters.',
124 check=
'Distribution peak around 0.',
130 title=
'Cluster position pull',
134 x_label=
'Cluster position pull',
138 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
140 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
141 Distribution for signal clusters.',
142 check=
'Distribution peaks around 0 with RMS less than 2.0.',
147 name=
'PositionPull_size1',
148 title=
'Cluster position pull for one strip',
152 x_label=
'Cluster position pull',
156 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
157 cut=pu.cut_size1 + pu.cut_matched,
158 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
159 Distribution for signal clusters.',
160 check=
'Distribution peaks around 0 with RMS less than 2.0.',
165 name=
'PositionPull_size2',
166 title=
'Cluster position pull for two strip',
170 x_label=
'Cluster position pull',
174 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
175 cut=pu.cut_size2 + pu.cut_matched,
176 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
177 Distribution for signal clusters.',
178 check=
'Distribution peaks around 0 with RMS less than 2.0.',
183 name=
'PositionPull_size3plus',
184 title=
'Cluster position pull for 3 or more strips',
188 x_label=
'Cluster position pull',
192 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
193 cut=pu.cut_size3plus + pu.cut_matched,
194 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
195 Distribution for signal clusters.',
196 check=
'Distribution peaks around 0 with RMS less than 2.0.',
201 name=
'TimeResolution',
202 title=
'Cluster time resolution',
206 x_label=
'Cluster time resolution (ns)',
210 expr=
'cluster_clsTime - truehit_time',
212 descr=
'Definition: (reconstructed time of the cluster) - (time of the best TrueHit)\
213 for all signal clusters.',
214 check=
'Distribution peak around 0.',
219 name=
'ClusterCharge',
220 title=
'Cluster charge',
224 x_label=
'Cluster charge (# of electrons)',
228 expr=
'cluster_charge',
230 descr=
'Reconstructed charge of the cluster related to at least one TrueHit.\
231 Distribution for signal clusters.',
232 check=
'Distribution peaks around 20-40 ke.',
237 title=
'Cluster Signal/Noise ratio',
241 x_label=
'cluster SNR',
247 descr=
'Signal/Noise ratio of the clusters related to at least one TrueHit.',
248 check=
'Distribution peaks around 20.',
252 name=
'InterstripPosition',
253 title=
'Interstrip position',
257 x_label=
'Interstrip Position',
261 expr=
'cluster_interstripPosition',
263 descr=
'Definition: (cluster_position % strip_pitch / strip_pitch).\
264 Distribution for signal clusters.',
270 title=
'Cluster size',
274 x_label=
'Cluster size (# of strips in cluster)',
280 descr=
'Number of strips in the Cluster related to at least one TrueHit.',
281 check=
'Distribution peaks in range 2-3.',
285 name=
'ClusterizationEfficiency_U',
286 title=
'Efficiency of clusterization for U side',
287 x_label=
'SVD regions',
288 y_label=
'Efficiency',
289 granules=pu.granulesLayersTypes,
293 cut=pu.cut_notV + pu.cut_reco,
294 descr=
'Definition: (number of clusters related to at least one TrueHit) / (number of best TrueHits)',
295 check=
'Efficiency should be close to 1 in all bins. Note that only one TrueHit (the best one, \
296 i.e. the one with the largest energy deposit) is counted\
297 in case one cluster is related to more than one TrueHit (e.g. in case of delta rays).',
302 name=
'ClusterizationEfficiency_V',
303 title=
'Efficiency of clusterization for V side',
304 x_label=
'SVD regions',
305 y_label=
'Efficiency',
306 granules=pu.granulesLayersTypes,
310 cut=pu.cut_notU + pu.cut_reco,
311 descr=
'Definition: (number of clusters related to at least one TrueHit) / (number of best TrueHits)',
312 check=
'Efficiency should be close to 1 in all bins. Note that only one TrueHit (the best one, \
313 i.e. the one with the largest energy deposit) is counted\
314 in case one cluster is related to more than one TrueHit (e.g. in case of delta rays).',
319 name=
'ClusterizationPurity_U',
320 title=
'Fraction of U-side signal clusters (purity)',
321 x_label=
'SVD regions',
323 granules=pu.granulesLayersTypes,
327 cut=pu.cut_U + pu.cut_matched,
328 descr=
'(number of clusters related to at least one TrueHit) / (number of clusters).\
329 Evaluates the fraction of signal cluster over the total number of signal and background clusters.',
330 check=
'Purity should be above 0 in all bins.',
335 name=
'ClusterizationPurity_V',
336 title=
'Fraction of V-side signal clusters (purity)',
337 x_label=
'SVD regions',
339 granules=pu.granulesLayersTypes,
343 cut=pu.cut_V + pu.cut_matched,
344 descr=
'(number of clusters related to at least one TrueHit) / (number of clusters).\
345 Evaluates the fraction of signal cluster over the total number of signal and background clusters.',
346 check=
'Purity should be above 0 in all bins.',