@@ -8,6 +8,7 @@ if [ "0$ALIENVLVL" == "0" ]; then
88 alienv --no-refresh load O2/latest
99fi
1010
11+ # Set general arguments
1112ARGS_ALL=" --session default --severity $SEVERITY --shm-segment-id $NUMAID --shm-segment-size $SHMSIZE "
1213if [ $EXTINPUT == 1 ] || [ $NUMAGPUIDS == 1 ]; then
1314 ARGS_ALL+=" --no-cleanup"
@@ -19,59 +20,49 @@ if [ $NORATELOG == 1 ]; then
1920 ARGS_ALL+=" --fairmq-rate-logging 0"
2021fi
2122
22- if [ $EXTINPUT == 1 ]; then
23- CMD_X=" B:TPC/RAWDATA;C:ITS/RAWDATA;D:TOF/RAWDATA;D:MFT/RAWDATA;E:FT0/RAWDATA;F:MID/RAWDATA;G:EMC/RAWDATA;H:PHS/RAWDATA"
24- CMD_Y=" name=readout-proxy,type=pull,method=connect,address=ipc://@stfb-to-dpl$1 ,transport=shmem,rateLogging=0"
25- CMD_INPUT=" o2-dpl-raw-proxy $ARGS_ALL --dataspec $CMD_X --channel-config $CMD_Y "
26- else
27- CMD_X=" HBFUtils.nHBFPerTF=$NHBPERTF ;"
28- CMD_INPUT=" o2-raw-file-reader-workflow $ARGS_ALL --configKeyValues $CMD_X --delay $TFDELAY --loop $NTIMEFRAMES --max-tf 0 --input-conf rawAll.cfg"
29- fi
30-
31- CMD_CTF_TYPE=" none"
32- if [ $CREATECTFDICT == 1 ] && [ $SAVECTF == 1 ]; then CMD_CTF_TYPE=" both" ; fi
33- if [ $CREATECTFDICT == 1 ] && [ $SAVECTF == 0 ]; then CMD_CTF_TYPE=" dict" ; fi
34- if [ $CREATECTFDICT == 0 ] && [ $SAVECTF == 1 ]; then CMD_CTF_TYPE=" ctf" ; fi
35- CMD_CTF=" o2-ctf-writer-workflow $ARGS_ALL --output-type $CMD_CTF_TYPE --onlyDet ITS,MFT,TPC,TOF,FT0,MID,EMC,PHS"
36- if [ $CREATECTFDICT == 1 ] && [ $; then
37- CMD_CTF+= " --save-dict-after 1"
38- fi
39-
23+ # Set some individual workflow arguments depending on configuration
24+ TPC_INPUT=zsraw
25+ TPC_OUTPUT=tracks,clusters,disable-writer
26+ TPC_CONFIG=
27+ TPC_CONFIG_KEY=
28+ TOF_INPUT=raw
29+ TOF_OUTPUT=clusters,matching-info
30+ ITS_CONFIG=
31+ ITS_CONFIG_KEY=
4032if [ $SYNCMODE == 1 ]; then
41- CFG_X=" fastMultConfig.cutMultClusLow=30;fastMultConfig.cutMultClusHigh=2000;fastMultConfig.cutMultVtxHigh=500"
42- ITS_CONFIG=" --configKeyValues $CFG_X "
43- TPC_CONFIG=" GPU_global.synchronousProcessing=1;"
44- CMD_MID=" cat"
33+ ITS_CONFIG_KEY+=" fastMultConfig.cutMultClusLow=30;fastMultConfig.cutMultClusHigh=2000;fastMultConfig.cutMultVtxHigh=500"
34+ TPC_CONFIG_KEY+=" GPU_global.synchronousProcessing=1;"
35+ fi
36+ if [ $CTFINPUT == 1 ]; then
37+ ITS_CONFIG+=" --async-phase"
4538else
46- ITS_CONFIG=
47- TPC_CONFIG=
48- CMD_MID= " o2-mid-reco-workflow $ARGS_ALL --disable-root-output $DISABLE_MC "
39+ ITS_CONFIG+= " --entropy-encoding "
40+ TOF_OUTPUT+= " ,ctf "
41+ TPC_OUTPUT+= " ,encoded-clusters "
4942fi
50- TPC_CONFIG2=
5143
5244if [ $GPUTYPE == " HIP" ]; then
5345 if [ $NUMAID == 0 ] || [ $NUMAGPUIDS == 0 ]; then
5446 export TIMESLICEOFFSET=0
5547 else
5648 export TIMESLICEOFFSET=$NGPUS
5749 fi
58- TPC_CONFIG+=" GPU_proc.deviceNum=0;GPU_global.mutexMemReg=true;"
59- CFG_Y=" ROCR_VISIBLE_DEVICES={timeslice${TIMESLICEOFFSET} }"
60- TPC_CONFIG2+=" --environment $CFG_Y "
50+ TPC_CONFIG_KEY+=" GPU_proc.deviceNum=0;GPU_global.mutexMemReg=true;"
51+ TPC_CONFIG+=" --environment \" ROCR_VISIBLE_DEVICES={timeslice${TIMESLICEOFFSET} }\" "
6152 export HSA_NO_SCRATCH_RECLAIM=1
6253 # export HSA_TOOLS_LIB=/opt/rocm/lib/librocm-debug-agent.so.2
6354else
64- TPC_CONFIG +=" GPU_proc.deviceNum=-2;"
55+ TPC_CONFIG_KEY +=" GPU_proc.deviceNum=-2;"
6556fi
6657
6758if [ $GPUTYPE != " CPU" ]; then
68- TPC_CONFIG +=" GPU_proc.forceMemoryPoolSize=$GPUMEMSIZE ;"
59+ TPC_CONFIG_KEY +=" GPU_proc.forceMemoryPoolSize=$GPUMEMSIZE ;"
6960 if [ $HOSTMEMSIZE == " 0" ]; then
7061 HOSTMEMSIZE=$(( 1 << 30 ))
7162 fi
7263fi
7364if [ $HOSTMEMSIZE != " 0" ]; then
74- TPC_CONFIG +=" GPU_proc.forceHostMemoryPoolSize=$HOSTMEMSIZE ;"
65+ TPC_CONFIG_KEY +=" GPU_proc.forceHostMemoryPoolSize=$HOSTMEMSIZE ;"
7566fi
7667
7768if [ $EPNPIPELINES == 1 ]; then
8475 N_ITSDEC=1
8576fi
8677
87- $CMD_INPUT | \
88- o2-itsmft-stf-decoder-workflow $ARGS_ALL --pipeline its-stf-decoder:$N_ITSDEC | \
89- o2-itsmft-stf-decoder-workflow $ARGS_ALL --runmft true | \
90- o2-its-reco-workflow $ARGS_ALL --trackerCA $DISABLE_MC --clusters-from-upstream --disable-root-output --entropy-encoding $ITS_CONFIG | \
91- o2-itsmft-entropy-encoder-workflow $ARGS_ALL --runmft true | \
92- o2-tpc-reco-workflow ${ARGS_ALL/ --severity $SEVERITY / --severity $SEVERITY_TPC } --input-type= zsraw $DISABLE_MC --output-type tracks,clusters,encoded-clusters,disable-writer --pipeline tpc-tracker:$NGPUS ,tpc-entropy-encoder:$N_TPCENT $TPC_CONFIG2 --configKeyValues " HBFUtils.nHBFPerTF=$NHBPERTF ;GPU_global.deviceType=$GPUTYPE ;GPU_proc.debugLevel=0;$TPC_CONFIG " | \
93- o2-tpcits-match-workflow $ARGS_ALL --disable-root-input --disable-root-output $DISABLE_MC --pipeline itstpc-track-matcher:$N_TPCITS | \
94- o2-ft0-flp-dpl-workflow $ARGS_ALL --disable-root-output | \
95- o2-ft0-reco-workflow $ARGS_ALL --disable-root-input --disable-root-output $DISABLE_MC | \
96- o2-ft0-entropy-encoder-workflow $ARGS_ALL | \
97- o2-mid-raw-to-digits-workflow $ARGS_ALL | \
98- $CMD_MID | \
99- o2-mid-entropy-encoder-workflow $ARGS_ALL | \
100- o2-phos-reco-workflow $ARGS_ALL --input-type raw --output-type cells | \
101- o2-phos-entropy-encoder-workflow $ARGS_ALL | \
102- o2-emcal-reco-workflow $ARGS_ALL --input-type raw --output-type cells --disable-root-output | \
103- o2-emcal-entropy-encoder-workflow $ARGS_ALL | \
104- o2-tof-compressor $ARGS_ALL | \
105- o2-tof-reco-workflow $ARGS_ALL --configKeyValues " HBFUtils.nHBFPerTF=$NHBPERTF " --input-type raw --output-type ctf,clusters,matching-info --disable-root-output $DISABLE_MC | \
106- o2-tpc-scdcalib-interpolation-workflow $ARGS_ALL --disable-root-output --disable-root-input | \
107- $CMD_CTF | \
108- o2-dpl-run $ARGS_ALL $GLOBALDPLOPT --run
78+ # Input workflow
79+ if [ $CTFINPUT == 1 ]; then
80+ TPC_INPUT=compressed-clusters-ctf
81+ TOF_INPUT=digits
82+ WORKFLOW=" o2-ctf-reader-workflow --ctf-input o2_ctf_0000000000.root $ARGS_ALL | "
83+ elif [ $EXTINPUT == 1 ]; then
84+ WORKFLOW=" o2-dpl-raw-proxy $ARGS_ALL --dataspec \" B:TPC/RAWDATA;C:ITS/RAWDATA;D:TOF/RAWDATA;D:MFT/RAWDATA;E:FT0/RAWDATA;F:MID/RAWDATA;G:EMC/RAWDATA;H:PHS/RAWDATA\" --channel-config \" name=readout-proxy,type=pull,method=connect,address=ipc://@stfb-to-dpl,transport=shmem,rateLogging=0\" | "
85+ else
86+ WORKFLOW=" o2-raw-file-reader-workflow $ARGS_ALL --configKeyValues \" HBFUtils.nHBFPerTF=$NHBPERTF ;\" --delay $TFDELAY --loop $NTIMEFRAMES --max-tf 0 --input-conf rawAll.cfg | "
87+ fi
88+
89+ # Decoder workflows
90+ if [ $CTFINPUT == 0 ]; then
91+ WORKFLOW+=" o2-itsmft-stf-decoder-workflow $ARGS_ALL --pipeline its-stf-decoder:$N_ITSDEC | "
92+ WORKFLOW+=" o2-itsmft-stf-decoder-workflow $ARGS_ALL --runmft true | "
93+ WORKFLOW+=" o2-ft0-flp-dpl-workflow $ARGS_ALL --disable-root-output | "
94+ WORKFLOW+=" o2-mid-raw-to-digits-workflow $ARGS_ALL | "
95+ WORKFLOW+=" o2-tof-compressor $ARGS_ALL | "
96+ fi
97+
98+ # Common workflows
99+ WORKFLOW+=" o2-its-reco-workflow $ARGS_ALL --trackerCA $DISABLE_MC --clusters-from-upstream --disable-root-output $ITS_CONFIG --configKeyValues \" HBFUtils.nHBFPerTF=128;$ITS_CONFIG_KEY \" | "
100+ WORKFLOW+=" o2-tpc-reco-workflow ${ARGS_ALL/ --severity $SEVERITY / --severity $SEVERITY_TPC } --input-type=$TPC_INPUT $DISABLE_MC --output-type $TPC_OUTPUT --pipeline tpc-tracker:$NGPUS ,tpc-entropy-encoder:$N_TPCENT $TPC_CONFIG --configKeyValues \" HBFUtils.nHBFPerTF=$NHBPERTF ;GPU_global.deviceType=$GPUTYPE ;GPU_proc.debugLevel=0;$TPC_CONFIG_KEY \" | "
101+ WORKFLOW+=" o2-tpcits-match-workflow $ARGS_ALL --disable-root-input --disable-root-output $DISABLE_MC --pipeline itstpc-track-matcher:$N_TPCITS --configKeyValues \" HBFUtils.nHBFPerTF=128;\" | "
102+ WORKFLOW+=" o2-ft0-reco-workflow $ARGS_ALL --disable-root-input --disable-root-output $DISABLE_MC --configKeyValues \" HBFUtils.nHBFPerTF=128;\" | "
103+ WORKFLOW+=" o2-tof-reco-workflow $ARGS_ALL --configKeyValues \" HBFUtils.nHBFPerTF=$NHBPERTF \" --input-type $TOF_INPUT --output-type $TOF_OUTPUT --disable-root-input --disable-root-output $DISABLE_MC | "
104+
105+ # Workflows disabled in sync mode
106+ if [ $SYNCMODE == 0 ]; then
107+ WORKFLOW+=" o2-mid-reco-workflow $ARGS_ALL --disable-root-output $DISABLE_MC | "
108+ # WORKFLOW+="o2-mft-reco-workflow $ARGS_ALL --clusters-from-upstream --disable-mc --disable-root-output --configKeyValues \"HBFUtils.nHBFPerTF=128;\" | " # Disabled since currently crashing
109+ WORKFLOW+=" o2-primary-vertexing-workflow $ARGS_ALL --disable-mc --disable-root-input --disable-root-output --validate-with-ft0 | "
110+ WORKFLOW+=" o2-secondary-vertexing-workflow $ARGS_ALL --disable-root-input --disable-root-output | "
111+ fi
112+
113+ # Workflows disabled in async mode
114+ if [ $CTFINPUT == 0 ]; then
115+ WORKFLOW+=" o2-phos-reco-workflow $ARGS_ALL --input-type raw --output-type cells | "
116+ WORKFLOW+=" o2-emcal-reco-workflow $ARGS_ALL --input-type raw --output-type cells --disable-root-output | "
117+
118+ WORKFLOW+=" o2-itsmft-entropy-encoder-workflow $ARGS_ALL --runmft true | "
119+ WORKFLOW+=" o2-ft0-entropy-encoder-workflow $ARGS_ALL | "
120+ WORKFLOW+=" o2-mid-entropy-encoder-workflow $ARGS_ALL | "
121+ WORKFLOW+=" o2-phos-entropy-encoder-workflow $ARGS_ALL | "
122+ WORKFLOW+=" o2-emcal-entropy-encoder-workflow $ARGS_ALL | "
123+
124+ WORKFLOW+=" o2-tpc-scdcalib-interpolation-workflow $ARGS_ALL --disable-root-output --disable-root-input | "
125+
126+ # Output workflow
127+ CTF_OUTPUT_TYPE=" none"
128+ if [ $CREATECTFDICT == 1 ] && [ $SAVECTF == 1 ]; then CTF_OUTPUT_TYPE=" both" ; fi
129+ if [ $CREATECTFDICT == 1 ] && [ $SAVECTF == 0 ]; then CTF_OUTPUT_TYPE=" dict" ; fi
130+ if [ $CREATECTFDICT == 0 ] && [ $SAVECTF == 1 ]; then CTF_OUTPUT_TYPE=" ctf" ; fi
131+ CMD_CTF=" o2-ctf-writer-workflow $ARGS_ALL --output-type $CTF_OUTPUT_TYPE --onlyDet ITS,MFT,TPC,TOF,FT0,MID,EMC,PHS"
132+ if [ $CREATECTFDICT == 1 ] && [ $; then
133+ CMD_CTF+= " --save-dict-after 1"
134+ fi
135+ WORKFLOW+= " $CMD_CTF | "
136+ fi
137+
138+ # DPL run binary
139+ WORKFLOW+= " o2-dpl-run $ARGS_ALL $GLOBALDPLOPT --run"
140+
141+ # Execute the command we have assembled
142+ # echo Running workflow:
143+ # echo $WORKFLOW | sed "s/| */|\n/g"
144+ # echo
145+ eval $WORKFLOW
0 commit comments