@@ -50,6 +50,8 @@ add_QC_JSON() {
5050 OUTPUT_SUFFIX+=" -$1 "
5151}
5252
53+ JSON_TEMP_FILES=" ()"
54+
5355QC_CONFIG=
5456QC_CONFIG_OVERRIDE=
5557: ${QC_DETECTOR_CONFIG_OVERRIDE:= } # set to empty string only if not already set externally
@@ -267,42 +269,55 @@ elif [[ -z ${QC_JSON_FROM_OUTSIDE:-} ]]; then
267269 if has_matching_qc $i && [ ! -z " ${! DET_JSON_FILE:- } " ]; then
268270 if [[ $i == " PRIMVTX" ]] && ! has_detector_reco ITS; then continue ; fi
269271 if [[ $i == " ITSTPC" ]] ; then
270- if ! has_detectors_reco ITS TPC; then continue
271- else
272- # replace the input sources depending on the detector compostition and matching detectors
273- ITSTPCMatchQuery=" trackITSTPC:GLO/TPCITS/0;trackITSTPCABREFS:GLO/TPCITSAB_REFS/0;trackITSTPCABCLID:GLO/TPCITSAB_CLID/0;trackTPC:TPC/TRACKS;trackTPCClRefs:TPC/CLUSREFS;trackITS:ITS/TRACKS/0;trackITSROF:ITS/ITSTrackROF/0;trackITSClIdx:ITS/TRACKCLSID/0;alpparITS:ITS/ALPIDEPARAM/0?lifetime=condition&ccdb-path=ITS/Config/AlpideParam;SVParam:GLO/SVPARAM/0?lifetime=condition&ccdb-path=GLO/Config/SVertexerParam"
274- HAS_K0_ENABLED=` jq -r .qc.tasks.MTCITSTPC.taskParameters.doK0QC ${! DET_JSON_FILE} `
275- if [[ $HAS_K0_ENABLED == " true" ]]; then
276- ITSTPCMatchQuery+=" ;p2decay3body:GLO/PVTX_3BODYREFS/0;decay3body:GLO/DECAYS3BODY/0;decay3bodyIdx:GLO/DECAYS3BODY_IDX/0;p2cascs:GLO/PVTX_CASCREFS/0;cascs:GLO/CASCS/0;cascsIdx:GLO/CASCS_IDX/0;p2v0s:GLO/PVTX_V0REFS/0;v0s:GLO/V0S/0;v0sIdx:GLO/V0S_IDX/0;pvtx_tref:GLO/PVTX_TRMTCREFS/0;pvtx_trmtc:GLO/PVTX_TRMTC/0;pvtx:GLO/PVTX/0;SVParam:GLO/SVPARAM/0?lifetime=condition&ccdb-path=GLO/Config/SVertexerParam;clusTPCoccmap:TPC/TPCOCCUPANCYMAP/0;clusTPC:TPC/CLUSTERNATIVE;clusTPCshmap:TPC/CLSHAREDMAP/0;trigTPC:TPC/TRIGGERWORDS/0"
277- if has_secvtx_source ITS-TPC-TRD ; then
278- ITSTPCMatchQuery+=" ;trigITSTPCTRD:TRD/TRGREC_ITSTPC/0;trackITSTPCTRD:TRD/MATCH_ITSTPC/0"
279- fi
280- if has_secvtx_source ITS-TPC-TOF ; then
281- ITSTPCMatchQuery+=" ;matchITSTPCTOF:TOF/MTC_ITSTPC/0"
282- fi
283- if has_secvtx_source ITS-TPC-TRD-TOF ; then
284- ITSTPCMatchQuery+=" ;matchITSTPCTRDTOF:TOF/MTC_ITSTPCTRD/0"
285- fi
286- if has_secvtx_source TPC-TRD ; then
287- ITSTPCMatchQuery+=" ;trigTPCTRD:TRD/TRGREC_TPC/0;trackTPCTRD:TRD/MATCH_TPC/0"
288- fi
289- if has_secvtx_source TPC-TOF ; then
290- ITSTPCMatchQuery+=" ;matchTPCTOF:TOF/MTC_TPC/0;trackTPCTOF:TOF/TOFTRACKS_TPC/0"
291- fi
292- if has_secvtx_source TPC-TRD-TOF ; then
293- ITSTPCMatchQuery+=" ;matchTPCTRDTOF/TOF/MTC_TPCTRD/0"
294- fi
295- if has_secvtx_source TOF ; then
296- ITSTPCMatchQuery+=" ;tofcluster:TOF/CLUSTERS/0"
297- fi
298- fi
299- echo " We are looking at $i "
300- if [[ $SYNCMODE == 1 ]] || [[ $EPNSYNCMODE == 1 ]] ; then
301- add_pipe_separated QC_DETECTOR_CONFIG_OVERRIDE ' .dataSamplingPolicies.ITSTPCmSampK0.query=\"$ITSTPCMatchQuery\"'
302- else
303- add_pipe_separated QC_DETECTOR_CONFIG_OVERRIDE ' .qc.tasks.MTCITSTPC.dataSource.query=\"$ITSTPCMatchQuery\"'
304- fi
305- fi
272+ if ! has_detectors_reco ITS TPC; then continue
273+ else
274+ # replace the input sources depending on the detector compostition and matching detectors
275+ ITSTPCMatchQuery=" trackITSTPC:GLO/TPCITS/0;trackITSTPCABREFS:GLO/TPCITSAB_REFS/0;trackITSTPCABCLID:GLO/TPCITSAB_CLID/0;trackTPC:TPC/TRACKS;trackTPCClRefs:TPC/CLUSREFS;trackITS:ITS/TRACKS/0;trackITSROF:ITS/ITSTrackROF/0;trackITSClIdx:ITS/TRACKCLSID/0;alpparITS:ITS/ALPIDEPARAM/0?lifetime=condition&ccdb-path=ITS/Config/AlpideParam;SVParam:GLO/SVPARAM/0?lifetime=condition&ccdb-path=GLO/Config/SVertexerParam"
276+ HAS_K0_ENABLED=$( jq -r .qc.tasks.MTCITSTPC.taskParameters.doK0QC " ${! DET_JSON_FILE} " )
277+ TRACKSOURCESK0=" ITS,TPC,ITS-TPC"
278+ if [[ $HAS_K0_ENABLED == " true" ]]; then
279+ ITSTPCMatchQuery+=" ;p2decay3body:GLO/PVTX_3BODYREFS/0;decay3body:GLO/DECAYS3BODY/0;decay3bodyIdx:GLO/DECAYS3BODY_IDX/0;p2cascs:GLO/PVTX_CASCREFS/0;cascs:GLO/CASCS/0;cascsIdx:GLO/CASCS_IDX/0;p2v0s:GLO/PVTX_V0REFS/0;v0s:GLO/V0S/0;v0sIdx:GLO/V0S_IDX/0;pvtx_tref:GLO/PVTX_TRMTCREFS/0;pvtx_trmtc:GLO/PVTX_TRMTC/0;pvtx:GLO/PVTX/0;SVParam:GLO/SVPARAM/0?lifetime=condition&ccdb-path=GLO/Config/SVertexerParam;clusTPCoccmap:TPC/TPCOCCUPANCYMAP/0;clusTPC:TPC/CLUSTERNATIVE;clusTPCshmap:TPC/CLSHAREDMAP/0;trigTPC:TPC/TRIGGERWORDS/0"
280+ if has_secvtx_source ITS-TPC-TRD ; then
281+ ITSTPCMatchQuery+=" ;trigITSTPCTRD:TRD/TRGREC_ITSTPC/0;trackITSTPCTRD:TRD/MATCH_ITSTPC/0"
282+ TRACKSOURCESK0+=" ,ITS-TPC-TRD"
283+ fi
284+ if has_secvtx_source ITS-TPC-TOF ; then
285+ ITSTPCMatchQuery+=" ;matchITSTPCTOF:TOF/MTC_ITSTPC/0"
286+ TRACKSOURCESK0+=" ,ITS-TPC-TOF"
287+ fi
288+ if has_secvtx_source ITS-TPC-TRD-TOF ; then
289+ ITSTPCMatchQuery+=" ;matchITSTPCTRDTOF:TOF/MTC_ITSTPCTRD/0"
290+ TRACKSOURCESK0+=" ,ITS-TPC-TRD-TOF"
291+ fi
292+ if has_secvtx_source TPC-TRD ; then
293+ ITSTPCMatchQuery+=" ;trigTPCTRD:TRD/TRGREC_TPC/0;trackTPCTRD:TRD/MATCH_TPC/0"
294+ TRACKSOURCESK0+=" ,TPC-TRD"
295+ fi
296+ if has_secvtx_source TPC-TOF ; then
297+ ITSTPCMatchQuery+=" ;matchTPCTOF:TOF/MTC_TPC/0;trackTPCTOF:TOF/TOFTRACKS_TPC/0"
298+ TRACKSOURCESK0+=" ,TPC-TOF"
299+ fi
300+ if has_secvtx_source TPC-TRD-TOF ; then
301+ ITSTPCMatchQuery+=" ;matchTPCTRDTOF/TOF/MTC_TPCTRD/0"
302+ TRACKSOURCESK0+=" ,TPC-TRD-TOF"
303+ fi
304+ if has_secvtx_source TOF ; then
305+ ITSTPCMatchQuery+=" ;tofcluster:TOF/CLUSTERS/0"
306+ TRACKSOURCESK0+=" ,TOF"
307+ fi
308+ if has_secvtx_source TRD ; then
309+ TRACKSOURCESK0+=" ,TRD"
310+ fi
311+ fi
312+ TEMP_FILE=$( mktemp " ${i} " _XXXXXXX)
313+ if [[ $SYNCMODE == 1 ]] || [[ $EPNSYNCMODE == 1 ]] ; then
314+ cat " ${! DET_JSON_FILE} " | jq " (.dataSamplingPolicies[] | select(.id == \" ITSTPCmSampK0\" ) | .query) = \" $ITSTPCMatchQuery \" | .qc.tasks.MTCITSTPC.taskParameters.trackSourcesK0 = \" $TRACKSOURCESK0 \" " > " $TEMP_FILE "
315+ else
316+ cat " ${! DET_JSON_FILE} " | jq " .qc.tasks.MTCITSTPC.taskParameters.trackSourcesK0 = \" $TRACKSOURCESK0 \" " > " $TEMP_FILE "
317+ fi
318+ DET_JSON_FILE=TEMP_FILE
319+ JSON_TEMP_FILES+=(" $TEMP_FILE " )
320+ fi
306321 fi
307322 add_QC_JSON GLO_$i ${! DET_JSON_FILE}
308323 fi
@@ -361,6 +376,11 @@ elif [[ -z ${QC_JSON_FROM_OUTSIDE:-} ]]; then
361376 fi
362377 MERGED_JSON_FILENAME=$( realpath $MERGED_JSON_FILENAME )
363378
379+ # Clean up: delete the temporary files after use
380+ for tf in " ${JSON_TEMP_FILES[@]} " ; do
381+ rm -f " $tf "
382+ done
383+
364384 if [[ " ${QC_REDIRECT_MERGER_TO_LOCALHOST:- } " == " 1" ]]; then
365385 sed -i.bak -E ' s/( *)"remoteMachine" *: *".*"(,?) *$/\1"remoteMachine": "127.0.0.1"\2/' $MERGED_JSON_FILENAME
366386 unlink $MERGED_JSON_FILENAME .bak
0 commit comments