4 from ROOT
import Belle2
9 Example script showing how to train neural networks
10 to be used with the CDCTriggerNeuroModule.
12 This script uses realistic values for the amount of training data
13 and the number of runs, so it will run a long time.
21 basf2.set_random_seed(1)
28 mlpname =
'NeuroTrigger.root'
29 trainname =
'NeuroTriggerTraindata.root'
30 logname =
'NeuroTriggerLog'
36 particlegun_params = {
37 'pdgCodes': [-13, 13],
39 'momentumGeneration':
'inversePt',
40 'momentumParams': [0.3, 10.],
41 'thetaGeneration':
'uniformCos',
42 'thetaParams': [23, 144],
43 'phiGeneration':
'uniform',
44 'phiParams': [0, 360],
45 'vertexGeneration':
'uniform',
46 'xVertexParams': [0, 0.0],
47 'yVertexParams': [0, 0.0],
48 'zVertexParams': [-50.0, 50.0]}
51 bkgdir =
'/sw/belle2/bkg.mixing/'
58 main = basf2.create_path()
62 main.add_module(
'EventInfoSetter', evtNumList=1000000000)
63 main.add_module(
'Progress')
64 main.add_module(
'Gearbox')
65 main.add_module(
'Geometry', components=[
'BeamPipe',
'Cryostat',
67 'MagneticFieldConstant4LimitedRCDC'])
68 particlegun = basf2.register_module(
'ParticleGun')
69 particlegun.param(particlegun_params)
70 main.add_module(particlegun)
71 main.add_module(
'FullSim')
73 main.add_module(
'BeamBkgMixer',
74 backgroundFiles=glob.glob(os.path.join(bkgdir,
'*usual*.root')),
76 main.add_module(
'CDCDigitizer')
83 main.add_module(
'CDCTriggerTSF',
86 main.add_module(
'CDCTrigger2DFinder')
89 main.add_module(
'CDCTriggerETF', trueEventTime=
True)
98 main.add_module(
'CDCTriggerMCMatcher', minAxial=4, axialOnly=
True,
99 relateClonesAndMerged=
False,
100 TrgTrackCollectionName=
'TRGCDC2DFinderTracks')
102 main.add_module(
'CDCTriggerNeuroTrainer',
104 inputCollectionName=
'TRGCDC2DFinderTracks',
105 targetCollectionName=
'MCParticles',
106 trainOnRecoTracks=
False,
108 filename=os.path.join(mlpdir, mlpname),
109 trainFilename=os.path.join(traindir, trainname),
110 logFilename=os.path.join(logdir, logname),
114 SLpatternMask=[int(
'010101010', 2)],
115 SLpattern=[int(
'111111111', 2),
119 int(
'111111101', 2)],
121 invptRange=[[-5., 5.]],
122 phiRange=[[0., 360.]],
123 thetaRange=[[0., 180.]],
124 selectSectorByMC=
False,
125 invptRangeTrain=[[-5., 5.]],
126 phiRangeTrain=[[0., 360.]],
127 thetaRangeTrain=[[0., 180.]],
129 multiplyHidden=
False,
135 outputScale=[[-50., 50., 0., 180.]],
155 logLevel=basf2.LogLevel.DEBUG,
158 basf2.logging.set_info(basf2.LogLevel.DEBUG, basf2.LogInfo.LEVEL | basf2.LogInfo.MESSAGE)
165 print(basf2.statistics)