Belle II Software  release-06-02-00
ImportScintillatorDigitizationParameters.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 # Import KLM scintillator digitization parameters payloads.
13 
14 import sys
15 import basf2
16 import math
17 from ROOT.Belle2 import KLMDatabaseImporter, KLMScintillatorDigitizationParameters
18 
19 basf2.set_log_level(basf2.LogLevel.INFO)
20 
21 mc = False
22 if (len(sys.argv) >= 2):
23  if (sys.argv[1] == 'mc'):
24  mc = True
25 
26 dbImporter = KLMDatabaseImporter()
27 
28 digPar = KLMScintillatorDigitizationParameters()
29 # ADC resolution (maximal output value + 1).
30 digPar.setADCRange(4096)
31 # ADC sampling time in TDC periods (frequency is global clock * 8).
32 digPar.setADCSamplingTDCPeriods(1)
33 # Number of digitizations.
34 digPar.setNDigitizations(200)
35 # ADC pedestal.
36 digPar.setADCPedestal(3700)
37 # Photoelectron amplitude.
38 digPar.setADCPEAmplitude(20)
39 # ADC threshold (the difference with pedestal is 3 photoelectron amplitudes).
40 digPar.setADCThreshold(3640)
41 # ADC output value corresponding to saturation.
42 digPar.setADCSaturation(1000)
43 # Number of photoelectrons per 1 MeV.
44 digPar.setNPEperMeV(22)
45 # Cosine of the maximal angle of total internal reflection in the fiber.
46 digPar.setMinCosTheta(math.cos(26.7 / 180.0 * math.pi))
47 # Mirror reflective index.
48 digPar.setMirrorReflectiveIndex(0.95)
49 # Scintillator deexcitation time in ns.
50 digPar.setScintillatorDeExcitationTime(3.0)
51 # Fiber deexcitation time in ns.
52 digPar.setFiberDeExcitationTime(10.0)
53 # Effective light speed in the fiber in cm/ns.
54 digPar.setFiberLightSpeed(17.0)
55 # Fiber attenuation length.
56 digPar.setAttenuationLength(300.0)
57 # Photoelectron signal attenuation frequency in ns^{-1}.
58 # Value from T2K paper by F. Retiere: PoS (PD07) 017: 1.0 / 8.75.
59 digPar.setPEAttenuationFrequency(0.11428571428571428571)
60 # Mean SiPM noise (negative: turned off).
61 digPar.setMeanSiPMNoise(-1)
62 # Constant background.
63 digPar.setEnableConstBkg(False)
64 
65 if (mc):
66  dbImporter.setIOV(1002, 0, 1002, -1)
67  dbImporter.importScintillatorDigitizationParameters(digPar)
68 
69  dbImporter.setIOV(1003, 0, 1003, -1)
70  dbImporter.importScintillatorDigitizationParameters(digPar)
71 
72  dbImporter.setIOV(0, 0, 0, -1)
73  dbImporter.importScintillatorDigitizationParameters(digPar)
74 
75 else:
76  dbImporter.setIOV(0, 0, -1, -1)
77  dbImporter.importScintillatorDigitizationParameters(digPar)