Warning, /epic-lfhcal-tbana/examples/yall/fullset-g1-repro/Yallfile is written in an unsupported language. File is not indexed.
0001 campaign lfhcal-tb2026-fullset-g1-repro
0002 backend condor
0003
0004 # Set to full to record operator accounts when permitted by your site's privacy policy.
0005 %account-provenance off
0006
0007 # Reproduce Fredi's SPS H2 FullSetG_1 calibration chain from raw data.
0008 # Source recipe:
0009 # NewStructure/convertDataHGCROC_TBSPSH2_2026.sh
0010 # NewStructure/runHGCROCCalibration_TBSPSH2_2026.sh
0011 # NewStructure/helperCalibHGCROC.sh
0012 # NewStructure/stripCalib_TBSPSH2_2026.sh
0013 #
0014 # FullSetG_1 uses pedestal run 485 and muon runs
0015 # 484, 486, 487, 488, 489, 490, and 491 merged as Muon_FullSetG_1.
0016 #
0017 # Unlike FullSet F, Set G uses the V1 summing-board mapping together with the
0018 # FullSetG bad-channel map and FullSetG ToA offsets.
0019 #
0020 # Fredi's published reference calibration is:
0021 # ../../../calibrations/TB2026/calib_SPS-H2_FullSetG_1.txt
0022 #
0023 # The ToA offsets are consumed from the published FullSetG file. This workflow
0024 # does not rederive them from hadron run 498.
0025 #
0026 # fixSetup is intentionally omitted: it repairs already-converted files after
0027 # mapping changes. This workflow converts fresh from raw using the current map.
0028
0029 @env LFHCAL_DATA
0030 @env LFHCAL_WORK
0031 @env EIC_SHELL
0032
0033 @set BUILD ../../../NewStructure/build
0034 @set TB2026_CONFIG ../../../configs/TB2026
0035 @set WORK fullset-g1-repro
0036 @set SET FullSetG_1
0037 @set MAPPING ../../../configs/TB2026/mapping_HGCROC_SPSH2TB_sumV1_default.csv
0038 @set BAD_CHANNELS ../../../configs/TB2026/badChannel_HGCROC_SPSTB2026_FullSetG.txt
0039 @set TOA ../../../configs/TB2026/ToAOffsets_TBSPS2026_FullSetG.csv
0040 @set RUNDB ../../../configs/TB2026/DataTakingDB_TBSPSH2_202605_HGCROC.csv
0041
0042 # Scientific run configuration lives here.
0043 @table runs type run:
0044 pedestal 485
0045 muon 484
0046 muon 486
0047 muon 487
0048 muon 488
0049 muon 489
0050 muon 490
0051 muon 491
0052
0053 %cpus 1
0054 %memory 4GB
0055 %disk 8GB
0056 %time 2h
0057 %getenv true
0058 %wrapper ../../../tools/run-in-eic-shell.sh {EIC_SHELL} /usr/bin/env ROOT_MAX_THREADS=1 OMP_NUM_THREADS=1
0059
0060 # Lightweight directory setup runs during `yall-run create`, not as a Condor job.
0061 %preflight /bin/mkdir -p \
0062 {LFHCAL_WORK}/{WORK}/converted \
0063 {LFHCAL_WORK}/{WORK}/pedestal \
0064 {LFHCAL_WORK}/{WORK}/transfer \
0065 {LFHCAL_WORK}/{WORK}/mip \
0066 {LFHCAL_WORK}/{WORK}/selected \
0067 {LFHCAL_WORK}/{WORK}/refine1 \
0068 {LFHCAL_WORK}/{WORK}/refine2 \
0069 {LFHCAL_WORK}/{WORK}/refine3 \
0070 {LFHCAL_WORK}/{WORK}/refine4 \
0071 {LFHCAL_WORK}/{WORK}/refine5 \
0072 {LFHCAL_WORK}/{WORK}/final \
0073 {LFHCAL_WORK}/{WORK}/plots/pedestal \
0074 {LFHCAL_WORK}/{WORK}/plots/transfer \
0075 {LFHCAL_WORK}/{WORK}/plots/mip \
0076 {LFHCAL_WORK}/{WORK}/plots/refine1 \
0077 {LFHCAL_WORK}/{WORK}/plots/refine2 \
0078 {LFHCAL_WORK}/{WORK}/plots/refine3 \
0079 {LFHCAL_WORK}/{WORK}/plots/refine4 \
0080 {LFHCAL_WORK}/{WORK}/plots/refine5
0081
0082 # Convert every raw run through one task family.
0083 convert-{type}-{run}:
0084 @each type run in runs
0085 @input raw {LFHCAL_DATA}/Run{run}.h2g
0086 @input mapping {MAPPING}
0087 @input rundb {RUNDB}
0088 @output root {LFHCAL_WORK}/{WORK}/converted/rawHGCROC_{run}.root
0089 %memory 2GB
0090 {BUILD}/Convert -d 0 -f -w -c @input.raw \
0091 -o @output.root -m @input.mapping -r @input.rundb
0092
0093 # Binding type=muon restricts the patterned parent fan-in, and therefore
0094 # @input.parts, to the seven muon conversions.
0095 merge-{type}: convert-{type}-{run}
0096 @each type muon
0097 @input parts {LFHCAL_WORK}/{WORK}/converted/rawHGCROC_{run}.root
0098 @output root {LFHCAL_WORK}/{WORK}/converted/rawHGCROC_Muon_{SET}.root
0099 hadd -f @output.root @input.parts
0100
0101 # Bind type here; run is inherited from the compatible conversion row.
0102 {type}-{run}: convert-{type}-{run}
0103 @each type pedestal
0104 @input raw {LFHCAL_WORK}/{WORK}/converted/rawHGCROC_{run}.root
0105 @input rundb {RUNDB}
0106 @output root {LFHCAL_WORK}/{WORK}/pedestal/rawHGCROC_wPed.root
0107 @output calib {LFHCAL_WORK}/{WORK}/pedestal/rawHGCROC_wPed_calib.txt
0108 @output hists {LFHCAL_WORK}/{WORK}/pedestal/rawHGCROC_wPed_Hists.root
0109 @output plots {LFHCAL_WORK}/{WORK}/plots/pedestal/Run{run}
0110 {BUILD}/DataPrep -a -d 1 -p -i @input.raw -f \
0111 -o @output.root -O @output.plots -r @input.rundb -F pdf
0112
0113 # The patterned pedestal parent keeps this dependency tied to the run table.
0114 transfer-g1: merge-muon {type}-{run}
0115 @input pedestal {LFHCAL_WORK}/{WORK}/pedestal/rawHGCROC_wPed.root
0116 @input raw {LFHCAL_WORK}/{WORK}/converted/rawHGCROC_Muon_{SET}.root
0117 @input bad {BAD_CHANNELS}
0118 @input toa {TOA}
0119 @input rundb {RUNDB}
0120 @output root {LFHCAL_WORK}/{WORK}/transfer/rawHGCROC_wPed_wBC_Muon_{SET}.root
0121 @output plots {LFHCAL_WORK}/{WORK}/plots/transfer/Muon_{SET}
0122 {BUILD}/DataPrep -d 1 -e -f -P @input.pedestal \
0123 -i @input.raw -o @output.root -O @output.plots \
0124 -r @input.rundb -B @input.bad -G @input.toa
0125
0126 mip-g1: transfer-g1
0127 @input root {LFHCAL_WORK}/{WORK}/transfer/rawHGCROC_wPed_wBC_Muon_{SET}.root
0128 @input rundb {RUNDB}
0129 @output root {LFHCAL_WORK}/{WORK}/mip/rawHGCROC_wPedwMuon_wBC_Muon_{SET}.root
0130 @output calib {LFHCAL_WORK}/{WORK}/mip/rawHGCROC_wPedwMuon_wBC_Muon_{SET}_calib.txt
0131 @output hists {LFHCAL_WORK}/{WORK}/mip/rawHGCROC_wPedwMuon_wBC_Muon_{SET}_Hists.root
0132 @output plots {LFHCAL_WORK}/{WORK}/plots/mip/Muon_{SET}
0133 {BUILD}/DataPrep -a -f -d 1 -e -s -i @input.root \
0134 -o @output.root -O @output.plots -r @input.rundb
0135
0136 select-g1: mip-g1
0137 @input root {LFHCAL_WORK}/{WORK}/mip/rawHGCROC_wPedwMuon_wBC_Muon_{SET}.root
0138 @output root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0139 {BUILD}/DataPrep -f -d 1 -X -i @input.root -o @output.root
0140
0141 # Fredi's *_red_woE recipe keeps fitting the same skimmed MIP sample and feeds
0142 # the previous pass's text calibration back with -k. It does not feed the
0143 # previous ROOT output into the next pass.
0144 refine1-g1: select-g1
0145 @input root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0146 @input rundb {RUNDB}
0147 @output root {LFHCAL_WORK}/{WORK}/refine1/rawHGCROC_wPedwMuon_wBC_ImpR_Muon_{SET}.root
0148 @output calib {LFHCAL_WORK}/{WORK}/refine1/rawHGCROC_wPedwMuon_wBC_ImpR_Muon_{SET}_calib.txt
0149 @output plots {LFHCAL_WORK}/{WORK}/plots/refine1/Muon_{SET}
0150 {BUILD}/DataPrep -x -a -f -d 1 -S -i @input.root \
0151 -o @output.root -O @output.plots -r @input.rundb
0152
0153 refine2-g1: refine1-g1
0154 @input root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0155 @input prev {LFHCAL_WORK}/{WORK}/refine1/rawHGCROC_wPedwMuon_wBC_ImpR_Muon_{SET}_calib.txt
0156 @input rundb {RUNDB}
0157 @output root {LFHCAL_WORK}/{WORK}/refine2/rawHGCROC_wPedwMuon_wBC_Imp2R_Muon_{SET}.root
0158 @output calib {LFHCAL_WORK}/{WORK}/refine2/rawHGCROC_wPedwMuon_wBC_Imp2R_Muon_{SET}_calib.txt
0159 @output plots {LFHCAL_WORK}/{WORK}/plots/refine2/Muon_{SET}
0160 {BUILD}/DataPrep -x -a -f -d 1 -S -i @input.root -k @input.prev \
0161 -o @output.root -O @output.plots -r @input.rundb
0162
0163 refine3-g1: refine2-g1
0164 @input root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0165 @input prev {LFHCAL_WORK}/{WORK}/refine2/rawHGCROC_wPedwMuon_wBC_Imp2R_Muon_{SET}_calib.txt
0166 @input rundb {RUNDB}
0167 @output root {LFHCAL_WORK}/{WORK}/refine3/rawHGCROC_wPedwMuon_wBC_Imp3R_Muon_{SET}.root
0168 @output calib {LFHCAL_WORK}/{WORK}/refine3/rawHGCROC_wPedwMuon_wBC_Imp3R_Muon_{SET}_calib.txt
0169 @output plots {LFHCAL_WORK}/{WORK}/plots/refine3/Muon_{SET}
0170 {BUILD}/DataPrep -x -a -f -d 1 -S -i @input.root -k @input.prev \
0171 -o @output.root -O @output.plots -r @input.rundb
0172
0173 refine4-g1: refine3-g1
0174 @input root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0175 @input prev {LFHCAL_WORK}/{WORK}/refine3/rawHGCROC_wPedwMuon_wBC_Imp3R_Muon_{SET}_calib.txt
0176 @input rundb {RUNDB}
0177 @output root {LFHCAL_WORK}/{WORK}/refine4/rawHGCROC_wPedwMuon_wBC_Imp4R_Muon_{SET}.root
0178 @output calib {LFHCAL_WORK}/{WORK}/refine4/rawHGCROC_wPedwMuon_wBC_Imp4R_Muon_{SET}_calib.txt
0179 @output plots {LFHCAL_WORK}/{WORK}/plots/refine4/Muon_{SET}
0180 {BUILD}/DataPrep -x -a -f -d 1 -S -i @input.root -k @input.prev \
0181 -o @output.root -O @output.plots -r @input.rundb
0182
0183 refine5-g1: refine4-g1
0184 @input root {LFHCAL_WORK}/{WORK}/selected/rawHGCROC_mipTrigg_wPedwMuon_wBC_Muon_{SET}.root
0185 @input prev {LFHCAL_WORK}/{WORK}/refine4/rawHGCROC_wPedwMuon_wBC_Imp4R_Muon_{SET}_calib.txt
0186 @input rundb {RUNDB}
0187 @output root {LFHCAL_WORK}/{WORK}/refine5/rawHGCROC_wPedwMuon_wBC_Imp5R_Muon_{SET}.root
0188 @output calib {LFHCAL_WORK}/{WORK}/refine5/rawHGCROC_wPedwMuon_wBC_Imp5R_Muon_{SET}_calib.txt
0189 @output plots {LFHCAL_WORK}/{WORK}/plots/refine5/Muon_{SET}
0190 {BUILD}/DataPrep -x -a -f -d 1 -S -i @input.root -k @input.prev \
0191 -o @output.root -O @output.plots -r @input.rundb
0192
0193 final-g1: refine5-g1
0194 @input root {LFHCAL_WORK}/{WORK}/refine5/rawHGCROC_wPedwMuon_wBC_Imp5R_Muon_{SET}.root
0195 @input calib {LFHCAL_WORK}/{WORK}/refine5/rawHGCROC_wPedwMuon_wBC_Imp5R_Muon_{SET}_calib.txt
0196 @output root {LFHCAL_WORK}/{WORK}/final/calib_Final_Muon_{SET}.root
0197 @output calib {LFHCAL_WORK}/{WORK}/final/calib_Final_Muon_{SET}_calib.txt
0198 ! /bin/mkdir -p {LFHCAL_WORK}/{WORK}/final && \
0199 /bin/cp @input.root @output.root && /bin/cp @input.calib @output.calib