12 from basf2
import create_path, set_log_level, B2ERROR, B2INFO, LogLevel, process, statistics
14 from svd
import add_svd_simulation
33 if argvs[1] ==
'phase2':
36 elif argvs[1] ==
'phase3':
39 elif argvs[1] ==
'phase31':
43 B2ERROR(
'The argument can be either phase2, phase3 or phase31')
46 B2ERROR(
'No argument given specifying the running phase')
47 print(
'Usage: basf2 ' + argvs[0] +
' phase2/phase3/phase31 [scaleFactor=1 ' +
48 'PXDmode=ungated/gated]')
54 scaleFactor = float(argvs[2])
58 if len(argvs) > 3
and argvs[3] ==
'gated':
63 if 'BELLE2_BACKGROUND_MIXING_DIR' not in os.environ:
64 B2ERROR(
'BELLE2_BACKGROUND_MIXING_DIR variable is not set - it must contain the path to BG samples')
67 bg = glob.glob(os.environ[
'BELLE2_BACKGROUND_MIXING_DIR'] +
'/*.root')
69 B2ERROR(
'No root files found in folder ' + os.environ[
'BELLE2_BACKGROUND_MIXING_DIR'])
72 B2INFO(
'Making BG overlay sample for ' + argvs[1] +
' with ECL compression = ' +
73 str(compression) +
' and PXD in ' + mode +
' mode')
74 B2INFO(
'Using background samples from folder ' + os.environ[
'BELLE2_BACKGROUND_MIXING_DIR'])
75 B2INFO(
'With scaling factor: ' + str(scaleFactor))
77 set_log_level(LogLevel.WARNING)
83 main.add_module(
'EventInfoSetter', evtNumList=[100], expList=[expNo])
86 main.add_module(
'Gearbox')
89 main.add_module(
'Geometry')
92 main.add_module(
'SimulateEventLevelTriggerTimeInfo')
96 main.add_module(
'BeamBkgMixer', backgroundFiles=bg, overallScaleFactor=scaleFactor,
97 minTimePXD=-20000.0, maxTimePXD=20000.0)
100 main.add_module(
'PXDInjectionVetoEmulator')
103 main.add_module(
'PXDDigitizer')
106 main.add_module(
'BeamBkgMixer', backgroundFiles=bg, overallScaleFactor=scaleFactor)
109 main.add_module(
'PXDDigitizer', IntegrationWindow=
False)
112 add_svd_simulation(main)
115 main.add_module(
'CDCDigitizer')
118 main.add_module(
'TOPDigitizer')
121 main.add_module(
'ARICHDigitizer')
124 main.add_module(
'ECLDigitizer', WaveformMaker=
True, CompressionAlgorithm=compression)
127 main.add_module(
'KLMDigitizer')
130 main.add_module(
'TRGECLBGTCHit')
133 branches = [
'EventLevelTriggerTimeInfo',
'PXDDigits',
'SVDShaperDigits',
'CDCHits',
'TOPDigits',
134 'ARICHDigits',
'ECLWaveforms',
'KLMDigits',
'TRGECLBGTCHits']
136 branches += [
'PXDInjectionBGTiming']
137 main.add_module(
'RootOutput', outputFileName=
'BGforOverlay.root', branchNames=branches)
140 main.add_module(
'Progress')