8 def __init__(self, path, G4Version):
9
10
11 self.volumeSummary = {}
12 self.materialSummary = {}
13 self.processSummary = {}
14
15 self.G4Version = G4Version
16 self.file = ROOT.TFile(os.path.join(path,"%s.root" % G4Version),"READ")
17
19
20 d = self.file.GetDirectory("volumes")
21 for k in d.GetListOfKeys():
22 name = k.GetName()
23 if name in translate.keys() and name != 'other':
24 name = translate[name]
26 namePerm = k.GetName()
27 if name == "summary":
28 continue
29 for p in particles:
30 h = self.GetHistogram("stepLength",namePerm,p,"volumes")
31 if h:
32 if not name in self.volumeSummary.keys():
33 self.volumeSummary[name] = {}
34 if not p in self.volumeSummary[name].keys():
35 self.volumeSummary[name][p] = 0
36 self.volumeSummary[name][p] += h.Integral(0,h.GetNbinsX()+1)
37 if p == "other":
38 for op in otherParticles:
39 oh = self.GetHistogram("stepLength",namePerm,op,"volumes")
40 if oh:
41 self.volumeSummary[name]["other"] += oh.Integral(0,oh.GetNbinsX()+1)
42
43 d = self.file.GetDirectory("materials")
44 for k in d.GetListOfKeys():
45 name = k.GetName()
46 if name == "summary":
47 continue
48 for p in particles:
49 h = self.GetHistogram("stepLength",name,p,"materials")
50 if h:
51 if not name in self.materialSummary.keys():
52 self.materialSummary[name] = {}
53 if not p in self.materialSummary[name].keys():
54 self.materialSummary[name][p] = 0
55 self.materialSummary[name][p] += h.Integral(0,h.GetNbinsX()+1)
56
57 d = self.file.GetDirectory("processes")
58 for k in d.GetListOfKeys():
59 name = k.GetName()
60 if name == "summary":
61 continue
62 for p in particles:
63 h = self.GetHistogram("stepLength",name,p,"processes")
64 if h:
65 if not name in self.processSummary.keys():
66 self.processSummary[name] = {}
67 if not p in self.processSummary[name].keys():
68 self.processSummary[name][p] = 0
69 self.processSummary[name][p] += h.Integral(0,h.GetNbinsX()+1)
70
void print(char *figname, TCanvas *c1)