|
75 | 75 | parser.add_argument('--combine-smaller-digi', action='store_true', help=argparse.SUPPRESS) |
76 | 76 | parser.add_argument('--combine-tpc-clusterization', action='store_true', help=argparse.SUPPRESS) #<--- useful for small productions (pp, low interaction rate, small number of events) |
77 | 77 |
|
| 78 | +# QC related arguments |
| 79 | +parser.add_argument('--include-qc', action='store_true', help='a flag to include QC in the workflow') |
| 80 | + |
78 | 81 | args = parser.parse_args() |
79 | 82 | print (args) |
80 | 83 |
|
@@ -115,6 +118,7 @@ def getDPL_global_options(bigshm=False,nosmallrate=False): |
115 | 118 |
|
116 | 119 | doembedding=True if args.embedding=='True' or args.embedding==True else False |
117 | 120 | usebkgcache=args.use_bkg_from!=None |
| 121 | +includeQC=True if args.include_qc=='True' or args.include_qc==True else False |
118 | 122 |
|
119 | 123 | if doembedding: |
120 | 124 | if not usebkgcache: |
@@ -500,6 +504,52 @@ def createRestDigiTask(name, det='ALLSMALLER'): |
500 | 504 | PVFINDERtask['cmd'] = 'o2-primary-vertexing-workflow ' + getDPL_global_options(nosmallrate=False) |
501 | 505 | # PVFINDERtask['cmd'] += ' --vertexing-sources "ITS,ITS-TPC,ITS-TPC-TOF" --vetex-track-matching-sources "ITS,ITS-TPC,ITS-TPC-TOF"' |
502 | 506 | workflow['stages'].append(PVFINDERtask) |
| 507 | + |
| 508 | + if includeQC: |
| 509 | + |
| 510 | + ### ITS |
| 511 | + # fixme: not working yet, ITS will prepare a way to read clusters and tracks. Also ITSDictionary will be needed. |
| 512 | + # ITSClustersTracksQCneeds = [ITSRECOtask['name']] |
| 513 | + # ITSClustersTracksQCtask = createTask(name='itsClustersTracksQC_'+str(tf), needs=ITSClustersTracksQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 514 | + # ITSClustersTracksQCtask['cmd'] = 'o2-missing-reader | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/its-clusters-tracks-qc.json ' + getDPL_global_options(nosmallrate=False) |
| 515 | + # workflow['stages'].append(ITSClustersTracksQCtask) |
| 516 | + |
| 517 | + ### MFT |
| 518 | + # fixme: there is a bug in Check which causes a segfault, uncomment when the fix is merged |
| 519 | + # MFTDigitsQCneeds = [det_to_digitask["MFT"]['name']] |
| 520 | + # MFTDigitsQCtask = createTask(name='mftDigitsQC_'+str(tf), needs=MFTDigitsQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 521 | + # MFTDigitsQCtask['cmd'] = 'o2-qc-mft-digits-root-file-reader --mft-digit-infile=mftdigits.root | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/qc-mft-digit.json ' + getDPL_global_options(nosmallrate=False) |
| 522 | + # workflow['stages'].append(MFTDigitsQCtask) |
| 523 | + |
| 524 | + MFTClustersQCneeds = [MFTRECOtask['name']] |
| 525 | + MFTClustersQCtask = createTask(name='mftClustersQC_'+str(tf), needs=MFTClustersQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 526 | + MFTClustersQCtask['cmd'] = 'o2-qc-mft-clusters-root-file-reader --mft-cluster-infile=mftclusters.root | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/qc-mft-cluster.json ' + getDPL_global_options(nosmallrate=False) |
| 527 | + workflow['stages'].append(MFTClustersQCtask) |
| 528 | + |
| 529 | + MFTTracksQCneeds = [MFTRECOtask['name']] |
| 530 | + MFTTracksQCtask = createTask(name='mftTracksQC_'+str(tf), needs=MFTTracksQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 531 | + MFTTracksQCtask['cmd'] = 'o2-qc-mft-tracks-root-file-reader --mft-track-infile=mfttracks.root | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/qc-mft-track.json ' + getDPL_global_options(nosmallrate=False) |
| 532 | + workflow['stages'].append(MFTTracksQCtask) |
| 533 | + |
| 534 | + ### TPC |
| 535 | + TPCTrackingQCneeds = [TPCRECOtask['name']] |
| 536 | + TPCTrackingQCtask = createTask(name='tpcTrackingQC_'+str(tf), needs=TPCTrackingQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=2, mem='2000') |
| 537 | + TPCTrackingQCtask['cmd'] = 'o2-tpc-track-reader | o2-tpc-reco-workflow --input-type clusters --infile tpc-native-clusters.root --output-type disable-writer | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/tpc-qc-tracking-direct.json ' + getDPL_global_options(nosmallrate=False) |
| 538 | + workflow['stages'].append(TPCTrackingQCtask) |
| 539 | + |
| 540 | + ### TRD |
| 541 | + TRDDigitsQCneeds = [TRDDigitask['name']] |
| 542 | + TRDDigitsQCtask = createTask(name='trdDigitsQC_'+str(tf), needs=TRDDigitsQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 543 | + TRDDigitsQCtask['cmd'] = 'o2-trd-trap-sim | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/trd-digits-task.json ' + getDPL_global_options(nosmallrate=False) |
| 544 | + workflow['stages'].append(TRDDigitsQCtask) |
| 545 | + |
| 546 | + ### RECO |
| 547 | + vertexQCneeds = [PVFINDERtask['name']] |
| 548 | + vertexQCtask = createTask(name='vertexQC_'+str(tf), needs=vertexQCneeds, tf=tf, cwd=timeframeworkdir, lab=["QC"], cpu=1, mem='2000') |
| 549 | + vertexQCtask['cmd'] = 'o2-primary-vertex-reader-workflow | o2-qc --config json://${O2DPG_ROOT}/MC/config/QC/json/vertexing-qc-direct-mc.json ' + getDPL_global_options(nosmallrate=False) |
| 550 | + workflow['stages'].append(vertexQCtask) |
| 551 | + |
| 552 | + |
503 | 553 |
|
504 | 554 | #secondary vertexer |
505 | 555 | SVFINDERtask = createTask(name='svfinder_'+str(tf), needs=[PVFINDERtask['name']], tf=tf, cwd=timeframeworkdir, lab=["RECO"], cpu=1, mem='2000') |
|
0 commit comments