30def addNTUPMergeSubsteps(executorSet, skip_post_processing=False):
31
32 intermediateStep = 'NTUP_PHYSVAL_MRG0'
33 try:
34 if skip_post_processing:
35 msg.debug("User requested to SKIP post-processing ('--skipPostProcessing' [%s]), so we'll just do merging and skip running post-processing.", skip_post_processing)
36 out_data = ['NTUP_PHYSVAL_MRG']
37 else:
38 msg.debug("We'll run merging and post-processing (implemented for ID track monitoring, EGamma, and BTagging).")
39 out_data = [intermediateStep]
40
41 executorSet.add(NTUPMergeExecutor(name='NTUPLEMergePHYSVAL', exe='hadd', inData=['NTUP_PHYSVAL'], outData=out_data, exeArgs=[]))
42
43 if not skip_post_processing:
44 executorSet.add(NTUPMergeExecutor(name='NTUPLEPHYSVALIDTrackingPostProc', exe='postProcessIDPVMHistos', inData=[intermediateStep], outData=['NTUP_PHYSVAL_MRG1'], exeArgs=[]))
45 executorSet.add(NtupPhysValPostProcessingExecutor(name='NTUPLEPHYSVALPostProc', exe='physvalPostProcessing.py', inData=['NTUP_PHYSVAL_MRG1'], outData=['NTUP_PHYSVAL_MRG'],exeArgs=[]))
46
47
48 extraNTUPs = getExtraDPDList(NTUPOnly = True)
49 for ntup in extraNTUPs:
50 executorSet.add(NTUPMergeExecutor(name='NTUPLEMerge'+ntup.name.replace('_',''), exe ='hadd', inData=[ntup.name], outData=[ntup.name+'_MRG'], exeArgs=[]))
51 except ImportError as e:
52 msg.warning("Failed to get D3PD lists - probably D3PDs are broken in this release: {0}".format(e))
53
54