Skip to content

Commit 2cac15c

Browse files
committed
MUON: improve handling of QC for MCH-MID matching and add MFT-MCH matching
1 parent edb93d6 commit 2cac15c

4 files changed

Lines changed: 214 additions & 8 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"qc": {
3+
"config": {
4+
"database": {
5+
"implementation": "CCDB",
6+
"host": "ali-qcdb.cern.ch:8083",
7+
"username": "not_applicable",
8+
"password": "not_applicable",
9+
"name": "not_applicable"
10+
},
11+
"Activity": {
12+
"number": "42",
13+
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "influxdb-unix:///tmp/telegraf.sock"
17+
},
18+
"consul": {
19+
"url": "null:8500"
20+
},
21+
"conditionDB": {
22+
"url": "null:8083"
23+
}
24+
},
25+
"tasks": {
26+
"FwdTracks": {
27+
"active": "true",
28+
"className": "o2::quality_control_modules::muon::TracksTask",
29+
"moduleName": "QcMUONCommon",
30+
"detectorName": "GLO",
31+
"cycleDurationSeconds": "180",
32+
"maxNumberCycles": "-1",
33+
"dataSource": {
34+
"type": "direct",
35+
"query": "trackMCH:MCH/TRACKS;trackMCHROF:MCH/TRACKROFS;trackMCHTRACKCLUSTERS:MCH/TRACKCLUSTERS;mchtrackdigits:MCH/CLUSTERDIGITS;trackMID:MID/TRACKS;trackMIDROF:MID/TRACKROFS;trackMIDTRACKCLUSTERS:MID/TRACKCLUSTERS;trackClMIDROF:MID/TRCLUSROFS;matchMCHMID:GLO/MTC_MCHMID"
36+
},
37+
"taskParameters": {
38+
"maxTracksPerTF": "600",
39+
"GID": "MCH,MID,MCH-MID"
40+
},
41+
"location": "local",
42+
"mergingMode": "delta",
43+
"localControl": "odc",
44+
"localMachines": [
45+
"localhost",
46+
"epn"
47+
],
48+
"remotePort": "47789",
49+
"remoteMachine": "alio2-cr1-qc01.cern.ch"
50+
}
51+
},
52+
"checks": {}
53+
},
54+
"dataSamplingPolicies": []
55+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"qc": {
3+
"config": {
4+
"database": {
5+
"implementation": "CCDB",
6+
"host": "ali-qcdb.cern.ch:8083",
7+
"username": "not_applicable",
8+
"password": "not_applicable",
9+
"name": "not_applicable"
10+
},
11+
"Activity": {
12+
"number": "42",
13+
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "influxdb-unix:///tmp/telegraf.sock"
17+
},
18+
"consul": {
19+
"url": "null:8500"
20+
},
21+
"conditionDB": {
22+
"url": "null:8083"
23+
}
24+
},
25+
"tasks": {
26+
"FwdTracks": {
27+
"active": "true",
28+
"className": "o2::quality_control_modules::muon::TracksTask",
29+
"moduleName": "QcMUONCommon",
30+
"detectorName": "GLO",
31+
"cycleDurationSeconds": "180",
32+
"maxNumberCycles": "-1",
33+
"dataSource": {
34+
"type": "direct",
35+
"query": "trackMCH:MCH/TRACKS;trackMCHROF:MCH/TRACKROFS;trackMCHTRACKCLUSTERS:MCH/TRACKCLUSTERS;mchtrackdigits:MCH/CLUSTERDIGITS;trackMID:MID/TRACKS;trackMIDROF:MID/TRACKROFS;trackMIDTRACKCLUSTERS:MID/TRACKCLUSTERS;trackClMIDROF:MID/TRCLUSROFS;fwdtracks:GLO/GLFWD;matchMCHMID:GLO/MTC_MCHMID;matchMFTMCH:GLO/MTC_MFTMCH"
36+
},
37+
"taskParameters": {
38+
"maxTracksPerTF": "600",
39+
"GID": "MFT,MCH,MID,MFT-MCH,MCH-MID"
40+
},
41+
"location": "local",
42+
"mergingMode": "delta",
43+
"localControl": "odc",
44+
"localMachines": [
45+
"localhost",
46+
"epn"
47+
],
48+
"remotePort": "47789",
49+
"remoteMachine": "alio2-cr1-qc01.cern.ch"
50+
}
51+
},
52+
"checks": {}
53+
},
54+
"dataSamplingPolicies": []
55+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"qc": {
3+
"config": {
4+
"database": {
5+
"implementation": "CCDB",
6+
"host": "ali-qcdb.cern.ch:8083",
7+
"username": "not_applicable",
8+
"password": "not_applicable",
9+
"name": "not_applicable"
10+
},
11+
"Activity": {
12+
"number": "42",
13+
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "influxdb-unix:///tmp/telegraf.sock"
17+
},
18+
"consul": {
19+
"url": "null:8500"
20+
},
21+
"conditionDB": {
22+
"url": "null:8083"
23+
}
24+
},
25+
"tasks": {
26+
"FwdTracks": {
27+
"active": "true",
28+
"className": "o2::quality_control_modules::muon::TracksTask",
29+
"moduleName": "QcMUONCommon",
30+
"detectorName": "GLO",
31+
"cycleDurationSeconds": "180",
32+
"maxNumberCycles": "-1",
33+
"dataSource": {
34+
"type": "direct",
35+
"query": "trackMCH:MCH/TRACKS;trackMCHROF:MCH/TRACKROFS;trackMCHTRACKCLUSTERS:MCH/TRACKCLUSTERS;mchtrackdigits:MCH/CLUSTERDIGITS;trackMID:MID/TRACKS;trackMIDROF:MID/TRACKROFS;fwdtracks:GLO/GLFWD;matchMFTMCH:GLO/MTC_MFTMCH"
36+
},
37+
"taskParameters": {
38+
"maxTracksPerTF": "600",
39+
"GID": "MFT,MCH,MFT-MCH"
40+
},
41+
"location": "local",
42+
"mergingMode": "delta",
43+
"localControl": "odc",
44+
"localMachines": [
45+
"localhost",
46+
"epn"
47+
],
48+
"remotePort": "47789",
49+
"remoteMachine": "alio2-cr1-qc01.cern.ch"
50+
}
51+
},
52+
"checks": {}
53+
},
54+
"dataSamplingPolicies": []
55+
}

DATA/production/qc-workflow.sh

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ if [[ ! -z $GEN_TOPO_QC_JSON_FILE ]]; then
1010
flock 101 || exit 1
1111
fi
1212

13+
QC_CONFIG=
14+
QC_CONFIG_OVERRIDE=
1315
if [[ -z $QC_JSON_FROM_OUTSIDE && ! -z $GEN_TOPO_QC_JSON_FILE && -f $GEN_TOPO_QC_JSON_FILE ]]; then
1416
QC_JSON_FROM_OUTSIDE=$GEN_TOPO_QC_JSON_FILE
1517
elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
@@ -37,9 +39,6 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
3739
[[ -z "$QC_JSON_ZDC" ]] && has_processing_step ZDC_RECO && QC_JSON_ZDC=consul://o2/components/qc/ANY/any/zdc-rec-epn
3840
if [[ -z "$QC_JSON_MCH" ]]; then
3941
if has_detector MCH && has_processing_step MCH_RECO; then
40-
if has_track_source "MCH-MID"; then
41-
QC_JSON_MCH=consul://o2/components/qc/ANY/any/mch-qcmn-epn-full-track-matching
42-
else
4342
QC_JSON_MCH=consul://o2/components/qc/ANY/any/mch-qcmn-epn-full
4443
fi
4544
else
@@ -65,7 +64,19 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
6564
QC_JSON_TOF_MATCH=consul://o2/components/qc/ANY/any/tof-qcmn-match-itstpctof
6665
fi
6766
fi
67+
68+
if [[ -z "$QC_JSON_MUON_MATCH" ]]; then
69+
if has_track_source "MFT-MCH" && has_track_source "MCH-MID"; then
70+
QC_JSON_MUON_MATCH=consul://o2/components/qc/ANY/any/muon-qcmn-epn-mft-mch-mid
71+
elif has_track_source "MFT-MCH"; then
72+
QC_JSON_MUON_MATCH=consul://o2/components/qc/ANY/any/muon-qcmn-epn-mft-mch
73+
elif has_track_source "MCH-MID"; then
74+
QC_JSON_MUON_MATCH=consul://o2/components/qc/ANY/any/muon-qcmn-epn-mch-mid
75+
fi
76+
fi
77+
6878
[[ -z "$QC_JSON_GLOBAL" ]] && QC_JSON_GLOBAL=$O2DPG_ROOT/DATA/production/qc-sync/qc-global-epn.json # this must be last
79+
6980
elif [[ $SYNCMODE == 1 ]]; then
7081
[[ -z "$QC_JSON_TPC" ]] && QC_JSON_TPC=$O2DPG_ROOT/DATA/production/qc-sync/tpc.json
7182
[[ -z "$QC_JSON_ITS" ]] && QC_JSON_ITS=$O2DPG_ROOT/DATA/production/qc-sync/its.json
@@ -96,7 +107,19 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
96107
QC_JSON_TOF_MATCH=$O2DPG_ROOT/DATA/production/qc-sync/itstpctof.json
97108
fi
98109
fi
110+
111+
if [[ -z "$QC_JSON_MUON_MATCH" ]]; then
112+
if has_track_source "MFT-MCH" && has_track_source "MCH-MID"; then
113+
QC_JSON_MUON_MATCH=$O2DPG_ROOT/DATA/production/qc-sync/mft-mch-mid.json
114+
elif has_track_source "MFT-MCH"; then
115+
QC_JSON_MUON_MATCH=$O2DPG_ROOT/DATA/production/qc-sync/mft-mch.json
116+
elif has_track_source "MCH-MID"; then
117+
QC_JSON_MUON_MATCH=$O2DPG_ROOT/DATA/production/qc-sync/mch-mid.json
118+
fi
119+
fi
120+
99121
[[ -z "$QC_JSON_GLOBAL" ]] && QC_JSON_GLOBAL=$O2DPG_ROOT/DATA/production/qc-sync/qc-global.json # this must be last
122+
100123
else
101124
[[ -z "$QC_JSON_TPC" ]] && QC_JSON_TPC=$O2DPG_ROOT/DATA/production/qc-async/tpc.json
102125
[[ -z "$QC_JSON_ITS" ]] && QC_JSON_ITS=$O2DPG_ROOT/DATA/production/qc-async/its.json
@@ -133,16 +156,20 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
133156
echo "Error fetching QC JSON $2"
134157
exit 1
135158
fi
136-
JSON_FILES+=" $TMP_FILENAME"
137159
else
138-
JSON_FILES+=" ${2}"
160+
TMP_FILENAME=$2
161+
fi
162+
JSON_FILES+=" $TMP_FILENAME"
163+
jq -rM '""' > /dev/null < $TMP_FILENAME
164+
if [[ $? != 0 ]]; then
165+
echo "Invalid QC JSON $2" 1>&2
166+
exit 1
139167
fi
140168
OUTPUT_SUFFIX+="-$1"
141169
}
142170

143171
JSON_FILES=
144172
OUTPUT_SUFFIX=
145-
QC_CONFIG=
146173

147174
# TOF matching
148175
if has_detector_qc TOF && [ ! -z "$QC_JSON_TOF_MATCH" ]; then
@@ -189,7 +216,7 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
189216
else
190217
MERGED_JSON_FILENAME=$GEN_TOPO_QC_JSON_FILE
191218
fi
192-
jq -n 'reduce inputs as $s (input; .qc.tasks += ($s.qc.tasks) | .qc.checks += ($s.qc.checks) | .qc.externalTasks += ($s.qc.externalTasks) | .qc.postprocessing += ($s.qc.postprocessing)| .dataSamplingPolicies += ($s.dataSamplingPolicies))' $QC_JSON_GLOBAL $JSON_FILES >$MERGED_JSON_FILENAME
219+
jq -n 'reduce inputs as $s (input; .qc.tasks += ($s.qc.tasks) | .qc.checks += ($s.qc.checks) | .qc.externalTasks += ($s.qc.externalTasks) | .qc.postprocessing += ($s.qc.postprocessing)| .dataSamplingPolicies += ($s.dataSamplingPolicies))' $QC_JSON_GLOBAL $JSON_FILES > $MERGED_JSON_FILENAME
193220
if [[ $? != 0 ]]; then
194221
echo Merging QC workflow with JSON files $JSON_FILES failed 1>&2
195222
exit 1
@@ -199,7 +226,7 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
199226
if [[ "0$QC_REDIRECT_MERGER_TO_LOCALHOST" == "01" ]]; then
200227
sed -i.bak -E 's/( *)"remoteMachine" *: *".*"(,?) *$/\1"remoteMachine": "127.0.0.1"\2/' $MERGED_JSON_FILENAME
201228
unlink $MERGED_JSON_FILENAME.bak
202-
QC_CONFIG+="--override-values \"qc.config.database.host=ccdb-test.cern.ch:8080\""
229+
QC_CONFIG_OVERRIDE+="qc.config.database.host=ccdb-test.cern.ch:8080;"
203230
fi
204231

205232
if [[ "0$GEN_TOPO_QC_OVERRIDE_CCDB_SERVER" != "0" ]]; then
@@ -211,7 +238,21 @@ elif [[ -z $QC_JSON_FROM_OUTSIDE ]]; then
211238
rm -Rf $FETCHTMPDIR
212239
fi
213240

241+
[[ $EPNSYNCMODE == 1 && $NUMAGPUIDS == 1 ]] && QC_CONFIG_OVERRIDE+="qc.config.infologger.filterDiscardFile=../../qc-_ID_${NUMAID}.log;"
242+
243+
[[ ! -z $QC_CONFIG_OVERRIDE ]] && QC_CONFIG+=" --override-values \"$QC_CONFIG_OVERRIDE\""
244+
214245
if [[ ! -z "$QC_JSON_FROM_OUTSIDE" ]]; then
246+
if [[ ! -f $QC_JSON_FROM_OUTSIDE ]]; then
247+
echo QC JSON FILE $QC_JSON_FROM_OUTSIDE missing 1>&2
248+
exit 1
249+
fi
250+
jq -rM '""' > /dev/null < $QC_JSON_FROM_OUTSIDE
251+
if [[ $? != 0 ]]; then
252+
echo "Final QC JSON FILE $QC_JSON_FROM_OUTSIDE has invalid syntax" 1>&2
253+
#cat $QC_JSON_FROM_OUTSIDE 1>&2
254+
exit 1
255+
fi
215256
add_W o2-qc "--config json://$QC_JSON_FROM_OUTSIDE ${QC_CONFIG_PARAM:---local --host ${QC_HOST:-localhost}} ${QC_CONFIG}"
216257
fi
217258

0 commit comments

Comments
 (0)