Skip to content

Commit 571cf72

Browse files
sawenzelclaude
andcommitted
Add an example for UPC events in hadronic Pb-Pb pile-up
This commit provides an example script that embeds STARlight UPC events into hadronic Pb-Pb pile-up, anchored to a real run. - Every N-th collision (default 10) is a UPC event in its own bunch crossing; the others are Angantyr Pb-Pb collisions. - The interaction rate and the timeframe length come from the anchor run. - The number of background events is set so that none repeats within a timeframe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent ae342a1 commit 571cf72

1 file changed

Lines changed: 80 additions & 0 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#!/usr/bin/env bash
2+
#JDL_PACKAGE=VO_ALICE@O2PDPSuite::MC-prod-2026-v11-1
3+
#JDL_OUTPUT=AO2D.root@disk=2,debug_log_archive.tgz@disk=2
4+
#JDL_ERROROUTPUT=debug_log_archive.tgz@disk=2
5+
6+
# Anchored Pb-Pb MC: STARlight UPC events embedded in hadronic (Pythia8 Angantyr) pile-up
7+
# at the interaction rate of the anchor run.
8+
#
9+
# Every UPC_EVERY_N-th collision of the anchor run's collision sequence is replaced by a
10+
# UPC event in its own bunch crossing; all other collisions are hadronic Pb-Pb collisions.
11+
# The interaction-rate dependence is obtained by choosing anchor runs at different rates.
12+
# In the AOD, the UPC collisions have generator ID 51 (mcCollision.getGeneratorId()).
13+
#
14+
# Knobs:
15+
# UPC_PROCESS STARlight process (as in makeStarlightConfig.py)
16+
# UPC_EVERY_N every N-th collision is a UPC event;
17+
# the hadronic pile-up density is (N-1)/N of the real one
18+
# NBKG distinct Angantyr events per job; should exceed the number of
19+
# hadronic collisions in one timeframe, so that none repeats within it
20+
# ANCHOR_RUN anchor run; the interaction rate is taken from its CTP scalers
21+
# NTIMEFRAMES timeframes per job; the background is simulated once per job,
22+
# so more timeframes per job is cheaper than many short jobs
23+
#
24+
# The timeframe length is taken from the anchor run (32 orbits for 2023 Pb-Pb).
25+
# Do not force longer timeframes with ALIEN_JDL_MC_ORBITS_PER_TF: with realistic
26+
# hadronic pile-up, TPC digitisation then exceeds the memory of a GRID slot.
27+
#
28+
# Submit to the GRID with
29+
# ${O2DPG_ROOT}/GRID/utils/grid_submit.sh --script upc_in_hadronic_pileup.sh --jobname upc --cores 8 --ttl 43200
30+
31+
UPC_PROCESS=${UPC_PROCESS:-kCohJpsiToMu}
32+
UPC_EVERY_N=${UPC_EVERY_N:-10}
33+
NBKG=${NBKG:-150}
34+
ANCHOR_RUN=${ANCHOR_RUN:-544868}
35+
36+
export O2DPG_MC_CONFIG_ROOT=${O2DPG_MC_CONFIG_ROOT:-${O2DPG_ROOT}}
37+
38+
# anchoring: Pb-Pb 2023, apass5
39+
export ALIEN_JDL_LPMANCHORPASSNAME=apass5
40+
export ALIEN_JDL_MCANCHOR=apass5
41+
export ALIEN_JDL_LPMANCHORYEAR=2023
42+
export ALIEN_JDL_LPMINTERACTIONTYPE=PbPb
43+
export ALIEN_JDL_LPMPRODUCTIONTYPE=MC
44+
export ALIEN_JDL_LPMPRODUCTIONTAG=${ALIEN_JDL_LPMPRODUCTIONTAG:-UPCPileupExample}
45+
export ALIEN_JDL_LPMRUNNUMBER=${ANCHOR_RUN}
46+
export ALIEN_JDL_LPMANCHORRUN=${ANCHOR_RUN}
47+
export ALIEN_JDL_LPMANCHORPRODUCTION=LHC23zzh
48+
# reconstruction with the software of the data pass (2-tag setup)
49+
export ALIEN_JDL_O2DPG_ASYNC_RECO_TAG=VO_ALICE@O2PDPSuite::async-async-2023-PbPb-apass5-v8-slc9-alidist-async-2023-PbPb-apass5-v8-1
50+
export ALIEN_JDL_TPCDEDXCLMASK=7
51+
export ALIEN_JDL_TPCCLUSTERFILTER=2
52+
export ALIEN_JDL_TPCCHICUTOPT=0
53+
export ALIEN_JDL_TPCCLUSEDGEREDEF=0.5
54+
55+
export NTIMEFRAMES=${NTIMEFRAMES:-2}
56+
export NSIGEVENTS=10000 # no cap: the timeframe is filled by the interaction rate
57+
export SPLITID=${ALIEN_O2DPG_GRIDSUBMIT_SUBJOBID:-1}
58+
export PRODSPLIT=${ALIEN_O2DPG_GRIDSUBMIT_PRODSPLIT:-1}
59+
export CYCLE=0
60+
export DISABLE_QC=1
61+
export PUBLISH_MCPRODINFO=0 # example: do not publish to CCDB
62+
63+
cat > simconfig.json <<'EOF'
64+
{
65+
"ConfigParams": {
66+
"TPCEleParam": {
67+
"doSaturationTail" : "1"
68+
}
69+
}
70+
}
71+
EOF
72+
73+
${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/ini/makeStarlightConfig.py --process ${UPC_PROCESS} --collType PbPb --eCM 5360 --rapidity cent_rap
74+
75+
export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen external -trigger external -ini ../GenStarlight.ini \
76+
-confKey 'PrimaryGenerator.id=51;SimCutParams.stepTrackRefHook=true' \
77+
--embedding -genBkg pythia8 -procBkg heavy_ion -nb ${NBKG} --embeddPattern r0:e${UPC_EVERY_N} \
78+
--overwrite-config simconfig.json --no-tpc-digitchunking --tpc-distortion-type 2 --tpc-corrmap-lumi-mode 2"
79+
80+
${O2DPG_ROOT}/MC/run/ANCHOR/anchorMC.sh

0 commit comments

Comments
 (0)