Skip to content

Commit 3c754f3

Browse files
Merge pull request #8736 from chiarazampolli/calib-workflow
Calib workflow
1 parent dbcac13 commit 3c754f3

File tree

5 files changed

+134
-7
lines changed

5 files changed

+134
-7
lines changed

Detectors/TOF/calibration/testWorkflow/tof-diagnostic-workflow.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ using namespace o2::framework;
1818
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
1919
{
2020
// option allowing to set parameters
21-
workflowOptions.push_back(ConfigParamSpec{"run-number", o2::framework::VariantType::Int, -1, {"run number"}});
21+
workflowOptions.push_back(ConfigParamSpec{"tof-dia-run-number", o2::framework::VariantType::Int, -1, {"run number"}});
2222
}
2323

2424
// ------------------------------------------------------------------
@@ -28,7 +28,7 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2828
WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
2929
{
3030
WorkflowSpec specs;
31-
auto runnumber = configcontext.options().get<int>("run-number");
31+
auto runnumber = configcontext.options().get<int>("tof-dia-run-number");
3232
specs.emplace_back(getTOFDiagnosticCalibDeviceSpec(runnumber));
3333
return specs;
3434
}
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#!/bin/bash
2+
3+
#SEVERITY="detail"
4+
#ENABLE_METRICS=1
5+
6+
source $O2DPG_ROOT/DATA/common/setenv.sh
7+
source $O2_ROOT/prodtests/full-system-test/workflow-setup.sh
8+
source $O2DPG_ROOT/DATA/common/getCommonArgs.sh
9+
source $O2DPG_ROOT/DATA/common/setenv_calib.sh
10+
11+
# check that WORKFLOW_DETECTORS is needed, otherwise the wrong calib wf will be built
12+
if [[ -z $WORKFLOW_DETECTORS ]]; then echo "WORKFLOW_DETECTORS must be defined" 1>&2; exit 1; fi
13+
14+
# CCDB destination for uploads
15+
[[ -z ${CCDB_POPULATOR_UPLOAD_PATH+x} ]] && CCDB_POPULATOR_UPLOAD_PATH="none"
16+
echo "CCDB_POPULATOR_UPLOAD_PATH = $CCDB_POPULATOR_UPLOAD_PATH" 1>&2
17+
18+
# Adding calibrations
19+
EXTRA_WORKFLOW_CALIB=
20+
21+
echo "CALIB_PRIMVTX_MEANVTX = $CALIB_PRIMVTX_MEANVTX" 1>&2
22+
echo "CALIB_TOF_LHCPHASE = $CALIB_TOF_LHCPHASE" 1>&2
23+
echo "CALIB_TOF_CHANNELOFFSETS = $CALIB_TOF_CHANNELOFFSETS" 1>&2
24+
echo "CALIB_TOF_DIAGNOSTICS = $CALIB_TOF_DIAGNOSTICS" 1>&2
25+
echo "CALIB_EMC_CHANNELCALIB = $CALIB_EMC_CHANNELCALIB" 1>&2
26+
echo "CALIB_PHS_ENERGYCALIB = $CALIB_PHS_ENERGYCALIB" 1>&2
27+
echo "CALIB_PHS_BADMAPCALIB = $CALIB_PHS_BADMAPCALIB" 1>&2
28+
echo "CALIB_PHS_TURNONCALIB = $CALIB_PHS_TURNONCALIB" 1>&2
29+
echo "CALIB_PHS_RUNBYRUNCALIB = $CALIB_PHS_RUNBYRUNCALIB" 1>&2
30+
echo "CALIB_TRD_VDRIFTEXB = $CALIB_TRD_VDRIFTEXB" 1>&2
31+
32+
# PrimVertex
33+
if [[ $CALIB_PRIMVTX_MEANVTX == 1 ]]; then
34+
EXTRA_WORKFLOW_CALIB+="o2-calibration-mean-vertex-calibration-workflow $ARGS_ALL | "
35+
fi
36+
37+
# TOF
38+
if [[ $CALIB_TOF_LHCPHASE == 1 ]] || [[ $CALIB_TOF_CHANNELOFFSETS == 1 ]]; then
39+
if [[ $CALIB_TOF_LHCPHASE == 1 ]]; then
40+
EXTRA_WORKFLOW_CALIB+="o2-calibration-tof-calib-workflow $ARGS_ALL --do-lhc-phase --tf-per-slot 10 | "
41+
fi
42+
if [[ $CALIB_TOF_CHANNELOFFSETS == 1 ]]; then
43+
EXTRA_WORKFLOW_CALIB+="o2-calibration-tof-calib-workflow $ARGS_ALL --do-channel-offset --update-at-end-of-run-only --min-entries 8 --range 100000 | "
44+
fi
45+
fi
46+
if [[ $CALIB_TOF_DIAGNOSTICS == 1 ]]; then
47+
EXTRA_WORKFLOW_CALIB+="o2-calibration-tof-diagnostic-workflow $ARGS_ALL --tf-per-slot 26400 | "
48+
fi
49+
50+
# TRD
51+
if [[ $CALIB_TRD_VDRIFTEXB == 1 ]]; then
52+
EXTRA_WORKFLOW_CALIB+="o2-calibration-trd-vdrift-exb $ARGS_ALL | "
53+
fi
54+
55+
# Calo cal
56+
# EMC
57+
if [[ $CALIB_EMC_CHANNELCALIB == 1 ]]; then
58+
EXTRA_WORKFLOW_CALIB+="o2-calibration-emcal-channel-calib-workflow --calibMode timeCalib $ARGS_ALL | "
59+
fi
60+
61+
# PHS
62+
if [[ $CALIB_PHS_ENERGYCALIB == 1 ]]; then
63+
EXTRA_WORKFLOW_CALIB+="o2-phos-calib-workflow --energy $ARGS_ALL | "
64+
fi
65+
if [[ $CALIB_PHS_BADMAPCALIB == 1 ]]; then
66+
EXTRA_WORKFLOW_CALIB+="o2-phos-calib-workflow --badmap --mode 0 $ARGS_ALL | "
67+
fi
68+
if [[ $CALIB_PHS_TURNONCALIB == 1 ]]; then
69+
EXTRA_WORKFLOW_CALIB+="o2-phos-calib-workflow --turnon $ARGS_ALL | "
70+
fi
71+
if [[ $CALIB_PHS_RUNBYRUNCALIB == 1 ]]; then
72+
EXTRA_WORKFLOW_CALIB+="o2-phos-calib-workflow --runbyrun $ARGS_ALL | "
73+
fi
74+
75+
# starting with empty workflow
76+
if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR ; then
77+
WORKFLOW=
78+
fi
79+
80+
# adding output proxies
81+
if workflow_has_parameter CALIB_PROXIES; then
82+
if [[ ! -z $CALIBDATASPEC_BARREL ]]; then
83+
WORKFLOW+="o2-dpl-raw-proxy ${ARGS_ALL} --dataspec \"$CALIBDATASPEC_BARREL\" $(get_proxy_connection barrel input) | "
84+
fi
85+
if [[ ! -z $CALIBDATASPEC_CALO ]]; then
86+
WORKFLOW+="o2-dpl-raw-proxy ${ARGS_ALL} --dataspec \"$CALIBDATASPEC_CALO\" $(get_proxy_connection calo input) | "
87+
fi
88+
fi
89+
90+
WORKFLOW+=$EXTRA_WORKFLOW_CALIB
91+
92+
if [[ $CCDB_POPULATOR_UPLOAD_PATH != "none" ]]; then WORKFLOW+="o2-calibration-ccdb-populator-workflow --ccdb-path $CCDB_POPULATOR_UPLOAD_PATH $ARGS_ALL | "; fi
93+
94+
if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then
95+
WORKFLOW+="o2-dpl-run $ARGS_ALL $GLOBALDPLOPT -b"
96+
if [ $WORKFLOWMODE == "print" ]; then
97+
echo Workflow command adding aggregator:
98+
echo $WORKFLOW | sed "s/| */|\n/g"
99+
else
100+
# Execute the command we have assembled
101+
WORKFLOW+=" --$WORKFLOWMODE"
102+
eval $WORKFLOW
103+
fi
104+
fi
Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,30 @@
11
#!/bin/bash
22

3+
source $O2DPG_ROOT/DATA/common/setenv.sh
4+
source $O2DPG_ROOT/DATA/common/setenv_calib.sh
5+
36
if [[ -z "$WORKFLOW" ]] || [[ -z "$MYDIR" ]]; then
47
echo This script must be called from the dpl-workflow.sh and not standalone 1>&2
58
exit 1
69
fi
710

8-
if [[ $BEAMTYPE != "cosmic" ]]; then
9-
has_detector_calib TPC && has_detectors TPC ITS TRD TOF && add_W o2-tpc-scdcalib-interpolation-workflow "$DISABLE_ROOT_OUTPUT --disable-root-input --pipeline $(get_N tpc-track-interpolation TPC REST)" "$ITSMFT_FILES"
10-
has_detector_calib ITS && has_detectors ITS && has_detectors_reco ITS && has_detector_matching PRIMVTX && [[ ! -z "$VERTEXING_SOURCES" ]] && add_W o2-calibration-mean-vertex-calibration-workflow
11-
has_detector_calib TRD && has_detector ITS TPC TRD && add_W o2-calibration-trd-vdrift-exb
11+
# you cannot have a locally integrated aggregator with the proxies
12+
if workflow_has_parameters CALIB_LOCAL_INTEGRATED_AGGREGATOR CALIB_PROXIES; then
13+
echo "you cannot have a locally integrated aggregator with the proxies" 1>&2
14+
exit 2
15+
fi
16+
17+
# specific calibration workflows
18+
if [[ $CALIB_TPC_SCDCALIB == 1 ]]; then add_W o2-tpc-scdcalib-interpolation-workflow "$DISABLE_ROOT_OUTPUT --disable-root-input --pipeline $(get_N tpc-track-interpolation TPC REST)" "$ITSMFT_FILES"; fi
19+
20+
# output-proxy for aggregator
21+
if workflow_has_parameter CALIB_PROXIES; then
22+
if [[ ! -z $CALIBDATASPEC_BARREL ]]; then
23+
WORKFLOW+="o2-dpl-output-proxy ${ARGS_ALL} --dataspec \"$CALIBDATASPEC_BARREL\" $(get_proxy_connection barrel output) | "
24+
fi
25+
if [[ ! -z $CALIBDATASPEC_CALO ]]; then
26+
WORKFLOW+="o2-dpl-output-proxy ${ARGS_ALL} --dataspec \"$CALIBDATASPEC_CALO\" $(get_proxy_connection calo output) | "
27+
fi
1228
fi
1329

1430
true # everything OK up to this point, so the script should return 0 (it is !=0 already if a has_detector check fails)

prodtests/full-system-test/dpl-workflow.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,8 @@ fi
385385

386386
# ---------------------------------------------------------------------------------------------------------------------
387387
# Calibration workflows
388-
workflow_has_parameter CALIB && { source $MYDIR/calib-workflow.sh; [[ $? != 0 ]] && exit 1; }
388+
workflow_has_parameter CALIB && { source ${CALIB_WF:-$MYDIR/calib-workflow.sh}; [[ $? != 0 ]] && exit 1; }
389+
workflow_has_parameters CALIB CALIB_LOCAL_INTEGRATED_AGGREGATOR && { source ${CALIB_AGGREGATOR_WF:-$MYDIR/aggregator-workflow.sh}; [[ $? != 0 ]] && exit 1; }
389390

390391
# ---------------------------------------------------------------------------------------------------------------------
391392
# Event display

prodtests/full-system-test/workflow-setup.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
22

3+
# used to avoid sourcing this file 2x
4+
if [[ -z $SOURCE_GUARD_WORKFLOW_SETUP ]]; then
5+
SOURCE_GUARD_WORKFLOW_SETUP=1
6+
37
# ---------------------------------------------------------------------------------------------------------------------
48
#Some additional settings used in this workflow
59

@@ -106,3 +110,5 @@ add_W() # Add binarry to workflow command USAGE: add_W [BINARY] [COMMAND_LINE_OP
106110
[[ ! -z "$KEY_VALUES" ]] && KEY_VALUES="--configKeyValues \"$KEY_VALUES\""
107111
WORKFLOW+="$1 $ARGS_ALL $2 ${!NAME_PROC_ARGS} $KEY_VALUES | "
108112
}
113+
114+
fi # workflow-setup.sh sourced

0 commit comments

Comments
 (0)