@@ -107,10 +107,16 @@ EVE_OPT=" --jsons-folder $EDJSONS_DIR"
107107: ${AOD_SOURCES:= $TRACK_SOURCES }
108108: ${AODPROD_OPT:= }
109109: ${ALPIDE_ERR_DUMPS:= }
110+ : ${ITSSTAGGERED:= }
111+ : ${MFTSTAGGERED:= }
112+
110113[[ -z $ALPIDE_ERR_DUMPS ]] && [[ $EPNSYNCMODE == 1 && $RUNTYPE == " PHYSICS" ]] && ALPIDE_ERR_DUMPS=1 || ALPIDE_ERR_DUMPS=0
111114
112115[[ " 0$DISABLE_ROOT_OUTPUT " == " 00" ]] && DISABLE_ROOT_OUTPUT=
113116
117+ [[ " 0$ITSSTAGGERED " == " 01" ]] && ITS_STAGGERED=" --enable-its-staggering " || ITS_STAGGERED=
118+ [[ " 0$MFTSTAGGERED " == " 01" ]] && MFT_STAGGERED=" --enable-its-staggering " || MFT_STAGGERED=
119+
114120if [[ $CTFINPUT != 1 ]]; then
115121 GPU_OUTPUT+=" ,tpc-triggers"
116122fi
@@ -462,7 +468,7 @@ if [[ -n $INPUT_DETECTOR_LIST ]]; then
462468 if [[ $NTIMEFRAMES == -1 ]]; then NTIMEFRAMES_CMD= ; else NTIMEFRAMES_CMD=" --max-tf $NTIMEFRAMES " ; fi
463469 CTF_EMC_SUBSPEC=
464470 ( workflow_has_parameter AOD || [[ -z " $DISABLE_ROOT_OUTPUT " ]] || needs_root_output o2-emcal-cell-writer-workflow ) && has_detector EMC && CTF_EMC_SUBSPEC=" --emcal-decoded-subspec 1"
465- add_W o2-ctf-reader-workflow " $RANS_OPT --delay $TFDELAY --loop $TFLOOP $NTIMEFRAMES_CMD --ctf-input ${CTFName} ${INPUT_FILE_COPY_CMD+--copy-cmd} ${INPUT_FILE_COPY_CMD:- } --onlyDet $INPUT_DETECTOR_LIST $CTF_EMC_SUBSPEC ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} ${TIMEFRAME_SHM_LIMIT:- } --pipeline $( get_N tpc-entropy-decoder TPC REST 1 TPCENTDEC) "
471+ add_W o2-ctf-reader-workflow " $RANS_OPT --delay $TFDELAY --loop $TFLOOP $NTIMEFRAMES_CMD $ITS_STAGGERED $MFT_STAGGERED --ctf-input ${CTFName} ${INPUT_FILE_COPY_CMD+--copy-cmd} ${INPUT_FILE_COPY_CMD:- } --onlyDet $INPUT_DETECTOR_LIST $CTF_EMC_SUBSPEC ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} ${TIMEFRAME_SHM_LIMIT:- } --pipeline $( get_N tpc-entropy-decoder TPC REST 1 TPCENTDEC) "
466472 elif [[ $RAWTFINPUT == 1 ]]; then
467473 TFName=` ls -t $RAWINPUTDIR /o2_* .tf 2> /dev/null | head -n1`
468474 [[ -z $TFName && $WORKFLOWMODE == " print" ]] && TFName=' $TFName'
@@ -555,8 +561,8 @@ if [[ $CTFINPUT == 0 && $DIGITINPUT == 0 ]]; then
555561 add_W o2-tpc-raw-to-digits-workflow " --input-spec \"\" --remove-duplicates $RAWTODIGITOPTIONS --pipeline $( get_N tpc-raw-to-digits-0 TPC RAW 1 TPCRAWDEC) "
556562 add_W o2-tpc-reco-workflow " --input-type digitizer --output-type zsraw,disable-writer --pipeline $( get_N tpc-zsEncoder TPC RAW 1 TPCRAWDEC) " " GPU_rec_tpc.zsThreshold=0"
557563 fi
558- has_detector ITS && ! has_detector_from_global_reader ITS && add_W o2-itsmft-stf-decoder-workflow " --nthreads ${NITSDECTHREADS} --raw-data-dumps $ALPIDE_ERR_DUMPS --pipeline $( get_N its-stf-decoder ITS RAW 1 ITSRAWDEC) " " $ITS_STF_DEC_CONFIG ;$ITSMFT_STROBES ;VerbosityConfig.rawParserSeverity=warn;"
559- has_detector MFT && ! has_detector_from_global_reader MFT && add_W o2-itsmft-stf-decoder-workflow " --nthreads ${NMFTDECTHREADS} --raw-data-dumps $ALPIDE_ERR_DUMPS --pipeline $( get_N mft-stf-decoder MFT RAW 1 MFTRAWDEC) --runmft true" " $MFT_STF_DEC_CONFIG ;$ITSMFT_STROBES ;VerbosityConfig.rawParserSeverity=warn;"
564+ has_detector ITS && ! has_detector_from_global_reader ITS && add_W o2-itsmft-stf-decoder-workflow " --nthreads ${NITSDECTHREADS} --raw-data-dumps $ALPIDE_ERR_DUMPS $ITS_STAGGERED --pipeline $( get_N its-stf-decoder ITS RAW 1 ITSRAWDEC) " " $ITS_STF_DEC_CONFIG ;$ITSMFT_STROBES ;VerbosityConfig.rawParserSeverity=warn;"
565+ has_detector MFT && ! has_detector_from_global_reader MFT && add_W o2-itsmft-stf-decoder-workflow " --nthreads ${NMFTDECTHREADS} --raw-data-dumps $ALPIDE_ERR_DUMPS $MFT_STAGGERED --pipeline $( get_N mft-stf-decoder MFT RAW 1 MFTRAWDEC) --runmft true" " $MFT_STF_DEC_CONFIG ;$ITSMFT_STROBES ;VerbosityConfig.rawParserSeverity=warn;"
560566 has_detector FT0 && ! has_detector_from_global_reader FT0 && ! has_detector_flp_processing FT0 && add_W o2-ft0-flp-dpl-workflow " $DISABLE_ROOT_OUTPUT --pipeline $( get_N ft0-datareader-dpl FT0 RAW 1) "
561567 has_detector FV0 && ! has_detector_from_global_reader FV0 && ! has_detector_flp_processing FV0 && add_W o2-fv0-flp-dpl-workflow " $DISABLE_ROOT_OUTPUT --pipeline $( get_N fv0-datareader-dpl FV0 RAW 1) "
562568 has_detector MID && ! has_detector_from_global_reader MID && add_W o2-mid-raw-to-digits-workflow " $MIDDEC_CONFIG --pipeline $( get_N MIDRawDecoder MID RAW 1) ,$( get_N MIDDecodedDataAggregator MID RAW 1) "
@@ -580,13 +586,13 @@ has_detector_gpu ITS && GPU_OUTPUT+=",its-tracks"
580586
581587# ---------------------------------------------------------------------------------------------------------------------
582588# Common reconstruction workflows
583- (has_detector_reco ITS && ! has_detector_gpu ITS) && ! has_detector_from_global_reader ITS && add_W o2-its-reco-workflow " --trackerCA $ITS_CONFIG $DISABLE_MC ${DISABLE_DIGIT_CLUSTER_INPUT:- } $DISABLE_ROOT_OUTPUT --pipeline $( get_N its-tracker ITS REST 1 ITSTRK) ,$( get_N its-clusterer ITS REST 1 ITSCL) " " $ITS_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR "
584- [[ ${DISABLE_DIGIT_CLUSTER_INPUT:- } =~ " --digits-from-upstream" ]] && has_detector_gpu ITS && ! has_detector_from_global_reader ITS && add_W o2-its-reco-workflow " --disable-tracking ${DISABLE_DIGIT_CLUSTER_INPUT:- } $DISABLE_MC $DISABLE_ROOT_OUTPUT --pipeline $( get_N its-clusterer ITS REST 1 ITSCL) " " $ITS_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR "
585- (has_detector_reco TPC || has_detector_ctf TPC) && ! has_detector_from_global_reader TPC && add_W o2-gpu-reco-workflow " --gpu-reconstruction \" $GPU_CONFIG_SELF \" --input-type=$GPU_INPUT $DISABLE_MC --output-type $GPU_OUTPUT $TPC_CORR_OPT --pipeline gpu-reconstruction:${N_TPCTRK:- 1} ,gpu-reconstruction-prepare:${N_TPCTRK:- 1} $GPU_CONFIG " " GPU_global.deviceType=$GPUTYPE ;GPU_proc.debugLevel=0;$GPU_CONFIG_KEY ;$TRACKTUNETPCINNER ;$TPC_CORR_KEY "
589+ (has_detector_reco ITS && ! has_detector_gpu ITS) && ! has_detector_from_global_reader ITS && add_W o2-its-reco-workflow " --trackerCA $ITS_CONFIG $ITS_STAGGERED $ DISABLE_MC ${DISABLE_DIGIT_CLUSTER_INPUT:- } $DISABLE_ROOT_OUTPUT --pipeline $( get_N its-tracker ITS REST 1 ITSTRK) ,$( get_N its-clusterer ITS REST 1 ITSCL) " " $ITS_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR "
590+ [[ ${DISABLE_DIGIT_CLUSTER_INPUT:- } =~ " --digits-from-upstream" ]] && has_detector_gpu ITS && ! has_detector_from_global_reader ITS && add_W o2-its-reco-workflow " --disable-tracking ${DISABLE_DIGIT_CLUSTER_INPUT:- } $ITS_STAGGERED $ DISABLE_MC $DISABLE_ROOT_OUTPUT --pipeline $( get_N its-clusterer ITS REST 1 ITSCL) " " $ITS_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR "
591+ (has_detector_reco TPC || has_detector_ctf TPC) && ! has_detector_from_global_reader TPC && add_W o2-gpu-reco-workflow " --gpu-reconstruction \" $GPU_CONFIG_SELF \" --input-type=$GPU_INPUT $DISABLE_MC --output-type $GPU_OUTPUT $TPC_CORR_OPT $ITS_STAGGERED --pipeline gpu-reconstruction:${N_TPCTRK:- 1} ,gpu-reconstruction-prepare:${N_TPCTRK:- 1} $GPU_CONFIG " " GPU_global.deviceType=$GPUTYPE ;GPU_proc.debugLevel=0;$GPU_CONFIG_KEY ;$TRACKTUNETPCINNER ;$TPC_CORR_KEY "
586592(has_detector_reco TOF || has_detector_ctf TOF) && ! has_detector_from_global_reader TOF && add_W o2-tof-reco-workflow " $TOF_CONFIG --input-type $TOF_INPUT --output-type $TOF_OUTPUT $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC --pipeline $( get_N tof-compressed-decoder TOF RAW 1) ,$( get_N TOFClusterer TOF REST 1) "
587593has_detector_reco FT0 && ! has_detector_from_global_reader FT0 && add_W o2-ft0-reco-workflow " $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC --pipeline $( get_N ft0-reconstructor FT0 REST 1) "
588594has_detector_reco TRD && ! has_detector_from_global_reader TRD && add_W o2-trd-tracklet-transformer " --disable-irframe-reader $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC $TRD_FILTER_CONFIG --pipeline $( get_N TRDTRACKLETTRANSFORMER TRD REST 1 TRDTRKTRANS) "
589- has_detectors_reco ITS TPC && ! has_detector_from_global_reader_tracks ITS-TPC && has_detector_matching ITSTPC && add_W o2-tpcits-match-workflow " $DISABLE_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC $SEND_ITSTPC_DTGL $TPC_CORR_OPT --nthreads $ITSTPC_THREADS --pipeline $( get_N itstpc-track-matcher MATCH REST $ITSTPC_THREADS TPCITS) " " $ITSTPC_CONFIG_KEY ;$INTERACTION_TAG_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR ;$TPC_CORR_KEY "
595+ has_detectors_reco ITS TPC && ! has_detector_from_global_reader_tracks ITS-TPC && has_detector_matching ITSTPC && add_W o2-tpcits-match-workflow " $DISABLE_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC $ITS_STAGGERED $ SEND_ITSTPC_DTGL $TPC_CORR_OPT --nthreads $ITSTPC_THREADS --pipeline $( get_N itstpc-track-matcher MATCH REST $ITSTPC_THREADS TPCITS) " " $ITSTPC_CONFIG_KEY ;$INTERACTION_TAG_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR ;$TPC_CORR_KEY "
590596has_detector_reco TRD && [[ -n " $TRD_SOURCES " ]] && ! has_detector_from_global_reader_tracks " $( echo " $TRD_SOURCES " | cut -d' ,' -f1) -TRD" && add_W o2-trd-global-tracking " $DISABLE_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC $TRD_CONFIG $TRD_FILTER_CONFIG $TPC_CORR_OPT --track-sources $TRD_SOURCES --pipeline $( get_N trd-globaltracking_TPC_ITS-TPC_ TRD REST 1 TRDTRK) ,$( get_N trd-globaltracking_TPC_FT0_ITS-TPC_ TRD REST 1 TRDTRK) ,$( get_N trd-globaltracking_TPC_FT0_ITS-TPC_CTP_ TRD REST 1 TRDTRK) " " $TRD_CONFIG_KEY ;$INTERACTION_TAG_CONFIG_KEY ;$ITSMFT_STROBES ;$ITSEXTRAERR ;$TPC_CORR_KEY "
591597has_detector_reco TOF && [[ -n " $TOF_SOURCES " ]] && ! has_detector_from_global_reader_tracks " $( echo " $TOF_SOURCES " | cut -d' ,' -f1) -TOF" && add_W o2-tof-matcher-workflow " $TOF_MATCH_OPT $DISABLE_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC $TPC_CORR_OPT ${TOFMATCH_THREADS: +--tof-lanes ${TOFMATCH_THREADS} } --track-sources $TOF_SOURCES --pipeline $( get_N tof-matcher TOF REST 1 TOFMATCH) " " $ITSMFT_STROBES ;$ITSEXTRAERR ;$TPC_CORR_KEY ;$INTERACTION_TAG_CONFIG_KEY "
592598has_detectors TPC && [[ -z " $DISABLE_ROOT_OUTPUT " && " ${SKIP_TPC_CLUSTERSTRACKS_OUTPUT:- } " != 1 ]] && ! has_detector_from_global_reader TPC && add_W o2-tpc-reco-workflow " --input-type pass-through --output-type clusters,tpc-triggers,tracks,send-clusters-per-sector $DISABLE_MC "
@@ -595,7 +601,7 @@ has_detectors TPC && [[ -z "$DISABLE_ROOT_OUTPUT" && "${SKIP_TPC_CLUSTERSTRACKS_
595601# Reconstruction workflows normally active only in async mode ($LIST_OF_ASYNC_RECO_STEPS), but can be forced via $WORKFLOW_EXTRA_PROCESSING_STEPS
596602has_detector MID && ! has_detector_from_global_reader MID && has_processing_step MID_RECO && add_W o2-mid-reco-workflow " $DISABLE_ROOT_OUTPUT $DISABLE_MC --pipeline $( get_N MIDClusterizer MID REST 1) ,$( get_N MIDTracker MID REST 1) "
597603has_detector MCH && ! has_detector_from_global_reader MCH && has_processing_step MCH_RECO && add_W o2-mch-reco-workflow " $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC --pipeline $( get_N mch-track-finder MCH REST 1 MCHTRK) ,$( get_N mch-cluster-finder MCH REST 1 MCHCL) ,$( get_N mch-cluster-transformer MCH REST 1) " " $MCH_CONFIG_KEY "
598- has_detector MFT && ! has_detector_from_global_reader MFT && has_processing_step MFT_RECO && add_W o2-mft-reco-workflow " $DISABLE_MC ${DISABLE_DIGIT_CLUSTER_INPUT:- } $DISABLE_ROOT_OUTPUT $MFT_CONFIG --pipeline $( get_N mft-tracker MFT REST 1 MFTTRK) " " $MFT_CONFIG_KEY ;$ITSMFT_STROBES "
604+ has_detector MFT && ! has_detector_from_global_reader MFT && has_processing_step MFT_RECO && add_W o2-mft-reco-workflow " $DISABLE_MC ${DISABLE_DIGIT_CLUSTER_INPUT:- } $DISABLE_ROOT_OUTPUT $MFT_CONFIG $MFT_STAGGERED --pipeline $( get_N mft-tracker MFT REST 1 MFTTRK) " " $MFT_CONFIG_KEY ;$ITSMFT_STROBES "
599605has_detector FDD && ! has_detector_from_global_reader FDD && has_processing_step FDD_RECO && add_W o2-fdd-reco-workflow " $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC "
600606has_detector FV0 && ! has_detector_from_global_reader FV0 && has_processing_step FV0_RECO && add_W o2-fv0-reco-workflow " $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC "
601607has_detector ZDC && ! has_detector_from_global_reader ZDC && has_processing_step ZDC_RECO && add_W o2-zdc-digits-reco " $DISABLE_DIGIT_ROOT_INPUT $DISABLE_ROOT_OUTPUT $DISABLE_MC "
657663# Entropy encoding / ctf creation workflows - disabled in async mode
658664if has_processing_step ENTROPY_ENCODER && [[ -n " $WORKFLOW_DETECTORS_CTF " ]] && [[ $WORKFLOW_DETECTORS_CTF != " NONE" ]]; then
659665 # Entropy encoder workflows
660- has_detector_ctf MFT && add_W o2-itsmft-entropy-encoder-workflow " $RANS_OPT --mem-factor ${MFT_ENC_MEMFACT:- 1.5} --runmft true --pipeline $( get_N mft-entropy-encoder MFT CTF 1) "
666+ has_detector_ctf MFT && add_W o2-itsmft-entropy-encoder-workflow " $RANS_OPT --mem-factor ${MFT_ENC_MEMFACT:- 1.5} $MFT_STAGGERED --runmft true --pipeline $( get_N mft-entropy-encoder MFT CTF 1) "
661667 has_detector_ctf FT0 && add_W o2-ft0-entropy-encoder-workflow " $RANS_OPT --mem-factor ${FT0_ENC_MEMFACT:- 1.5} --pipeline $( get_N ft0-entropy-encoder FT0 CTF 1) "
662668 has_detector_ctf FV0 && add_W o2-fv0-entropy-encoder-workflow " $RANS_OPT --mem-factor ${FV0_ENC_MEMFACT:- 1.5} --pipeline $( get_N fv0-entropy-encoder FV0 CTF 1) "
663669 has_detector_ctf MID && add_W o2-mid-entropy-encoder-workflow " $RANS_OPT --mem-factor ${MID_ENC_MEMFACT:- 1.5} --pipeline $( get_N mid-entropy-encoder MID CTF 1) "
@@ -669,7 +675,7 @@ if has_processing_step ENTROPY_ENCODER && [[ -n "$WORKFLOW_DETECTORS_CTF" ]] &&
669675 has_detector_ctf FDD && add_W o2-fdd-entropy-encoder-workflow " $RANS_OPT --mem-factor ${FDD_ENC_MEMFACT:- 1.5} --pipeline $( get_N fdd-entropy-encoder FDD CTF 1) "
670676 has_detector_ctf HMP && add_W o2-hmpid-entropy-encoder-workflow " $RANS_OPT --mem-factor ${HMP_ENC_MEMFACT:- 1.5} --pipeline $( get_N hmpid-entropy-encoder HMP CTF 1) "
671677 has_detector_ctf TOF && add_W o2-tof-entropy-encoder-workflow " $RANS_OPT --mem-factor ${TOF_ENC_MEMFACT:- 1.5} --pipeline $( get_N tof-entropy-encoder TOF CTF 1) "
672- has_detector_ctf ITS && add_W o2-itsmft-entropy-encoder-workflow " $RANS_OPT --mem-factor ${ITS_ENC_MEMFACT:- 1.5} --pipeline $( get_N its-entropy-encoder ITS CTF 1) "
678+ has_detector_ctf ITS && add_W o2-itsmft-entropy-encoder-workflow " $RANS_OPT --mem-factor ${ITS_ENC_MEMFACT:- 1.5} $ITS_STAGGERED --pipeline $( get_N its-entropy-encoder ITS CTF 1) "
673679 has_detector_ctf TRD && add_W o2-trd-entropy-encoder-workflow " $RANS_OPT --mem-factor ${TRD_ENC_MEMFACT:- 1.5} --pipeline $( get_N trd-entropy-encoder TRD CTF 1 TRDENT) "
674680 has_detector_ctf TPC && add_W o2-tpc-reco-workflow " $RANS_OPT --mem-factor ${TPC_ENC_MEMFACT:- 1.} --input-type compressed-clusters-flat-for-encode --output-type encoded-clusters,disable-writer --pipeline $( get_N tpc-entropy-encoder TPC CTF 1 TPCENT) "
675681 has_detector_ctf CTP && add_W o2-ctp-entropy-encoder-workflow " $RANS_OPT --mem-factor ${CTP_ENC_MEMFACT:- 1.5} --pipeline $( get_N its-entropy-encoder CTP CTF 1) "
@@ -689,7 +695,7 @@ if has_processing_step ENTROPY_ENCODER && [[ -n "$WORKFLOW_DETECTORS_CTF" ]] &&
689695 CONFIG_CTF=" --output-dir \" $CTF_DIR \" $CTF_CONFIG --output-type $CTF_OUTPUT_TYPE --min-file-size ${CTF_MINSIZE} --max-ctf-per-file ${CTF_MAX_PER_FILE} --onlyDet ${WORKFLOW_DETECTORS_CTF/ TST/ } --meta-output-dir $EPN2EOS_METAFILES_DIR "
690696 if [[ $CREATECTFDICT == 1 ]] && [[ $EXTINPUT == 1 ]]; then CONFIG_CTF+=" --save-dict-after $SAVE_CTFDICT_NTIMEFRAMES " ; fi
691697 [[ $EPNSYNCMODE == 1 ]] && CONFIG_CTF+=" --require-free-disk 53687091200 --wait-for-free-disk $CTF_FREE_DISK_WAIT --max-wait-for-free-disk $CTF_MAX_FREE_DISK_WAIT "
692- add_W o2-ctf-writer-workflow " $CONFIG_CTF "
698+ add_W o2-ctf-writer-workflow " $CONFIG_CTF $ITS_STAGGERED $MFT_STAGGERED "
693699fi
694700
695701# ---------------------------------------------------------------------------------------------------------------------
0 commit comments