12def merge() -> None:
13 sTree = ROOT.TChain("DIS")
14 for i in range(0, 12):
15 fn = "muonDis_" + str(i) + ".root"
16 sTree.AddFile(fn)
17 fm = ROOT.TFile("test.root", "recreate")
18 nTree = ROOT.TTree("DIS", "muon DIS")
19 iMuon = ROOT.TClonesArray("TVectorD")
20 iMuonBranch = nTree.Branch("InMuon", iMuon, 32000, -1)
21 dPart = ROOT.TClonesArray("TVectorD")
22 dPartBranch = nTree.Branch("Particles", dPart, 32000, -1)
23 for n in range(sTree.GetEntries()):
24 sTree.GetEvent(n)
25 dPart.Clear()
26 iMuon.Clear()
27 tca_vec = iMuon.ConstructedAt(0)
28 tca_vec.ResizeTo(sTree.InMuon[0])
29 ROOT.std.swap(tca_vec, sTree.InMuon[0])
30 for part in sTree.Particles:
31 nPart = len(dPart)
32 if dPart.GetSize() == nPart:
33 dPart.Expand(nPart + 10)
34 tca_vec = dPart.ConstructedAt(nPart)
35 tca_vec.ResizeTo(part)
36 ROOT.std.swap(tca_vec, part)
37 dPartBranch.Fill()
38 iMuonBranch.Fill()
39 nTree.Fill()
40 fm.cd()
41 nTree.Write()
42 fm.Close()
43
44