Skip to content

Commit 10ba173

Browse files
chiarazampollialcaliva
authored andcommitted
Possibility to set the input specs for GLO QC dynamically, for K0s (#1834)
* Possibility to set the inputs from the qc-wf * Forcing K0QC to be off if there is no SECVTX (cherry picked from commit 73425a3)
1 parent 3ab5985 commit 10ba173

File tree

5 files changed

+119
-23
lines changed

5 files changed

+119
-23
lines changed

DATA/common/gen_topo_helper_functions.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ has_detector_matching()
4949
[[ $WORKFLOW_DETECTORS_MATCHING =~ (^|,)"ALL"(,|$) ]] || [[ $WORKFLOW_DETECTORS_MATCHING =~ (^|,)"$1"(,|$) ]]
5050
}
5151

52+
has_secvtx_source()
53+
{
54+
[[ $SVERTEXING_SOURCES =~ (^|,)"ALL"(,|$) ]] || [[ $SVERTEXING_SOURCES =~ (^|,)"$1"(,|$) ]]
55+
}
56+
5257
has_detector_qc()
5358
{
5459
has_detector $1 && [[ $WORKFLOW_DETECTORS_QC =~ (^|,)"$1"(,|$) ]]

DATA/production/configurations/asyncReco/setenv_extra.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,10 @@ fi
657657
if [[ $ALIEN_JDL_QCOFF != "1" ]]; then
658658
export WORKFLOW_PARAMETERS="QC,${WORKFLOW_PARAMETERS}"
659659
fi
660-
export QC_CONFIG_PARAM="--local-batch=QC.root --override-values \"qc.config.Activity.number=$RUNNUMBER;qc.config.Activity.passName=$PASS;qc.config.Activity.periodName=$PERIOD\""
660+
661+
export QC_CONFIG_OVERRIDE+=";qc.config.Activity.number=$RUNNUMBER;qc.config.Activity.passName=$PASS;qc.config.Activity.periodName=$PERIOD;"
662+
663+
export QC_CONFIG_PARAM+=" --local-batch=QC.root "
661664
export GEN_TOPO_WORKDIR="./"
662665
#export QC_JSON_FROM_OUTSIDE="QC-20211214.json"
663666

DATA/production/qc-async/itstpc.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"dataSource" : {
4040
"type" : "direct",
4141
"query_comment" : "checking every matched track",
42-
"query" : "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"
42+
"query" : "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;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;trigITSTPCTRD:TRD/TRGREC_ITSTPC/0;trackITSTPCTRD:TRD/MATCH_ITSTPC/0;matchITSTPCTOF:TOF/MTC_ITSTPC/0;matchITSTPCTRDTOF:TOF/MTC_ITSTPCTRD/0;trigTPCTRD:TRD/TRGREC_TPC/0;trackTPCTRD:TRD/MATCH_TPC/0;matchTPCTOF:TOF/MTC_TPC/0;trackTPCTOF:TOF/TOFTRACKS_TPC/0;matchTPCTRDTOF/TOF/MTC_TPCTRD/0;tofcluster:TOF/CLUSTERS/0"
4343
},
4444
"taskParameters" : {
4545
"GID" : "ITS-TPC,ITS",
@@ -55,19 +55,23 @@
5555
"minDCACutY": "10.f",
5656
"minPtCut": "0.f",
5757
"maxPtCut": "1e10f",
58-
"etaCut": "1e10f"
58+
"etaCut": "1e10f",
59+
"cutK0Mass": "0.05f",
60+
"maxEtaK0": "0.8f",
61+
"doK0QC": "true",
62+
"trackSourcesK0": "ITS,TPC,ITS-TPC,ITS-TPC-TOF,TPC-TOF,TPC-TRD,ITS-TPC-TRD,TPC-TRD-TOF,ITS-TPC-TOF,ITS-TPC-TRD-TOF"
5963
},
6064
"grpGeomRequest" : {
6165
"geomRequest": "None",
62-
"askGRPECS": "false",
63-
"askGRPLHCIF": "false",
66+
"askGRPECS": "true",
67+
"askGRPLHCIF": "true",
6468
"askGRPMagField": "true",
6569
"askMatLUT": "false",
6670
"askTime": "false",
6771
"askOnceAllButField": "true",
6872
"needPropagatorD": "false"
6973
},
70-
"saveObjectsToFile" : "ITSTPCmatched.root",
74+
"saveObjectsToFile" : "ITSTPCmatched_allTracks_enabledK0.root",
7175
"" : "For debugging, path to the file where to save. If empty or missing it won't save."
7276
}
7377
}

DATA/production/qc-sync/glo-itstpc-mtch-qcmn-epn.json

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,29 @@
3232
"maxNumberCycles" : "-1",
3333
"dataSource" : {
3434
"type" : "dataSamplingPolicy",
35-
"name" : "ITSTPCmSamp"
35+
"name" : "ITSTPCmSampK0"
3636
},
3737
"taskParameters" : {
38-
"GID" : "ITS-TPC,ITS",
39-
"verbose" : "false",
40-
"minPtCut" : "0.1f",
41-
"etaCut" : "1.4f",
42-
"minNTPCClustersCut" : "60",
43-
"minDCACut" : "100.f",
44-
"minDCACutY" : "10.f"
38+
"GID": "ITS-TPC,ITS",
39+
"verbose": "false",
40+
"minPtITSCut": "0.f",
41+
"etaITSCut": "1e10f",
42+
"minNITSClustersCut": "0",
43+
"maxChi2PerClusterITS": "100000",
44+
"minPtTPCCut": "0.1f",
45+
"etaTPCCut": "0.9f",
46+
"minNTPCClustersCut": "60",
47+
"minDCACut": "100.f",
48+
"minDCACutY": "10.f",
49+
"minPtCut": "0.f",
50+
"maxPtCut": "1e10f",
51+
"etaCut": "1e10f",
52+
"cutK0Mass": "0.05f",
53+
"maxEtaK0": "0.8f",
54+
"doK0QC": "true",
55+
"trackSourcesK0": ""
4556
},
46-
"grpGeomRequest" : {
57+
"grpGeomRequest" : {
4758
"geomRequest": "None",
4859
"askGRPECS": "false",
4960
"askGRPLHCIF": "false",
@@ -54,23 +65,23 @@
5465
"needPropagatorD": "false"
5566
},
5667
"location" : "local",
57-
"localMachines": [
68+
"localMachines": [
5869
"epn",
59-
"localhost"
70+
"localhost"
6071
],
6172
"remoteMachine": "alio2-cr1-qc07.cern.ch",
62-
"remotePort": "47761",
63-
"localControl": "odc"
73+
"remotePort": "47761",
74+
"localControl": "odc"
6475
}
6576
}
6677
},
6778
"dataSamplingPolicies" : [
6879
{
69-
"id" : "ITSTPCmSamp",
80+
"id" : "ITSTPCmSampK0",
7081
"active" : "true",
7182
"machines" : [],
7283
"query_comment" : "checking every 10% matched track",
73-
"query" : "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",
84+
"query" : "",
7485
"samplingConditions" : [
7586
{
7687
"condition" : "random",

DATA/production/qc-workflow.sh

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ add_QC_JSON() {
3838
OUTPUT_SUFFIX+="-$1"
3939
}
4040

41+
JSON_TEMP_FILES="()"
42+
4143
QC_CONFIG=
42-
QC_CONFIG_OVERRIDE=
44+
: ${QC_CONFIG_OVERRIDE:=} # set to empty string only if not already set externally
4345
: ${QC_DETECTOR_CONFIG_OVERRIDE:=} # set to empty string only if not already set externally
4446
if [[ -z ${QC_JSON_FROM_OUTSIDE:-} && ! -z ${GEN_TOPO_QC_JSON_FILE:-} && -f $GEN_TOPO_QC_JSON_FILE ]]; then
4547
QC_JSON_FROM_OUTSIDE=$GEN_TOPO_QC_JSON_FILE
@@ -251,7 +253,71 @@ elif [[ -z ${QC_JSON_FROM_OUTSIDE:-} ]]; then
251253
DET_JSON_FILE="QC_JSON_GLO_$i"
252254
if has_matching_qc $i && [ ! -z "${!DET_JSON_FILE:-}" ]; then
253255
if [[ $i == "PRIMVTX" ]] && ! has_detector_reco ITS; then continue; fi
254-
if [[ $i == "ITSTPC" ]] && ! has_detectors_reco ITS TPC; then continue; fi
256+
if [[ $i == "ITSTPC" ]] ; then
257+
if ! has_detectors_reco ITS TPC; then continue
258+
else
259+
# replace the input sources depending on the detector compostition and matching detectors
260+
ITSTPCMatchQuery="trackITSTPC:GLO/TPCITS/0;trackITSTPCABREFS:GLO/TPCITSAB_REFS/0;trackITSTPCABCLID:GLO/TPCITSAB_CLID/0;trackTPC:TPC/TRACKS;trackTPCClRefs:TPC/CLUSREFS/0;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"
261+
TRACKSOURCESK0="ITS,TPC,ITS-TPC"
262+
if has_processing_step MATCH_SECVTX || has_detector_matching SECVTX ; then
263+
if [[ $SYNCMODE == 1 ]] || [[ $EPNSYNCMODE == 1 ]] ; then
264+
HAS_K0_ENABLED=$(jq -r .qc.tasks.MTCITSTPC.taskParameters.doK0QC "${!DET_JSON_FILE}")
265+
else
266+
HAS_K0_ENABLED=$(jq -r .qc.tasks.GLOMatchTrITSTPC.taskParameters.doK0QC "${!DET_JSON_FILE}")
267+
fi
268+
if [[ $HAS_K0_ENABLED == "true" ]]; then
269+
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;clusTPCoccmap:TPC/TPCOCCUPANCYMAP/0;clusTPC:TPC/CLUSTERNATIVE;clusTPCshmap:TPC/CLSHAREDMAP/0;trigTPC:TPC/TRIGGERWORDS/0"
270+
if has_secvtx_source ITS-TPC-TRD ; then
271+
ITSTPCMatchQuery+=";trigITSTPCTRD:TRD/TRGREC_ITSTPC/0;trackITSTPCTRD:TRD/MATCH_ITSTPC/0"
272+
TRACKSOURCESK0+=",ITS-TPC-TRD"
273+
fi
274+
if has_secvtx_source ITS-TPC-TOF ; then
275+
ITSTPCMatchQuery+=";matchITSTPCTOF:TOF/MTC_ITSTPC/0"
276+
TRACKSOURCESK0+=",ITS-TPC-TOF"
277+
fi
278+
if has_secvtx_source ITS-TPC-TRD-TOF ; then
279+
ITSTPCMatchQuery+=";matchITSTPCTRDTOF:TOF/MTC_ITSTPCTRD/0"
280+
TRACKSOURCESK0+=",ITS-TPC-TRD-TOF"
281+
fi
282+
if has_secvtx_source TPC-TRD ; then
283+
ITSTPCMatchQuery+=";trigTPCTRD:TRD/TRGREC_TPC/0;trackTPCTRD:TRD/MATCH_TPC/0"
284+
TRACKSOURCESK0+=",TPC-TRD"
285+
fi
286+
if has_secvtx_source TPC-TOF ; then
287+
ITSTPCMatchQuery+=";matchTPCTOF:TOF/MTC_TPC/0;trackTPCTOF:TOF/TOFTRACKS_TPC/0"
288+
TRACKSOURCESK0+=",TPC-TOF"
289+
fi
290+
if has_secvtx_source TPC-TRD-TOF ; then
291+
ITSTPCMatchQuery+=";matchTPCTRDTOF/TOF/MTC_TPCTRD/0"
292+
TRACKSOURCESK0+=",TPC-TRD-TOF"
293+
fi
294+
if has_secvtx_source TOF ; then
295+
ITSTPCMatchQuery+=";tofcluster:TOF/CLUSTERS/0"
296+
TRACKSOURCESK0+=",TOF"
297+
fi
298+
if has_secvtx_source TRD ; then
299+
TRACKSOURCESK0+=",TRD"
300+
fi
301+
fi
302+
TEMP_FILE=$(mktemp "${i}"_XXXXXXX)
303+
if [[ $SYNCMODE == 1 ]] || [[ $EPNSYNCMODE == 1 ]] ; then
304+
cat "${!DET_JSON_FILE}" | jq "(.dataSamplingPolicies[] | select(.id == \"ITSTPCmSampK0\") | .query) = \"$ITSTPCMatchQuery\" | .qc.tasks.MTCITSTPC.taskParameters.trackSourcesK0 = \"$TRACKSOURCESK0\"" > "$TEMP_FILE"
305+
else
306+
cat "${!DET_JSON_FILE}" | jq ".qc.tasks.GLOMatchTrITSTPC.dataSource.query = \"$ITSTPCMatchQuery\" | .qc.tasks.GLOMatchTrITSTPC.taskParameters.trackSourcesK0 = \"$TRACKSOURCESK0\"" > "$TEMP_FILE"
307+
fi
308+
else
309+
# we need to force that the K0s part is disabled
310+
TEMP_FILE=$(mktemp "${i}"_XXXXXXX)
311+
if [[ $SYNCMODE == 1 ]] || [[ $EPNSYNCMODE == 1 ]] ; then
312+
cat "${!DET_JSON_FILE}" | jq "(.dataSamplingPolicies[] | select(.id == \"ITSTPCmSampK0\") | .query) = \"$ITSTPCMatchQuery\" | .qc.tasks.MTCITSTPC.taskParameters.trackSourcesK0 = \"$TRACKSOURCESK0\" | .qc.tasks.MTCITSTPC.taskParameters.doK0QC = \"false\"" > "$TEMP_FILE"
313+
else
314+
cat "${!DET_JSON_FILE}" | jq ".qc.tasks.GLOMatchTrITSTPC.dataSource.query = \"$ITSTPCMatchQuery\" | .qc.tasks.GLOMatchTrITSTPC.taskParameters.trackSourcesK0 = \"$TRACKSOURCESK0\" | .qc.tasks.GLOMatchTrITSTPC.taskParameters.doK0QC = \"false\"" > "$TEMP_FILE"
315+
fi
316+
fi
317+
DET_JSON_FILE=TEMP_FILE
318+
JSON_TEMP_FILES+=("$TEMP_FILE")
319+
fi
320+
fi
255321
add_QC_JSON GLO_$i ${!DET_JSON_FILE}
256322
fi
257323
done
@@ -303,6 +369,11 @@ elif [[ -z ${QC_JSON_FROM_OUTSIDE:-} ]]; then
303369
fi
304370
MERGED_JSON_FILENAME=$(realpath $MERGED_JSON_FILENAME)
305371

372+
# Clean up: delete the temporary files after use
373+
for tf in "${JSON_TEMP_FILES[@]}"; do
374+
rm -f "$tf"
375+
done
376+
306377
if [[ "${QC_REDIRECT_MERGER_TO_LOCALHOST:-}" == "1" ]]; then
307378
sed -i.bak -E 's/( *)"remoteMachine" *: *".*"(,?) *$/\1"remoteMachine": "127.0.0.1"\2/' $MERGED_JSON_FILENAME
308379
unlink $MERGED_JSON_FILENAME.bak
@@ -341,7 +412,9 @@ if [[ ! -z "${QC_JSON_FROM_OUTSIDE:-}" ]]; then
341412
QC_CONFIG_PARAM="--local-batch=QC.root"
342413
fi
343414
fi
415+
344416
add_W o2-qc "--config json://$QC_JSON_FROM_OUTSIDE ${QC_CONFIG_PARAM} ${QC_CONFIG}"
417+
345418
fi
346419

347420
if [[ ! -z ${GEN_TOPO_QC_JSON_FILE:-} ]]; then

0 commit comments

Comments
 (0)