Skip to content

Commit 1f7f0dd

Browse files
authored
WIP: Allow to generate events before timeframe start (#1768)
Introducing --orbits-early <N> option in MC workflow generation. This, together with --pregenCollContext, will simulate events in the <N> orbits before each timeframe start, so that (in particular TPC) readout sees digits from the previous timeframe. For now, this just accepts multiple orbits. Finer granularity will come.
1 parent f2a05a2 commit 1f7f0dd

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

MC/bin/o2dpg_sim_workflow.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@
118118
parser.add_argument('--combine-tpc-clusterization', action='store_true', help=argparse.SUPPRESS) #<--- useful for small productions (pp, low interaction rate, small number of events)
119119
parser.add_argument('--first-orbit', default=0, type=int, help=argparse.SUPPRESS) # to set the first orbit number of the run for HBFUtils (only used when anchoring)
120120
# (consider doing this rather in O2 digitization code directly)
121+
parser.add_argument('--orbits-early', default=0, type=int, help=argparse.SUPPRESS) # number of orbits to start simulating earlier
122+
# to reduce start of timeframe effects in MC --> affects collision context
121123
parser.add_argument('--sor', default=-1, type=int, help=argparse.SUPPRESS) # may pass start of run with this (otherwise it is autodetermined from run number)
122124
parser.add_argument('--run-anchored', action='store_true', help=argparse.SUPPRESS)
123125
parser.add_argument('--alternative-reco-software', default="", help=argparse.SUPPRESS) # power feature to set CVFMS alienv software version for reco steps (different from default)
@@ -607,7 +609,7 @@ def getDPL_global_options(bigshm=False, ccdbbackend=True):
607609
print('o2dpg_sim_workflow: Error! CM or Beam Energy not set!!!')
608610
exit(1)
609611

610-
# Determine interation rate
612+
# Determine interaction rate
611613
signalprefix='sgn_' + str(tf)
612614
INTRATE=int(args.interactionRate)
613615
if INTRATE <= 0:
@@ -622,7 +624,10 @@ def getDPL_global_options(bigshm=False, ccdbbackend=True):
622624
PbPbXSec=8. # expected PbPb cross section
623625
QEDXSecExpected=35237.5 # expected magnitude of QED cross section
624626
PreCollContextTask=createTask(name='precollcontext_' + str(tf), needs=precollneeds, tf=tf, cwd=timeframeworkdir, cpu='1')
625-
PreCollContextTask['cmd']='${O2_ROOT}/bin/o2-steer-colcontexttool -i ' + signalprefix + ',' + str(INTRATE) + ',' + str(args.ns) + ':' + str(args.ns) + ' --show-context ' + ' --timeframeID ' + str(tf-1 + int(args.production_offset)*NTIMEFRAMES) + ' --orbitsPerTF ' + str(orbitsPerTF) + ' --orbits ' + str(orbitsPerTF) + ' --seed ' + str(TFSEED) + ' --noEmptyTF --first-orbit ' + str(args.first_orbit)
627+
PreCollContextTask['cmd']='${O2_ROOT}/bin/o2-steer-colcontexttool -i ' + signalprefix + ',' + str(INTRATE) + ',' + str(args.ns) + ':' + str(args.ns) \
628+
+ ' --show-context ' + ' --timeframeID ' + str(tf-1 + int(args.production_offset)*NTIMEFRAMES) \
629+
+ ' --orbitsPerTF ' + str(orbitsPerTF) + ' --orbits ' + str(orbitsPerTF + args.orbits_early) \
630+
+ ' --seed ' + str(TFSEED) + ' --noEmptyTF --first-orbit ' + str(args.first_orbit - args.orbits_early)
626631
PreCollContextTask['cmd'] += ' --bcPatternFile ccdb' # <--- the object should have been set in (local) CCDB
627632
if includeQED:
628633
qedrate = INTRATE * QEDXSecExpected / PbPbXSec # hadronic interaction rate * cross_section_ratio

0 commit comments

Comments
 (0)