237 def event(self):
238 from ROOT import Belle2, TVector3, XYZVector
239
240
241
242
243
244
245 event = []
246 for reco in self.recotracks:
247 track = reco.getRelatedFrom("Tracks")
248
249 fitres = None
250 state = None
251
252
253 method = 'old'
254
255 if method == 'old':
256
257
258 if not track:
259 print("no track found for recotrack")
260 continue
261 whishPdg = 211
263 if not fitres:
264 continue
265 else:
266
267
268 reps = reco.getRepresentations()
269 irep = 0
270 for irep, rep in enumerate(reps):
271 if not reco.wasFitSuccessful(rep):
272 continue
273 try:
274 state = reco.getMeasuredStateOnPlaneClosestTo(XYZVector(0, 0, 0), rep)
275 rep.extrapolateToLine(state, TVector3(0, 0, -1000), TVector3(0, 0, 2000))
276 except BaseException:
277 continue
278 if not state:
279 continue
280
281
282
283 neuro = reco.getRelatedTo(self.neurotracksname)
284 event.append(self.nonelist.copy())
285 try:
286 neuro = reco.getRelatedTo(self.neurotracksname)
287 except BaseException:
288 neuro = None
289 try:
290 swneuro = reco.getRelatedTo(self.swneurotracksname)
291 except BaseException:
292 swneuro = None
293 try:
294 hwneuro = neuro.getRelatedFrom(self.hwneurotracksname)
295 except BaseException:
296 hwneuro = None
297 try:
298 twod = reco.getRelatedTo(self.twodtracksname)
299 except BaseException:
300 twod = None
301 if method == 'old':
302 event[-1] = self.getrecovalsold(event[-1], fitres)
303 else:
304 event[-1] = self.getrecovals(event[-1], state)
305 event[-1] = self.getneurovals(event[-1], neuro)
306 event[-1] = self.gettwodvals(event[-1], twod)
307 event[-1] = self.getneurovals(event[-1], hwneuro, status="hw")
308 event[-1] = self.getneurovals(event[-1], swneuro, status="sw")
309
310 for neuro in self.neurotracks:
311
312
313 if len(neuro.getRelationsFrom(self.recotracksname)) > 0:
314
315
316 continue
317 event.append(self.nonelist.copy())
318 try:
319 twod = reco.getRelatedTo(self.twodtracksname)
320 except BaseException:
321 twod = None
322 try:
323 hwneuro = neuro.getRelatedFrom(self.hwneurotracksname)
324 except BaseException:
325 hwneuro = None
326 event[-1] = self.getneurovals(event[-1], neuro)
327 event[-1] = self.gettwodvals(event[-1], twod)
328 event[-1] = self.getneurovals(event[-1], hwneuro, status="hw")
329 for swneuro in self.swneurotracks:
330
331
332 if len(swneuro.getRelationsFrom(self.recotracksname)) > 0:
333
334
335 continue
336 event.append(self.nonelist.copy())
337 try:
338 swtwod = reco.getRelatedTo(self.swtwodtracksname)
339 except BaseException:
340 swtwod = None
341 event[-1] = self.getneurovals(event[-1], swneuro, status="sw")
342 event[-1] = self.getswtwodvals(event[-1], swtwod)
343 for twod in self.twodtracks:
344
345
346 if len(twod.getRelationsFrom(self.neurotracksname)) > 0:
347
348
349 continue
350 event.append(self.nonelist.copy())
351 event[-1] = self.gettwodvals(event[-1], twod)
352 for swtwod in self.swtwodtracks:
353
354
355 if len(swtwod.getRelationsFrom(self.swneurotracksname)) > 0:
356
357
358 continue
359 event.append(self.nonelist.copy())
360 event[-1] = self.getswtwodvals(event[-1], swtwod)
361
362
363 if len(event) > self.maxtracks:
364 event = event[0:self.maxtracks]
365 elif len(event) < self.maxtracks:
366 for i in range(self.maxtracks - len(event)):
367 event.append(self.nonelist.copy())
368 self.eventlist.append(event)
369
Provides a type-safe way to pass members of the chargedStableSet set.