14 <input>SVDValidationTTreeTrueHit.root</input>
15 <input>SVDValidationTTreeCluster.root</input>
16 <output>SVDClusterPerformance.root</output>
18 Validation plots related to cluster performance.
21 SVD Software Group, svd-software@belle2.org
28 import plotUtils
as pu
30 inputTH = R.TFile.Open(
"../SVDValidationTTreeTrueHit.root")
31 inputC = R.TFile.Open(
"../SVDValidationTTreeCluster.root")
33 treeTH = inputTH.Get(
"tree")
34 treeC = inputC.Get(
"tree")
36 histsCP = R.TFile.Open(
"SVDClusterPerformance.root",
"recreate")
45 x_label=
'Cluster time (ns)',
49 expr=
'cluster_clsTime',
51 descr=
'Reconstructed time of the cluster for all clusters related to one TrueHit.\
52 Distribution for signal clusters.',
53 check=
'Distribution peak around 0.',
58 name=
'PositionResidual',
59 title=
'Cluster position residual',
63 x_label=
'Cluster position residual (cm)',
67 expr=
'cluster_position - truehit_position',
69 descr=
'Definition: (reconstructed position of the cluster) - (position of the TrueHit).\
70 Distribution for signal clusters.',
71 check=
'Distribution peak around 0.',
76 name=
'PositionResidual_size1',
77 title=
'Cluster position residual for one strip',
81 x_label=
'Cluster position residual (cm)',
85 expr=
'cluster_position - truehit_position',
86 cut=pu.cut_oneTH+pu.cut_size1,
87 descr=
'Definition: (reconstructed position of the cluster) - (position of the TrueHit).\
88 Distribution for signal clusters.',
89 check=
'Distribution peak around 0.',
94 name=
'PositionResidual_size2',
95 title=
'Cluster position residual for two strips',
99 x_label=
'Cluster position residual (cm)',
103 expr=
'cluster_position - truehit_position',
104 cut=pu.cut_oneTH+pu.cut_size2,
105 descr=
'Definition: (reconstructed position of the cluster) - (position of the TrueHit).\
106 Distribution for signal clusters.',
107 check=
'Distribution peak around 0.',
112 name=
'PositionResidual_size3plus',
113 title=
'Cluster position residual for 3 or more strips',
117 x_label=
'Cluster position residual (cm)',
121 expr=
'cluster_position - truehit_position',
122 cut=pu.cut_oneTH+pu.cut_size3plus,
123 descr=
'Definition: (reconstructed position of the cluster) - (position of the TrueHit).\
124 Distribution for signal clusters.',
125 check=
'Distribution peak around 0.',
131 title=
'Cluster position pull',
135 x_label=
'Cluster position pull',
139 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
141 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
142 Distribution for signal clusters.',
143 check=
'Distribution peaks around 0 with RMS less than 2.0.',
148 name=
'PositionPull_size1',
149 title=
'Cluster position pull for one strip',
153 x_label=
'Cluster position pull',
157 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
158 cut=pu.cut_oneTH+pu.cut_size1,
159 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
160 Distribution for signal clusters.',
161 check=
'Distribution peaks around 0 with RMS less than 2.0.',
166 name=
'PositionPull_size2',
167 title=
'Cluster position pull for two strip',
171 x_label=
'Cluster position pull',
175 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
176 cut=pu.cut_oneTH+pu.cut_size2,
177 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
178 Distribution for signal clusters.',
179 check=
'Distribution peaks around 0 with RMS less than 2.0.',
184 name=
'PositionPull_size3plus',
185 title=
'Cluster position pull for 3 or more strips',
189 x_label=
'Cluster position pull',
193 expr=
'(cluster_position - truehit_position)/cluster_positionSigma',
194 cut=pu.cut_oneTH+pu.cut_size3plus,
195 descr=
'Definition: (cluster_position - truehit_position)/cluster_positionSigma.\
196 Distribution for signal clusters.',
197 check=
'Distribution peaks around 0 with RMS less than 2.0.',
202 name=
'TimeResolution',
203 title=
'Cluster time resolution',
207 x_label=
'Cluster time resolution (ns)',
211 expr=
'cluster_clsTime - truehit_time',
213 descr=
'Definition: (reconstructed time of the cluster) - (time of the TrueHit)\
214 for all signal clusters.',
215 check=
'Distribution peak around 0.',
220 name=
'ClusterCharge',
221 title=
'Cluster charge',
225 x_label=
'Cluster charge (# of electrons)',
229 expr=
'cluster_charge',
231 descr=
'Reconstructed charge of the cluster related to one TrueHit.\
232 Distribution for signal clusters.',
233 check=
'Distribution peaks around 20-40 ke.',
238 title=
'Cluster Signal/Noise ratio',
242 x_label=
'cluster SNR',
248 descr=
'Signal/Noise ratio of the cluster related to one TrueHit. Distribution for signal clusters.',
249 check=
'Distribution peaks around 20.',
253 name=
'InterstripPosition',
254 title=
'Interstrip position',
258 x_label=
'Interstrip Position',
262 expr=
'cluster_interstripPosition',
264 descr=
'Definition: (cluster_position % strip_pitch / strip_pitch).\
265 Distribution for signal clusters.',
271 title=
'Cluster size',
275 x_label=
'Cluster size (# of strips in cluster)',
281 descr=
'Number of strips in the Cluster related to one TrueHit. Distribution for signal clusters.',
282 check=
'Distribution peaks in range 2-3.',
286 name=
'ClusterizationEfficiency_U',
287 title=
'Efficiency of clusterization for U side',
288 x_label=
'SVD regions',
289 y_label=
'Efficiency',
290 granules=pu.granulesLayersTypes,
295 descr=
'Definition: (number of clusters related to TrueHit) / (number of Truehits)',
296 check=
'Efficiency should be close to 1 in all bins.',
301 name=
'ClusterizationEfficiency_V',
302 title=
'Efficiency of clusterization for V side',
303 x_label=
'SVD regions',
304 y_label=
'Efficiency',
305 granules=pu.granulesLayersTypes,
310 descr=
'Definition: (number of clusters related to TrueHit) / (number of Truehits).',
311 check=
'Efficiency should be close to 1 in all bins.',
316 name=
'ClusterizationPurity_U',
317 title=
'Purity of clusterization for U side',
318 x_label=
'SVD regions',
320 granules=pu.granulesLayersTypes,
325 descr=
'(number of clusters related to one TrueHit) / (number of clusters).\
326 Evaluates the fraction of signal cluster over the total number of signal and background clusters.',
327 check=
'Purity should be above 0 in all bins.',
332 name=
'ClusterizationPurity_V',
333 title=
'Purity of clusterization for V side',
334 x_label=
'SVD regions',
336 granules=pu.granulesLayersTypes,
341 descr=
'(number of clusters related to one TrueHit) / (number of clusters).\
342 Evaluates the fraction of signal cluster over the total number of signal and background clusters.',
343 check=
'Purity should be above 0 in all bins.',