Private data schema
Introduction
Depending on where you're running the analysis, you can find the ntuples in one of the following locations:
on LXPLUS:
/eos/atlas/atlascerngroupdisk/phys-exotics/jdm/ANA-EXOT-2024-01_dibjetISR/ntuples
or on AF UChicago:
/data/jiling/TLA/eos_ntuples
Directory structure
$ pwd
/eos/atlas/atlascerngroupdisk/phys-exotics/jdm/ANA-EXOT-2024-01_dibjetISR/ntuples
$ tree -L 3
.
├── data22
│ ├── nv0.1
│ │ └── user.aikoulou.00440447.physics_TLA.r14488._24-05-08_tree.root
│ ├── nv1
│ │ └── user.sfranche.00440447.physics_TLA.r14488._nv1_tree.root
│ └── nv2
│ └── user.sfranche.00440447.physics_TLA.r14488.nv2_tree.root
├── data23
│ ├── nv0.1
│ │ └── user.aikoulou.00452202.physics_TLA.r15316._24-05-08_tree.root
│ └── nv3
│ ├── user.sfranche.00451866.physics_TLA.r15316.nv3_tree.root
│ └── user.sfranche.00452202.physics_TLA.r15316.nv3_tree.root
├── mc23a
│ ├── backgrounds
│ │ ├── nv0.1
│ │ ├── nv1
│ │ └── nv2
│ ├── Zprime_bb
│ │ ├── nv0.1
│ │ ├── nv1
│ │ └── nv2
│ └── Zprime_qq
│ ├── nv0.1
│ ├── nv1
│ └── nv2
└── mc23d
├── backgrounds
│ └── nv3
├── Zprime_bb
│ └── nv3
└── Zprime_qq
└── nv3
Versions of private production
The production is also version, for example, a particular data file under consideration might be:
/eos/atlas/atlascerngroupdisk/phys-exotics/jdm/ANA-EXOT-2024-01_dibjetISR/ntuples/mc23a/Zprime_bb/nv2/user.sfranche.510392.MGPy8EG_S1_qqa_Ph25_mRp125_gASp1_qContentUDSC.e8514_s4162_r15315.nv2_tree.root/merged.root
This is a signal MC (nv2
.
We can inspect what's in this file (focusing on most relevant content):
julia> ROOTFile("merged.root")
ROOTFile with 16 entries and 29 streamers.
merged.root
├─ duplicates (TTree)
│ ├─ "runNumber"
│ └─ "eventNumber"
├─ TreeAlgo_noCalib (TDirectory)
│ └─ nominal (TTree)
│ ├─ "runNumber"
│ ├─ "eventNumber"
│ ├─ "lumiBlock"
│ ├─ "⋮"
│ ├─ "ph_SumPtChargedPFOPt500"
│ ├─ "ph_SumPtTrkPt500"
│ └─ "ph_TrackWidthPt1000"
├─ MetaData_EventCount (TH1D)
├─ MetaData_SumW (TH1D)
...
TreeAlgo_noCalib/nominal
is the output event data from xAODAnaHelder, in particular, the relevant xAH config files used fornv2
can be found at this gitlab commitThe
MetaData_SumW
histogram is used for tracking sum of weights information needed for correct scaling of MC events.
Event pre-selection (nv2
)
The following common selections are built-in to the private production:
HLT trigger (
HLT_g35_tight_3j25_pf_ftf_PhysicsTLA_L1EM22VHI
for 2022,HLT_g35_tight_3j25_pf_ftf_PhysicsTLA_L1eEM26M
for 2023)pt and eta selection on photons
Tight ID criteria for photons, and isolation requirement in 2023 data (MC23d).
pt and eta selection on jets
overlap removal of jets within dR<0.4 of "good" photons (ID + Iso if relevant)
Event Content
We can load the data from the nominal
tree:
julia> LazyTree("merged.root", "TreeAlgo_noCalib/nominal")
Row │ jet_rapidity ph_e277 ph_EnergyPerSam coreFlags jet_Had ⋯
│ SubArray{Float3 SubArray{Float3 SubArray{Vector UInt32 SubArra ⋯
─────┼────────────────────────────────────────────────────────────────────────
1 │ [0.957, 1 [73600.0] Vector{Fl 0 [5, 5] ⋯
2 │ [0.33, 2. [35100.0] Vector{Fl 0 [5, 0, ⋯
3 │ [-0.588, [32000.0] Vector{Fl 0 [5, 5, ⋯
4 │ [-0.634, [27400.0] Vector{Fl 0 [5, 0, ⋯
5 │ [-1.17, 0 [30900.0] Vector{Fl 0 [4, 5, ⋯
6 │ [-0.716, [31100.0] Vector{Fl 0 [5, 5, ⋯
7 │ [-0.857, [45900.0] Vector{Fl 0 [5, 5, ⋯
8 │ [1.49, -0 [33200.0] Vector{Fl 0 [5, 0, ⋯
9 │ [0.805, 1 [51300.0] Vector{Fl 0 [5, 0, ⋯
10 │ [-1.35, - [37200.0] Vector{Fl 0 [5, 5, ⋯
11 │ [0.121, - [34500.0] Vector{Fl 0 [5, 5, ⋯
⋮ │ ⋮ ⋮ ⋮ ⋮ ⋱
67 columns and 17232 rows omitted
Overall, there are 76 columns in nv3
schema:
"All 76 column names in nv3 (click to expand):"
julia> println.(sort(names(tree)))
NPV
actualInteractionsPerCrossing
averageInteractionsPerCrossing
bcid
coreFlags
correctedActualMu
correctedAndScaledActualMu
correctedAndScaledAverageMu
correctedAverageMu
eventNumber
jet_CentroidR
jet_E
jet_EMFrac
jet_FracSamplingMax
jet_FracSamplingMaxIndex
jet_GhostMuonSegmentCount
jet_HECFrac
jet_HadronConeExclExtendedTruthLabelID
jet_HadronConeExclTruthLabelID
jet_JVF
jet_Jvt
jet_LowEtConstituentsFrac
jet_NumTrkPt1000
jet_NumTrkPt500
jet_SumPtTrkPt1000
jet_SumPtTrkPt500
jet_TrackWidthPt1000
jet_TrackWidthPt500
jet_Width
jet_eta
jet_fastDIPS
jet_fastDIPS_pb
jet_fastDIPS_pc
jet_fastDIPS_pu
jet_phi
jet_pt
jet_rapidity
lumiBlock
mcChannelNumber
mcEventNumber
mcEventWeight
njet
nph
ph_ActiveArea
ph_EMFrac
ph_EnergyPerSampling
ph_FracSamplingMax
ph_Jet_eta
ph_Jet_m
ph_Jet_phi
ph_Jet_pt
ph_Jvt
ph_N90Constituents
ph_NumTrkPt1000
ph_SumPtChargedPFOPt500
ph_SumPtTrkPt500
ph_TrackWidthPt1000
ph_deltae
ph_e277
ph_eratio
ph_eta
ph_f1
ph_m
ph_phi
ph_pt
ph_radhad
ph_radhad1
ph_reta
ph_rphi
ph_topoetcone40
ph_weta2
ph_wtot
rand_lumiblock_nr
rand_run_nr
runNumber
weight_pileup
"All 71 column names in nv2 (click to expand):"
julia> println.(sort(names(mytree)));
NPV
actualInteractionsPerCrossing
averageInteractionsPerCrossing
bcid
coreFlags
correctedActualMu
correctedAndScaledActualMu
correctedAndScaledAverageMu
correctedAverageMu
eventNumber
jet_CentroidR
jet_E
jet_EMFrac
jet_FracSamplingMax
jet_FracSamplingMaxIndex
jet_GhostMuonSegmentCount
jet_HECFrac
jet_HadronConeExclExtendedTruthLabelID
jet_HadronConeExclTruthLabelID
jet_JVF
jet_Jvt
jet_LowEtConstituentsFrac
jet_NumTrkPt1000
jet_NumTrkPt500
jet_SumPtTrkPt1000
jet_SumPtTrkPt500
jet_TrackWidthPt1000
jet_TrackWidthPt500
jet_Width
jet_eta
jet_fastDIPS
jet_fastDIPS_pb
jet_fastDIPS_pc
jet_fastDIPS_pu
jet_phi
jet_pt
jet_rapidity
lumiBlock
mcChannelNumber
mcEventNumber
mcEventWeight
njet
nph
ph_ActiveArea
ph_EMFrac
ph_EnergyPerSampling
ph_FracSamplingMax
ph_Jvt
ph_N90Constituents
ph_NumTrkPt1000
ph_SumPtChargedPFOPt500
ph_SumPtTrkPt500
ph_TrackWidthPt1000
ph_deltae
ph_e277
ph_eratio
ph_eta
ph_f1
ph_m
ph_phi
ph_pt
ph_radhad
ph_radhad1
ph_reta
ph_rphi
ph_weta2
ph_wtot
rand_lumiblock_nr
rand_run_nr
runNumber
weight_pileup
"All 60 column names in nv1 (click to expand):"
julia> println.(sort(names(mytree)));
NPV
actualInteractionsPerCrossing
averageInteractionsPerCrossing
bcid
coreFlags
correctedActualMu
correctedAndScaledActualMu
correctedAndScaledAverageMu
correctedAverageMu
eventNumber
jet_CentroidR
jet_E
jet_EMFrac
jet_FracSamplingMax
jet_FracSamplingMaxIndex
jet_GhostMuonSegmentCount
jet_HECFrac
jet_HadronConeExclExtendedTruthLabelID
jet_HadronConeExclTruthLabelID
jet_JVF
jet_LowEtConstituentsFrac
jet_NumTrkPt1000
jet_NumTrkPt500
jet_SumPtTrkPt1000
jet_SumPtTrkPt500
jet_TrackWidthPt1000
jet_TrackWidthPt500
jet_Width
jet_eta
jet_fastDIPS
jet_fastDIPS_pb
jet_fastDIPS_pc
jet_fastDIPS_pu
jet_phi
jet_pt
jet_rapidity
lumiBlock
mcChannelNumber
mcEventNumber
mcEventWeight
njet
nph
ph_deltae
ph_e277
ph_eratio
ph_eta
ph_f1
ph_m
ph_phi
ph_pt
ph_radhad
ph_radhad1
ph_reta
ph_rphi
ph_weta2
ph_wtot
rand_lumiblock_nr
rand_run_nr
runNumber
weight_pileup
Highlighted explanation:
ph_*
are all the properties related to HLT photonsfrom
HLT_egamma_Photons_TLA
for datafrom
HLT_egamma_Iso_Photons
for MC
jet_*
are all the properties related to HLT jetfrom
HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_TLA
for datafrom
HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_TLA
for MCjet_HadronConeExclTruthLabelID
takes the value of5
for b and anti-bjet_fastDIPS
is pre-calculated fromjet_fastDIPS_p{u,b,c}
and can be re-calculated usingcalc_db
.
Change Log
nv3
Added configurations for dumping data 2023 and MC23d ntuples.
Included cut on photon isolation variable (topoetcone40).
Addeded few branches:
ph_topoetcone40
ph_Jet_pt, ph_Jet_eta, ph_Jet_phi, ph_Jet_m (4-momentum of jets OR by photons)
Included a couple of bugfix (!33 in TLAAlgosRun3):
Missing max dR to copy over jets features to matched photons
Photon showere shapes fudge factors applied twice
Note
MC23d and 2023 data samples were produced.
nv2.1
- Added jet 4-momenta to matched photons, needed to do clean low JZ slices in dijets MC from pile-up.
Note
Only dijets samples were produced with this tag, and are stored in nv2
.
nv2
Fixed bug in MC background samples, where (anti-)matching with truht photons was required by mistake.
Added these branches:
ph_EnergyPerSampling
ph_SumPtTrkPt500
ph_Jvt
ph_SumPtChargedPFOPt500
ph_ActiveArea
ph_FracSamplingMax
ph_EMFrac
ph_N90Constituents
ph_NumTrkPt1000
ph_TrackWidthPt1000
jet_Jvt
Attributes such as
ph_EMFrac
are created by identifying the jet that's overlapping with the photon and decorating the photon with jet attributes – normally, photons do not haveEMFrac
.
Warning
MC23a signal events are still selected with 2023 trigger, new samples have been requested (see ATLMCPROD-11256).
nv1
First implementation of a common configuration file, !MR21. It includes a preselection on jets and photons. Analysis photons are required to have pT>20 GeV and pass a tight ID cut. Jets overlapping anlysis photons are removed (dR<0.4), and only jets with pT above 20 GeV are saved in the ntuple.
Warning
MC23a signal events are still selected with 2023 trigger, new samples have been requested (see ATLMCPROD-11256).
nv0.1
- initial release