Belle II Software  release-05-01-25
EclPureCsIExample.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
10 
11 from basf2 import *
12 import glob
13 from ROOT import Belle2
14 from modularAnalysis import *
15 from simulation import add_simulation
16 from reconstruction import add_reconstruction, add_mdst_output
17 from beamparameters import add_beamparameters
18 
19 main = create_path()
20 
21 eventinfosetter = register_module('EventInfoSetter')
22 eventinfosetter.param({'evtNumList': [1000], 'runList': [1]})
23 main.add_module(eventinfosetter)
24 
25 import random
26 intseed = random.randint(2, 2)
27 
28 pGun = register_module('ParticleGun')
29 param_pGun = {
30  'pdgCodes': [22],
31  'nTracks': 1,
32  'momentumGeneration': 'fixed',
33  'momentumParams': [.1],
34  'thetaGeneration': 'uniform',
35  'thetaParams': [13., 150.],
36  'phiGeneration': 'uniform',
37  'phiParams': [0., 360.],
38  'vertexGeneration': 'uniform',
39  'xVertexParams': [0., 0.],
40  'yVertexParams': [0., 0.],
41  'zVertexParams': [0., 0.],
42 }
43 pGun.param(param_pGun)
44 main.add_module(pGun)
45 
46 bkg = glob.glob(os.environ['BELLE2_BACKGROUND_DIR'] + '*.root')
47 
48 add_simulation(main)
49 add_reconstruction(main)
50 
51 ecl_digitizerPureCsI = register_module('ECLDigitizerPureCsI')
52 ecl_digitizerPureCsI.param('adcTickFactor', 8)
53 ecl_digitizerPureCsI.param('sigmaTrigger', 0.)
54 ecl_digitizerPureCsI.param('elecNoise', 1.3)
55 ecl_digitizerPureCsI.param('photostatresolution', 0.4)
56 ecl_digitizerPureCsI.param('sigmaTrigger', 0)
57 ecl_digitizerPureCsI.param('LastRing', 12)
58 ecl_digitizerPureCsI.param('NoCovMatrix', 1)
59 ecl_digitizerPureCsI.param('Background', 0)
60 main.add_module(ecl_digitizerPureCsI)
61 
62 # Ii is IMPORTANT to set 'simulatePure' to 1 for pure CsI simulation!"
63 ecl_calibrator_PureCsI = register_module('ECLDigitCalibratorPureCsI')
64 ecl_calibrator_PureCsI.param('simulatePure', 1)
65 main.add_module(ecl_calibrator_PureCsI)
66 
67 ecl_crfinder_PureCsI = register_module('ECLCRFinderPureCsI')
68 main.add_module(ecl_crfinder_PureCsI)
69 
70 ecl_lmfinder_PureCsI = register_module('ECLLocalMaximumFinderPureCsI')
71 main.add_module(ecl_lmfinder_PureCsI)
72 
73 ecl_splitterN1_PureCsI = register_module('ECLSplitterN1PureCsI')
74 main.add_module(ecl_splitterN1_PureCsI)
75 
76 ecl_splitterN2_PureCsI = register_module('ECLSplitterN2PureCsI')
77 main.add_module(ecl_splitterN2_PureCsI)
78 
79 ecl_showercorrection_PureCsI = register_module('ECLShowerCorrectorPureCsI')
80 main.add_module(ecl_showercorrection_PureCsI)
81 
82 ecl_showercalibration_PureCsI = register_module('ECLShowerCalibratorPureCsI')
83 main.add_module(ecl_showercalibration_PureCsI)
84 
85 ecl_showershape_PureCsI = register_module('ECLShowerShapePureCsI')
86 main.add_module(ecl_showershape_PureCsI)
87 
88 ecl_covariance_PureCsI = register_module('ECLCovarianceMatrixPureCsI')
89 main.add_module(ecl_covariance_PureCsI)
90 
91 ecl_finalize_PureCsI = register_module('ECLFinalizerPureCsI')
92 main.add_module(ecl_finalize_PureCsI)
93 
94 ecl_mcmatch_PureCsI = register_module('MCMatcherECLClustersPureCsI')
95 main.add_module(ecl_mcmatch_PureCsI)
96 
97 ecldataanalysis = register_module('ECLDataAnalysis')
98 ecldataanalysis.param('writeToRoot', 1)
99 ecldataanalysis.param('rootFileName', 'Ecl_Pure_CsI_Example.root')
100 ecldataanalysis.param('doSimulation', 0)
101 ecldataanalysis.param('doTracking', 1)
102 ecldataanalysis.param('doPureCsIStudy', 1)
103 main.add_module(ecldataanalysis)
104 
105 output = register_module('RootOutput')
106 output.param('outputFileName', 'Ecl_Pure_mdst.root')
107 main.add_module(output)
108 
109 process(main)
110 print(statistics)