Closed WeiShengL closed 1 month ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 98.12%. Comparing base (
9b03f81
) to head (b199b9b
). Report is 1 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Thanks for this @WeiShengL! I think it probably makes sense to merge this for now, but in the longer term I think we should require that different labels can map to the same string for probability outputs (e.g. bjets
and ghostbjets
would both be pb
).
I can think of two ways to do this:
category.label_name
rather than just label_name
. this would mean label_name
no longer needs to be uniquepx
explicitly, which could default to the current one if not specified. This is probably the simpler option for now.What do you think about this approach? To me it feels a bit more sustainable than adding a bunch of discriminant functions
Yea I agree it does not look good with the different discriminant functions.
For approach 1, do you mean having something like this in the flavours.yaml?
single-btag:
- name: bjets
label: $b$-jets
cuts: ["HadronConeExclTruthLabelID == 5"]
colour: tab:blue
single-btag-ghost:
- name: bjets
label: $b$-jets
cuts: ["HadronGhostTruthLabelID == 5"]
colour: tab:blue
So we already have the label
, I meant also to have a px
or similar key, for e.g.
single-btag:
- name: bjets
label: $b$-jets
px: b
cuts: ["HadronConeExclTruthLabelID == 5"]
colour: tab:blue
single-btag-ghost:
- name: bjets
label: $b$-jets
px: b
cuts: ["HadronGhostTruthLabelID == 5"]
colour: tab:blue
It might be redundant to have both the label
and the px
, we could probably build the label
from the px
.
We should probably be careful when we would like to merge this in so that people don't end up with different models with pb or pghostb. Unless it doesn't really matter?
We should probably be careful when we would like to merge this in so that people don't end up with different models with pb or pghostb. Unless it doesn't really matter?
Yeah good point, maybe worth merging the ghost discriminant for now so people can make plots with the existing trainings... then we can open an issue to remember to remove it later :)
I'll mark this as draft at the moment and created a PR #99 for the temporary ghost discriminant. Maybe we'll merge this in before preprocessing the samples for high stats training?
Thanks! I'm happy to merge this now, any reason to keep it as draft?
I think this does not go well with #99. Even if I have
get_discriminant(jets, tagger, signal=Flavour.ghostbjets)
It will look for pb
here if we merge this in
I see thanks, for now can we add a fallback if pb
is not found to look for a string like this instead? https://github.com/umami-hep/atlas-ftag-tools/blob/main/ftag/flavour.py#L28
Thanks Wei
Summary
This pull request introduces the following changes
_px
variable for flavours so thatghostbjets
andbjets
would map to the same probability outputpb
Conformity