19from ROOT
import Belle2
20from ROOT.Belle2
import ECLTimingNormalization, Database, IntervalOfValidity
29inputName =
"tNormalized_MC.root"
30payloadName =
"ECLTimingNormalization_MC"
35inputFile = TFile(inputName,
"READ")
36parameters = ECLTimingNormalization()
42timeWalkHistogram = inputFile.Get(
"timeWalkParameters")
43nParHist = timeWalkHistogram.GetNbinsY()
45if nParHist != nParDBObject:
46 print(f
'ERROR in time walk: nParHist = {nParHist}, nParDBObject = {nParDBObject}')
48timeWalk2DArray = np.empty((nCrystals, nParDBObject))
49for cellID
in range(1, nCrystals + 1):
50 for ybin
in range(1, nParHist + 1):
51 value = timeWalkHistogram.GetBinContent(cellID, ybin)
52 timeWalk2DArray[cellID-1, ybin-1] = value
54parameters.setTimeWalkPar(timeWalk2DArray)
59backgroundHistogram = inputFile.Get(
"backgroundParameters")
60nParHist = backgroundHistogram.GetNbinsY()
62if nParHist != nParDBObject:
63 print(f
'ERROR in background: nParHist = {nParHist}, nParDBObject = {nParDBObject}')
65background2DArray = np.empty((nCrystals, nParDBObject))
66for cellID
in range(1, nCrystals + 1):
67 for ybin
in range(1, nParHist + 1):
68 value = backgroundHistogram.GetBinContent(cellID, ybin)
69 background2DArray[cellID-1, ybin-1] = value
71parameters.setBackgroundPar(background2DArray)
76energyHistogram = inputFile.Get(
"energyParameters")
77nParHist = energyHistogram.GetNbinsY()
79if nParHist != nParDBObject:
80 print(f
'ERROR in enegy: nParHist = {nParHist}, nParDBObject = {nParDBObject}')
82energy2DArray = np.empty((nCrystals, nParDBObject))
83for cellID
in range(1, nCrystals + 1):
84 for ybin
in range(1, nParHist + 1):
85 value = energyHistogram.GetBinContent(cellID, ybin)
86 energy2DArray[cellID-1, ybin-1] = value
88parameters.setEnergyPar(energy2DArray)
93parameters.setMinTNormalization(tNormalizedMin)
99database = Database.Instance()
101iov = IntervalOfValidity(0, 0, -1, -1)
102database.storeData(payloadName, parameters, iov)
103print(f
'Created ECLTimingNormalization payload with name {payloadName}')