Skip to content

Commit 72a1dc1

Browse files
committed
AOD merging as part of workflow
1 parent 91af2fb commit 72a1dc1

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

MC/bin/o2dpg_sim_workflow.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,11 +283,12 @@ def getDPL_global_options(bigshm=False,nosmallrate=False):
283283
--ptHatMax=' + str(PTHATMAX)
284284
if WEIGHTPOW > -1:
285285
SGN_CONFIG_task['cmd'] = SGN_CONFIG_task['cmd'] + ' --weightPow=' + str(WEIGHTPOW)
286-
workflow['stages'].append(SGN_CONFIG_task)
287286
# elif GENERATOR == 'extgen': what do we do if generator is not pythia8?
288287
# NOTE: Generator setup might be handled in a different file or different files (one per
289288
# possible generator)
290289

290+
workflow['stages'].append(SGN_CONFIG_task)
291+
291292
# -----------------
292293
# transport signals
293294
# -----------------
@@ -465,11 +466,24 @@ def createRestDigiTask(name, det='ALLSMALLER'):
465466
if usebkgcache:
466467
aodneeds += [ BKG_KINEDOWNLOADER_TASK['name'] ]
467468

469+
aod_df_id = '{0:03}'.format(tf)
470+
468471
AODtask = createTask(name='aod_'+str(tf), needs=aodneeds, tf=tf, cwd=timeframeworkdir, lab=["AOD"], mem='4000', cpu='1')
469472
AODtask['cmd'] = ('','ln -nfs ../bkg_Kine.root . ;')[doembedding]
470-
AODtask['cmd'] += 'o2-aod-producer-workflow --reco-mctracks-only 1 --aod-writer-keep dangling --aod-writer-resfile \"AO2D\" --aod-writer-resmode UPDATE --aod-timeframe-id ' + str(tf) + ' ' + getDPL_global_options(bigshm=True)
473+
AODtask['cmd'] += 'o2-aod-producer-workflow --reco-mctracks-only 1 --aod-writer-keep dangling --aod-writer-resfile AO2D'
474+
AODtask['cmd'] += ' --aod-timeframe-id ${ALIEN_PROC_ID}' + aod_df_id + ' ' + getDPL_global_options(bigshm=True)
471475
workflow['stages'].append(AODtask)
472476

477+
# AOD merging / combination step
478+
AOD_merge_task = createTask(name='aodmerge_'+str(tf), needs= [ AODtask['name'] ], tf=tf, cwd=timeframeworkdir, lab=["AOD"], mem='2000', cpu='1')
479+
AOD_merge_task['cmd'] = '[ -f ../AO2D.root ] && mv ../AO2D.root ../AO2D_old.root;'
480+
AOD_merge_task['cmd'] += ' echo "./AO2D.root" > input.txt;'
481+
AOD_merge_task['cmd'] += ' [ -f ../AO2D_old.root ] && echo "../AO2D_old.root" >> input.txt;'
482+
AOD_merge_task['cmd'] += ' o2-aod-merger --output ../AO2D.root;'
483+
AOD_merge_task['cmd'] += ' rm ../AO2D_old.root || true'
484+
AOD_merge_task['semaphore'] = 'aodmerge' #<---- this is making sure that only one merge is running at any time
485+
workflow['stages'].append(AOD_merge_task)
486+
473487
def trimString(cmd):
474488
return ' '.join(cmd.split())
475489

0 commit comments

Comments
 (0)