Skip to content

Commit 4fc4713

Browse files
ehellbarsawenzel
authored andcommitted
o2dpg_sim_workflow.py: use the helper function to add workflows
1 parent 89ef540 commit 4fc4713

1 file changed

Lines changed: 32 additions & 42 deletions

File tree

MC/bin/o2dpg_sim_workflow.py

Lines changed: 32 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,17 @@ def cleanDetectorInputList(inputlist):
331331
del activeDetectors['ZDC']
332332

333333
def addWhenActive(detID, needslist, appendstring):
334-
if isActive(detID):
334+
"""Adds item to a list if detector(s) is (are) active
335+
336+
Args:
337+
detID: str
338+
detector to check, can also be comma-separated list of detectors
339+
needslist: list
340+
list, e.g. of task dicts added to workflow['stages']
341+
appendstring: str, dict, ...
342+
to be appended to needslist
343+
"""
344+
if all(isActive(part) for part in detID.split(",")):
335345
needslist.append(appendstring)
336346

337347
def retrieve_sor(run_number):
@@ -1175,8 +1185,7 @@ def putConfigValues(listOfMainKeys=[], localCF = {}, globalTFConfig = True):
11751185
+ ' --onlyDet TRD --interactionRate ' + str(INTRATE) + ' --incontext ' + str(CONTEXTFILE) + ' --disable-write-ini' \
11761186
+ putConfigValues(localCF={"TRDSimParams.digithreads" : NWORKERS_TF, "DigiParams.seed" : str(TFSEED)}) + " --forceSelectedDets"
11771187
TRDDigitask['cmd'] += ('',' --disable-mc')[args.no_mc_labels]
1178-
if isActive("TRD"):
1179-
workflow['stages'].append(TRDDigitask)
1188+
addWhenActive("TRD", workflow['stages'], TRDDigitask)
11801189

11811190
# these are digitizers which are single threaded
11821191
def createRestDigiTask(name, det='ALLSMALLER'):
@@ -1422,8 +1431,7 @@ def getDigiTaskName(det):
14221431
'--disable-slewing-calib', # because effect not simulated in MC
14231432
putConfigValues()
14241433
])
1425-
if isActive("FT0"):
1426-
workflow['stages'].append(FT0RECOtask)
1434+
addWhenActive("FT0", workflow['stages'], FT0RECOtask)
14271435

14281436
#<--------- ITS-TPC track matching task
14291437
ITSTPCMATCHtask=createTask(name='itstpcMatch_'+str(tf), needs=[TPCRECOtask['name'], ITSRECOtask['name'], FT0RECOtask['name'] if isActive("FT0") else None], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='8000', relative_cpu=3/8)
@@ -1455,8 +1463,7 @@ def getDigiTaskName(det):
14551463
getDPL_global_options(),
14561464
putConfigValues(),
14571465
('',' --disable-mc')[args.no_mc_labels]])
1458-
if isActive("TRD"):
1459-
workflow['stages'].append(TRDTRACKINGtask)
1466+
addWhenActive("TRD", workflow['stages'], TRDTRACKINGtask)
14601467

14611468
#<--------- TRD global tracking
14621469
# FIXME This is so far a workaround to avoud a race condition for trdcalibratedtracklets.root
@@ -1476,8 +1483,7 @@ def getDigiTaskName(det):
14761483
'--track-sources ' + trd_track_sources,
14771484
tpc_corr_scaling_options,
14781485
tpc_corr_options_mc])
1479-
if isActive("TRD"):
1480-
workflow['stages'].append(TRDTRACKINGtask2)
1486+
addWhenActive("TRD", workflow['stages'], TRDTRACKINGtask2)
14811487

14821488
#<--------- TOF reco task
14831489
TOFRECOtask = createTask(name='tofmatch_'+str(tf), needs=[ITSTPCMATCHtask['name'], getDigiTaskName("TOF")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
@@ -1488,8 +1494,7 @@ def getDigiTaskName(det):
14881494
putConfigValues(),
14891495
('',' --disable-mc')[args.no_mc_labels]
14901496
])
1491-
if isActive('TOF'):
1492-
workflow['stages'].append(TOFRECOtask)
1497+
addWhenActive("TOF", workflow['stages'], TOFRECOtask)
14931498

14941499
#<--------- TOF-TPC(-ITS) global track matcher workflow
14951500
toftpcmatchneeds = [TOFRECOtask['name'],
@@ -1517,8 +1522,7 @@ def getDigiTaskName(det):
15171522
tpc_corr_options_mc
15181523
]
15191524
TOFTPCMATCHERtask['cmd'] = task_finalizer(tofmatcher_cmd_parts)
1520-
if isActive('TOF'):
1521-
workflow['stages'].append(TOFTPCMATCHERtask)
1525+
addWhenActive("TOF", workflow['stages'], TOFTPCMATCHERtask)
15221526

15231527
# MFT reco: needing access to kinematics (when assessment enabled)
15241528
mftreconeeds = [getDigiTaskName("MFT")]
@@ -1537,8 +1541,7 @@ def getDigiTaskName(det):
15371541
'MFTClustererParam']),
15381542
('','--disable-mc')[args.no_mc_labels],
15391543
('','--run-assessment')[args.mft_assessment_full]])
1540-
if isActive("MFT"):
1541-
workflow['stages'].append(MFTRECOtask)
1544+
addWhenActive("MFT", workflow['stages'], MFTRECOtask)
15421545

15431546
# MCH reco: needing access to kinematics ... so some extra logic needed here
15441547
mchreconeeds = [getDigiTaskName("MCH")]
@@ -1554,8 +1557,7 @@ def getDigiTaskName(det):
15541557
putConfigValues(),
15551558
('',' --disable-mc')[args.no_mc_labels],
15561559
'--enable-clusters-root-output'])
1557-
if isActive("MCH"):
1558-
workflow['stages'].append(MCHRECOtask)
1560+
addWhenActive("MCH", workflow['stages'], MCHRECOtask)
15591561

15601562
#<--------- MID reco workflow
15611563
MIDRECOtask = createTask(name='midreco_'+str(tf), needs=[getDigiTaskName("MID")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
@@ -1566,26 +1568,23 @@ def getDigiTaskName(det):
15661568
MIDRECOtask['cmd'] += task_finalizer(['${O2_ROOT}/bin/o2-mid-reco-workflow',
15671569
getDPL_global_options(),
15681570
putConfigValues(),('',' --disable-mc')[args.no_mc_labels]])
1569-
if isActive('MID'):
1570-
workflow['stages'].append(MIDRECOtask)
1571+
addWhenActive("MID", workflow['stages'], MIDRECOtask)
15711572

15721573
#<--------- FDD reco workflow
15731574
FDDRECOtask = createTask(name='fddreco_'+str(tf), needs=[getDigiTaskName("FDD")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
15741575
FDDRECOtask['cmd'] = task_finalizer(['${O2_ROOT}/bin/o2-fdd-reco-workflow',
15751576
getDPL_global_options(ccdbbackend=False),
15761577
putConfigValues(),
15771578
('',' --disable-mc')[args.no_mc_labels]])
1578-
if isActive("FDD"):
1579-
workflow['stages'].append(FDDRECOtask)
1579+
addWhenActive("FDD", workflow['stages'], FDDRECOtask)
15801580

15811581
#<--------- FV0 reco workflow
15821582
FV0RECOtask = createTask(name='fv0reco_'+str(tf), needs=[getDigiTaskName("FV0")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
15831583
FV0RECOtask['cmd'] = task_finalizer(['${O2_ROOT}/bin/o2-fv0-reco-workflow',
15841584
getDPL_global_options(),
15851585
putConfigValues(),
15861586
('',' --disable-mc')[args.no_mc_labels]])
1587-
if isActive("FV0"):
1588-
workflow['stages'].append(FV0RECOtask)
1587+
addWhenActive("FV0", workflow['stages'], FV0RECOtask)
15891588

15901589
# calorimeters
15911590
#<--------- EMC reco workflow
@@ -1617,8 +1616,7 @@ def getDigiTaskName(det):
16171616
getDPL_global_options(),
16181617
'--subspec 0',
16191618
('',' --disable-mc')[args.no_mc_labels]])
1620-
if isActive("EMC"):
1621-
workflow['stages'].append(EMCRECOtask)
1619+
addWhenActive("EMC", workflow['stages'], EMCRECOtask)
16221620

16231621
#<--------- PHS reco workflow
16241622
PHSRECOtask = createTask(name='phsreco_'+str(tf), needs=[getDigiTaskName("PHS")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
@@ -1627,8 +1625,7 @@ def getDigiTaskName(det):
16271625
getDPL_global_options(),
16281626
putConfigValues(),
16291627
('',' --disable-mc')[args.no_mc_labels]])
1630-
if isActive("PHS"):
1631-
workflow['stages'].append(PHSRECOtask)
1628+
addWhenActive("PHS", workflow['stages'], PHSRECOtask)
16321629

16331630
#<--------- CPV reco workflow
16341631
CPVRECOtask = createTask(name='cpvreco_'+str(tf), needs=[getDigiTaskName("CPV")], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
@@ -1637,8 +1634,7 @@ def getDigiTaskName(det):
16371634
getDPL_global_options(),
16381635
putConfigValues(),
16391636
('',' --disable-mc')[args.no_mc_labels]])
1640-
if isActive("CPV"):
1641-
workflow['stages'].append(CPVRECOtask)
1637+
addWhenActive("CPV", workflow['stages'], CPVRECOtask)
16421638

16431639
#<--------- ZDC reco workflow
16441640
ZDCRECOtask = createTask(name='zdcreco_'+str(tf), needs=[getDigiTaskName("ZDC")], tf=tf, cwd=timeframeworkdir, lab=["RECO", "ZDC"])
@@ -1647,8 +1643,7 @@ def getDigiTaskName(det):
16471643
getDPL_global_options(),
16481644
putConfigValues(),
16491645
('',' --disable-mc')[args.no_mc_labels]])
1650-
if isActive("ZDC"):
1651-
workflow['stages'].append(ZDCRECOtask)
1646+
addWhenActive("ZDC", workflow['stages'], ZDCRECOtask)
16521647

16531648
## forward matching
16541649
#<--------- MCH-MID forward matching
@@ -1658,8 +1653,7 @@ def getDigiTaskName(det):
16581653
getDPL_global_options(ccdbbackend=False),
16591654
putConfigValues(),
16601655
('',' --disable-mc')[args.no_mc_labels]])
1661-
if isActive("MID") and isActive("MCH"):
1662-
workflow['stages'].append(MCHMIDMATCHtask)
1656+
addWhenActive("MID,MCH", workflow['stages'], MCHMIDMATCHtask)
16631657

16641658
#<--------- MFT-MCH forward matching
16651659
forwardmatchneeds = [MCHRECOtask['name'],
@@ -1679,8 +1673,7 @@ def getDigiTaskName(det):
16791673
['${O2_ROOT}/bin/o2-globalfwd-assessment-workflow',
16801674
getDPL_global_options(),
16811675
('',' --disable-mc')[args.no_mc_labels]])
1682-
if isActive("MFT") and isActive("MCH"):
1683-
workflow['stages'].append(MFTMCHMATCHtask)
1676+
addWhenActive("MFT,MCH", workflow['stages'], MFTMCHMATCHtask)
16841677

16851678
if args.fwdmatching_save_trainingdata == True:
16861679
MFTMCHMATCHTraintask = createTask(name='mftmchMatchTrain_'+str(tf), needs=[MCHMIDMATCHtask['name'], MFTRECOtask['name']], tf=tf, cwd=timeframeworkdir, lab=["RECO"], mem='1500')
@@ -1695,8 +1688,7 @@ def getDigiTaskName(det):
16951688
['${O2_ROOT}/bin/o2-hmpid-digits-to-clusters-workflow',
16961689
getDPL_global_options(ccdbbackend=False),
16971690
putConfigValues()])
1698-
if isActive("HMP"):
1699-
workflow['stages'].append(HMPRECOtask)
1691+
addWhenActive("HMP", workflow['stages'], HMPRECOtask)
17001692

17011693
#<--------- HMP forward matching
17021694
hmpmatchneeds = [HMPRECOtask['name'],
@@ -1712,8 +1704,7 @@ def getDigiTaskName(det):
17121704
getDPL_global_options(),
17131705
putConfigValues()
17141706
])
1715-
if isActive("HMP"):
1716-
workflow['stages'].append(HMPMATCHtask)
1707+
addWhenActive("HMP", workflow['stages'], HMPMATCHtask)
17171708

17181709
#<---------- primary vertex finding
17191710
pvfinder_sources = dpl_option_from_config(anchorConfig,
@@ -2156,9 +2147,8 @@ def remove_json_prefix(path):
21562147
TPCTStask['cmd'] += ' --primary-vertices '
21572148
TPCTStask['cmd'] += ' | o2-tpc-time-series-workflow --enable-unbinned-root-output --sample-unbinned-tsallis --sampling-factor 0.01 '
21582149
TPCTStask['cmd'] += putConfigValues() + ' ' + getDPL_global_options(bigshm=True)
2159-
if isActive('TOF') and isActive('TPC') and isActive('FT0'):
2160-
# could be relaxed or changed once the timerseries worklow is more reactive to input cluster- and track-types
2161-
workflow['stages'].append(TPCTStask)
2150+
# could be relaxed or changed once the timerseries worklow is more reactive to input cluster- and track-types
2151+
addWhenActive("TOF,TPC,FT0", workflow['stages'], TPCTStask)
21622152

21632153
# cleanup
21642154
# --------

0 commit comments

Comments
 (0)