6 from ROOT
import Belle2
7 from ROOT
import TH1F, TH2F, TFile, TProfile
18 ''' determination of average quantum and collection efficiency from TOPPmtQEs '''
21 ''' run the procedure, store the results in a root file and print in xml format '''
24 if dbarray.getEntries() == 0:
25 B2ERROR(
"No entries in TOPPmtQEs")
30 B2ERROR(
"No TOPGeometry")
35 lambdaStep = dbarray[0].getLambdaStep()
36 lambdaFirst = dbarray[0].getLambdaFirst()
37 lambdaLast = dbarray[0].getLambdaLast()
38 n = int((lambdaLast - lambdaFirst) / lambdaStep) + 1
39 print(lambdaFirst, lambdaLast, lambdaStep, n)
45 pde_2d = TH2F(
"pde_2d",
"quantum times collection efficiencies " + Bfield,
46 n, lambdaFirst - lambdaStep / 2, lambdaLast + lambdaStep / 2,
48 pde_prof = TProfile(
"pde_prof",
"quantum times collection efficiencies " + Bfield,
49 n, lambdaFirst - lambdaStep / 2, lambdaLast + lambdaStep / 2,
51 pde_nom = TH1F(
"pde_nom",
"nominal quantum times collection efficiency (as found in DB)",
52 n, lambdaFirst - lambdaStep / 2, lambdaLast + lambdaStep / 2)
53 ce_1d = TH1F(
"ce_1d",
"collection efficiencies " + Bfield, 100, 0.0, 1.0)
57 ce_1d.Fill(pmtQE.getCE(Bfield_on))
58 ce += pmtQE.getCE(Bfield_on)
59 for pmtPixel
in range(1, 17):
61 lam = lambdaFirst + lambdaStep * i
62 effi = pmtQE.getEfficiency(pmtPixel, lam, Bfield_on)
63 pde_2d.Fill(lam, effi)
64 pde_prof.Fill(lam, effi)
66 nominalQE = geo.getNominalQE()
68 lam = lambdaFirst + lambdaStep * i
69 effi = nominalQE.getEfficiency(lam)
70 pde_nom.SetBinContent(i+1, effi)
72 ce /= dbarray.getEntries()
73 print(
'average CE =', ce)
74 file = TFile(
'averageQE.root',
'recreate')
83 print(
'<ColEffi descr="average over all PMTs for 1.5 T">' + str(round(ce, 4)) +
'</ColEffi>')
85 print(
'<ColEffi descr="average over all PMTs for 0 T">' + str(round(ce, 4)) +
'</ColEffi>')
86 print(
'<LambdaFirst unit="nm">' + str(lambdaFirst) +
'</LambdaFirst>')
87 print(
'<LambdaStep unit="nm">' + str(lambdaStep) +
'</LambdaStep>')
89 qe = pde_prof.GetBinContent(i+1) / ce
90 print(
'<Qeffi>' + str(round(qe, 3)) +
'</Qeffi>')
97 use_central_database(argvs[1])
103 eventinfosetter = register_module(
'EventInfoSetter')
104 eventinfosetter.param({
'evtNumList': [1]})
105 main.add_module(eventinfosetter)