65
65
tree = ROOT.TTree()
66
66
tree = root_file.Get("Spill")
67
67
tree.SetBranchAddress("data", data)
68
tree.GetEntry(0) # Use the 3rd spill
69
spill = data.GetSpill()
71
self.assertEqual(spill.GetDaqEventType(), "physics_event")
72
self.assertEqual(spill.GetReconEvents().size(), 2)
74
evt = spill.GetReconEvents()[0].GetSciFiEvent()
75
self.assertEqual(evt.spacepoints().size(), 10)
77
# Check have found tracks with correct params & correct seed spoints
78
trks = evt.helicalprtracks()
79
self.assertEqual(trks.size(), 2)
81
sds0 = trks[0].get_spacepoints() # Tracker 1
82
self.assertEqual(round(trks[0].get_R() - 6.28, 2), 0.0)
83
self.assertEqual(round(trks[0].get_dsdz() - 0.0348, 4), 0.0)
84
self.assertEqual(sds0.size(), 5)
85
self.assertEqual(round(sds0[0].get_position().x() - (-10.46), 2), 0.0)
86
self.assertEqual(round(sds0[1].get_position().x() - (-5.48), 2), 0.0)
87
self.assertEqual(round(sds0[2].get_position().x() - (-0.50), 2), 0.0)
88
self.assertEqual(round(sds0[3].get_position().x() - (-8.47), 2), 0.0)
89
self.assertEqual(round(sds0[4].get_position().x() - (-12.70), 2), 0.0)
91
sds1 = trks[1].get_spacepoints() # Tracker 2
92
self.assertEqual(round(trks[1].get_R() - 18.57, 2), 0.0)
93
self.assertEqual(round(trks[1].get_dsdz() - 0.1180, 4), 0.0)
94
self.assertEqual(sds1.size(), 5)
95
self.assertEqual(round(sds1[0].get_position().x() - (18.93), 2), 0.0)
96
self.assertEqual(round(sds1[1].get_position().x() - (-0.75), 2), 0.0)
97
self.assertEqual(round(sds1[2].get_position().x() - (-14.45), 2), 0.0)
98
self.assertEqual(round(sds1[3].get_position().x() - (13.95), 2), 0.0)
99
self.assertEqual(round(sds1[4].get_position().x() - (9.47), 2), 0.0)
69
# Check the mean and standard deviation of some final track data
70
tree.Draw("_spill._recon._scifi_event._scifitracks._P_value>>h1")
71
h1 = ROOT.gDirectory.Get('h1')
72
self.assertGreater(h1.GetMean(), 0.93)
73
self.assertLess(h1.GetRMS(), 0.1)
75
tree.Draw("_spill._recon._scifi_event._scifitracks._f_chi2>>h2")
76
h2 = ROOT.gDirectory.Get('h2')
77
self.assertLess(h2.GetMean(), 10)
78
self.assertLess(h2.GetRMS(), 5)
80
tree.Draw("_spill._recon._scifi_event._scifitracks._s_chi2>>h3")
81
h3 = ROOT.gDirectory.Get('h3')
82
self.assertLess(h3.GetMean(), 20)
83
self.assertLess(h3.GetRMS(), 10)
85
# Most particles should be identified correctly as positives
86
tree.Draw("_spill._recon._scifi_event._scifitracks._charge>>h4")
87
h4 = ROOT.gDirectory.Get('h4')
88
self.assertGreater(h4.GetMean(), 0.95)
101
90
if __name__ == "__main__":
b'\\ No newline at end of file'