Belle II Software development
track_to_mcparticle_relation_test.py
1#!/usr/bin/env python3
2
3
10
11
12from basf2 import set_random_seed, create_path, process, statistics, Module
13from ROOT import Belle2
14from simulation import add_simulation
15from reconstruction import add_reconstruction
16import logging
17
18
20 """Class to check the presence of a relation between a Track and an MCParticle"""
21
22 def initialize(self):
23 """Initialise the required StoreArrays and variables"""
24
25 self.Tracks = Belle2.PyStoreArray('Tracks')
26 self.Tracks.isRequired()
27
28 self.MCParticles = Belle2.PyStoreArray('MCParticles')
29 self.MCParticles.isRequired()
30
31 self.eventCount = 1
32
33 def event(self):
34 """Event loop"""
35 assert self.MCParticles.getEntries() > 0, "Size of MCParticles StoreArray is 0."
36 assert self.Tracks.getEntries() > 0, "Size of Tracks StoreArray is 0."
37 for track in self.Tracks:
38 track_to_mcparticle_relations = track.getRelationsTo('MCParticles')
39 assert track_to_mcparticle_relations.size() > 0, "Somehow there are no relations from this track to an MCParticle. \
40 Why? I don't know. Likely the track is from a fake RecoTrack."
41
42 self.eventCount += 1
43
44
45def main():
46 """Main function to be executed if this script is run to avoid running if it's just imported."""
47 set_random_seed(12345)
48
49 main = create_path()
50
51 # specify number of events to be generated
52 main.add_module('EventInfoSetter', expList=[0], evtNumList=[5], runList=[1])
53 main.add_module('ParticleGun',
54 pdgCodes=[211],
55 nTracks=1,
56 momentumGeneration='fixed',
57 momentumParams=[1.618034],
58 phiGeneration='fixed',
59 phiParams=[27.182818],
60 thetaGeneration='fixed',
61 thetaParams=[62.83185])
62 add_simulation(main, bkgfiles=None)
63 add_reconstruction(main)
64
66
67 main.add_module('Progress')
68 process(main)
69
70 # Print call statistics
71 print(statistics)
72
73
74if __name__ == "__main__":
75 logging.basicConfig(level=logging.INFO)
76 main()
A (simplified) python wrapper for StoreArray.
Definition: PyStoreArray.h:72
Definition: main.py:1