56 Goes through event's PXD and SVD clusters and looks at MCParticles
57 and TrueHits relations for the sign of relations.
62 for cluster
in pxd_clusters:
64 mcparticle_tag =
'none'
70 mcparticle_relations = cluster.getRelationsTo(
'MCParticles')
71 n_mcparticle_relations = mcparticle_relations.size()
72 for mcparticle_index
in range(n_mcparticle_relations):
73 mcparticle = mcparticle_relations[mcparticle_index]
75 mcparticle_relations.weight(mcparticle_index)
76 if mcparticle_weight < 0:
78 if mcparticle.hasStatus(Belle2.MCParticle.c_PrimaryParticle):
79 mcparticle_tag =
'primary'
81 cluster_truehits = cluster.getRelationsTo(
'PXDTrueHits')
83 mcparticle_array_index = mcparticle.getArrayIndex()
84 for hit
in cluster_truehits:
85 hit_particle_relations = \
86 hit.getRelationsFrom(
'MCParticles')
87 n_relations = hit_particle_relations.size()
88 for particle_index
in range(n_relations):
90 hit_particle_relations[particle_index]
91 if hit_particle.getArrayIndex() == \
92 mcparticle_array_index:
94 weight = hit_particle_relations.weight(
97 mcparticle_tag =
'remapped'
100 mcparticle_tag =
'secondary'
104 self.sign_stats_pxd[mcparticle_tag][sign_tag] += 1
109 for cluster
in svd_clusters:
111 mcparticle_tag =
'none'
112 sign_tag =
'positive'
117 mcparticle_relations = cluster.getRelationsTo(
'MCParticles')
118 n_mcparticle_relations = mcparticle_relations.size()
119 for mcparticle_index
in range(n_mcparticle_relations):
120 mcparticle = mcparticle_relations[mcparticle_index]
121 mcparticle_weight = \
122 mcparticle_relations.weight(mcparticle_index)
123 if mcparticle_weight < 0:
124 sign_tag =
'negative'
125 if mcparticle.hasStatus(Belle2.MCParticle.c_PrimaryParticle):
126 mcparticle_tag =
'primary'
128 cluster_truehits = cluster.getRelationsTo(
'SVDTrueHits')
130 mcparticle_array_index = mcparticle.getArrayIndex()
131 for hit
in cluster_truehits:
132 hit_particle_relations = \
133 hit.getRelationsFrom(
'MCParticles')
134 n_relations = hit_particle_relations.size()
135 for particle_index
in range(n_relations):
137 hit_particle_relations[particle_index]
138 if hit_particle.getArrayIndex() == \
139 mcparticle_array_index:
141 weight = hit_particle_relations.weight(
144 mcparticle_tag =
'remapped'
147 mcparticle_tag =
'secondary'
149 self.sign_stats_svd[mcparticle_tag][sign_tag] += 1