5 from optparse
import OptionParser
20 parser = OptionParser()
21 parser.add_option(
'-n',
'--nevents', dest=
'nevents', default=1000, help=
'Number of events to process')
22 parser.add_option(
'-f',
'--file', dest=
'filename', default=
'ARICHEvents.root')
23 parser.add_option(
'-r',
'--hepr', action=
"store_true", dest=
'hepr', default=
False, help=
'Visualisation with heprep')
24 parser.add_option(
'-o',
'--overlap', action=
"store_true", dest=
'overlap', default=
False, help=
'Run overlap checker')
25 parser.add_option(
'-b',
'--rootbatch', action=
"store_true", dest=
'rootbatch',
26 default=
False, help=
'Run analysis root script in batch mode')
27 parser.add_option(
'-m',
'--rootoff', action=
"store_true", dest=
'rootoff', default=
False, help=
'Do not run root script in the end')
29 (options, args) = parser.parse_args()
31 home = os.environ[
'BELLE2_LOCAL_DIR']
37 set_log_level(LogLevel.ERROR)
43 eventinfosetter = register_module(
'EventInfoSetter')
44 if not (options.hepr):
45 if not (options.overlap):
46 eventinfosetter.param({
'evtNumList': [int(options.nevents)],
'runList': [1]})
48 eventinfosetter.param({
'evtNumList': [1],
'runList': [1]})
50 eventinfosetter.param({
'evtNumList': [1],
'runList': [1]})
51 main.add_module(eventinfosetter)
54 histo = register_module(
'HistoManager')
55 histo.param(
'histoFileName',
'DQMhistograms.root')
56 main.add_module(histo)
59 gearbox = register_module(
'Gearbox')
60 main.add_module(gearbox)
64 geometry = register_module(
'Geometry')
65 geometry.param(
'components', [
68 main.add_module(geometry)
71 particlegun = register_module(
'ParticleGun')
72 particlegun.param(
'pdgCodes', [211, -211, 321, -321])
73 particlegun.param(
'nTracks', 1)
75 particlegun.param(
'momentumGeneration',
'uniform')
76 particlegun.param(
'momentumParams', [0.5, 4])
78 particlegun.param(
'thetaGeneration',
'uniformCos')
79 particlegun.param(
'thetaParams', [17, 35])
80 particlegun.param(
'phiGeneration',
'uniform')
81 particlegun.param(
'phiParams', [0, 360])
82 particlegun.param(
'vertexGeneration',
'fixed')
83 particlegun.param(
'xVertexParams', [0])
84 particlegun.param(
'yVertexParams', [0])
85 particlegun.param(
'zVertexParams', [0])
86 particlegun.param(
'independentVertices',
False)
87 main.add_module(particlegun)
90 simulation = register_module(
'FullSim')
93 print(
'Visualisation with HepRep')
94 simulation.param(
'EnableVisualization',
True)
95 simulation.param(
'UICommandsAtIdle', [
96 '/vis/open HepRepFile',
98 '/vis/scene/add/volume',
99 '/vis/sceneHandler/attach',
101 '/vis/scene/add/trajectories smooth',
102 '/vis/scene/add/hits'
105 main.add_module(simulation)
108 if (options.overlap):
109 print(
'Check for volume intersection/overlaps')
110 overlapchecker = register_module(
'OverlapChecker')
111 main.add_module(overlapchecker)
114 arichDigi = register_module(
'ARICHDigitizer')
115 main.add_module(arichDigi)
118 arichHits = register_module(
'ARICHFillHits')
119 main.add_module(arichHits)
123 arichreco = register_module(
'ARICHReconstructor')
125 arichreco.param(
'inputTrackType', 1)
127 arichreco.param(
'storePhotons', 1)
128 main.add_module(arichreco)
132 arichNtuple = register_module(
'ARICHNtuple')
133 arichNtuple.param(
'outputFile', options.filename)
134 main.add_module(arichNtuple)
138 arichdqm = register_module(
'ARICHDQM')
139 main.add_module(arichdqm)
153 progress = register_module(
'Progress')
154 main.add_module(progress)
163 if (options.rootbatch):
164 com =
'root -l -b -q ' + options.filename +
' ' + home +
'/arich/utility/scripts/plotEfficiency.C'
166 com =
'root -l ' + options.filename +
' ' + home +
'/arich/utility/scripts/plotEfficiency.C'
168 if not (options.hepr):
169 if not (options.overlap):
170 if not (options.rootoff):
174 com =
'root -l -b -q ' +
'ARICHPerformance.root' +
' ' + home +
'/arich/utility/scripts/plotEfficiencyConvertTCanvasToHist.C'
175 if not (options.hepr):
176 if not (options.overlap):
177 if not (options.rootoff):