atlas-ftag-tools 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: atlas-ftag-tools
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: ATLAS Flavour Tagging Tools
5
5
  Author: Sam Van Stroud, Philipp Gadow
6
6
  License: MIT
@@ -1,8 +1,8 @@
1
- ftag/__init__.py,sha256=w5AN4J84WCX5o22f3aAcidCQISyQgYqeyfWQlMJCzfU,629
1
+ ftag/__init__.py,sha256=aCC6idmHdlETdgAFN4PeESN67WpeVqo85Nledw9VkH4,629
2
2
  ftag/cli_utils.py,sha256=w3TtQmUHSyAKChS3ewvOtcSDAUJAZGIIomaNi8f446U,298
3
3
  ftag/cuts.py,sha256=a0BJj4cVRunc-hFLPloGvNoSFvRmZg2kVLv7sA0iAaI,2817
4
4
  ftag/flavour.py,sha256=qvgp4DarOdcQgjae_NWnd81k_YqdmFY74lOKky2lpb8,3568
5
- ftag/flavours.yaml,sha256=9ifKyz1_VoHlOaWuf3JEqMLSYyLFedYJf9x1D6dCTnM,5335
5
+ ftag/flavours.yaml,sha256=h0A2cw-je1oCe-rh5qhuL1BhDNhu2aLkf7W9y-Cpy3g,6959
6
6
  ftag/git_check.py,sha256=Y-XqM80CVXZ5ZKrDdZcYOJt3X64uU6W3OP6Z0D7AZU0,1663
7
7
  ftag/mock.py,sha256=9V6sAT4_t-rhR67q9KHaj1NKAeqU7lQjWxiOxEzk8Sw,4338
8
8
  ftag/region.py,sha256=ANv0dGI2W6NJqD9fp7EfqAUReH4FOjc1gwl_Qn8llcM,360
@@ -17,10 +17,10 @@ ftag/hdf5/h5split.py,sha256=4Wy6Xc3J58MdD9aBaSZHf5ZcVFnJSkWsm42R5Pgo-R4,2448
17
17
  ftag/hdf5/h5utils.py,sha256=-4zKTMtNCrDZr_9Ww7uzfsB7M7muBKpmm_1IkKJnHOI,3222
18
18
  ftag/hdf5/h5writer.py,sha256=wVyurIgfSBtvZTX-v0v3R5-8JOwWK_yF1rUX-RewXzY,4826
19
19
  ftag/wps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- ftag/wps/discriminant.py,sha256=J2Cst9slZCLoHZYTeltQSmN1Uoa8GUX529rwNlHmyfI,3519
20
+ ftag/wps/discriminant.py,sha256=c2-bal124yY1rZjK87iQHb9RRo4pus6SVue6SfMKrRY,3749
21
21
  ftag/wps/working_points.py,sha256=VTU6OD40ULAJQD0MlD1EZd33q8ociUvFX1YrhgJFvXc,9722
22
- atlas_ftag_tools-0.2.0.dist-info/METADATA,sha256=MRi8CwbXm8vSXlwSFUM99Ec5ZibMtVXdJVqdb0gAv94,5168
23
- atlas_ftag_tools-0.2.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
24
- atlas_ftag_tools-0.2.0.dist-info/entry_points.txt,sha256=LfVLsZHQolqbPnwPgtmc5IQTh527BKkN2v-IpXWTNHw,137
25
- atlas_ftag_tools-0.2.0.dist-info/top_level.txt,sha256=qiYQuKcAvMim-31FwkT3MTQu7WQm0s58tPAia5KKWqs,5
26
- atlas_ftag_tools-0.2.0.dist-info/RECORD,,
22
+ atlas_ftag_tools-0.2.1.dist-info/METADATA,sha256=KpKapru-RWOoq01J5sm04jE2brwpoPxDGVPTZoppl8c,5168
23
+ atlas_ftag_tools-0.2.1.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
24
+ atlas_ftag_tools-0.2.1.dist-info/entry_points.txt,sha256=LfVLsZHQolqbPnwPgtmc5IQTh527BKkN2v-IpXWTNHw,137
25
+ atlas_ftag_tools-0.2.1.dist-info/top_level.txt,sha256=qiYQuKcAvMim-31FwkT3MTQu7WQm0s58tPAia5KKWqs,5
26
+ atlas_ftag_tools-0.2.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
ftag/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "v0.2.0"
5
+ __version__ = "v0.2.1"
6
6
 
7
7
 
8
8
  from ftag import hdf5
ftag/flavours.yaml CHANGED
@@ -140,37 +140,84 @@
140
140
  colour: "#e76f51"
141
141
  category: lepton-decay
142
142
 
143
+ # PDGID labelling: taken from https://pdg.lbl.gov/2023/reviews/rpp2023-rev-monte-carlo-numbering.pdf
144
+ - name: D0meson
145
+ label: $D^0$ in $c$-jet
146
+ cuts: ["HadronConeExclTruthLabelID == 4", "HadronConeExclTruthLabelPdgId in (421,-421)"]
147
+ colour: "#FFA500"
148
+ category: PDGID
149
+ - name: nonD0meson
150
+ label: $D^+$, $Ds^+$ or baryon in $c$-jet
151
+ cuts: ["HadronConeExclTruthLabelID == 4", "HadronConeExclTruthLabelPdgId notin (421,-421)"]
152
+ colour: "#800080"
153
+ category: PDGID
154
+ - name: Dplusmeson
155
+ label: $D^+$ in $c$-jet
156
+ cuts: ["HadronConeExclTruthLabelID == 4", "HadronConeExclTruthLabelPdgId in (411,-411)"]
157
+ colour: "#00FFFF"
158
+ category: PDGID
159
+ - name: Dsplusmeson
160
+ label: $Ds^+$ in $c$-jet
161
+ cuts: ["HadronConeExclTruthLabelID == 4", "HadronConeExclTruthLabelPdgId in (431,-431)"]
162
+ colour: "#781DC8"
163
+ category: PDGID
164
+ - name: B0meson
165
+ label: $B^0$ in $b$-jet
166
+ cuts: ["HadronConeExclTruthLabelID == 5", "HadronConeExclTruthLabelPdgId in (511,-511)"]
167
+ colour: "#702B1C"
168
+ category: PDGID
169
+ - name: Bplusmeson
170
+ label: $B^0$ in $b$-jet
171
+ cuts: ["HadronConeExclTruthLabelID == 5", "HadronConeExclTruthLabelPdgId in (521,-521)"]
172
+ colour: "#C81D4A"
173
+ category: PDGID
174
+ - name: Bs0meson
175
+ label: $Bs^0$ in $b$-jet
176
+ cuts: ["HadronConeExclTruthLabelID == 5", "HadronConeExclTruthLabelPdgId in (531,-531)"]
177
+ colour: "#1D62C8"
178
+ category: PDGID
179
+
143
180
  # lepton isolation
144
181
  ## taken from https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/AnalysisCommon/TruthClassification/README.md#4-details-about-the-lepton-categories
145
182
  - name: elxprompt
146
183
  label: prompt electrons
147
- cuts: ["iffClass == 2"]
184
+ cuts: ["iffClass in (2,3)"]
148
185
  colour: tab:red
149
186
  category: isolation
187
+ - name: elxnoflip
188
+ label: prompt electrons with no charge-flip
189
+ cuts: ["iffClass == 2"]
190
+ colour: darkorange
191
+ category: isolation
150
192
  - name: elxflip
151
193
  label: prompt electrons with charge-flip
152
194
  cuts: ["iffClass == 3"]
153
195
  colour: tab:orange
154
196
  category: isolation
197
+ - name: elxphconv
198
+ label: electrons from prompt photon-conversions
199
+ cuts: ["iffClass == 5"]
200
+ colour: tab:purple
201
+ category: isolation
202
+ - name: elxnonprompt
203
+ label: non-prompt electrons
204
+ cuts: ["iffClass notin (2,3,5)"]
205
+ colour: "#264653"
206
+ category: isolation
155
207
  - name: muxprompt
156
208
  label: prompt muons
157
- cuts: ["iffClass == 4"]
209
+ cuts: ["iffClass in (4,11)"]
158
210
  colour: tab:blue
159
211
  category: isolation
212
+ - name: muxnoflip
213
+ label: prompt muons with no charge-flip
214
+ cuts: ["iffClass == 4"]
215
+ colour: aqua
216
+ category: isolation
160
217
  - name: muxflip
161
218
  label: prompt muons with charge-flip
162
219
  cuts: ["iffClass == 11"]
163
- colour: aqua
164
- category: isolation
165
- - name: elxphconv
166
- label: electrons from prompt photon-conversions
167
- cuts: ["iffClass == 5"]
168
- colour: tab:purple
169
- category: isolation
170
- - name: elxfrommu
171
- label: electrons from muons
172
- cuts: ["iffClass == 6"]
173
- colour: salmon
220
+ colour: midnightblue
174
221
  category: isolation
175
222
  - name: npxall
176
223
  label: non-prompt lepton
ftag/wps/discriminant.py CHANGED
@@ -53,6 +53,11 @@ def discriminant(
53
53
  return np.log((jets[f"{tagger}_{signal.px}"] + epsilon) / (denominator + epsilon))
54
54
 
55
55
 
56
+ def tautag_dicriminant(jets, tagger, fb, fc, epsilon=1e-10):
57
+ fxs = {"pb": fb, "pc": fc, "pu": 1 - fb - fc}
58
+ return discriminant(jets, tagger, Flavours.taujets, fxs, epsilon=epsilon)
59
+
60
+
56
61
  def btag_discriminant(jets, tagger, fc, ftau=0, epsilon=1e-10):
57
62
  fxs = {"pc": fc, "ptau": ftau, "pu": 1 - fc - ftau}
58
63
  return discriminant(jets, tagger, Flavours.bjets, fxs, epsilon=epsilon)
@@ -99,6 +104,7 @@ def get_discriminant(
99
104
  tagger_funcs: dict[str, Callable] = {
100
105
  "bjets": btag_discriminant,
101
106
  "cjets": ctag_discriminant,
107
+ "taujets": tautag_dicriminant,
102
108
  "hbb": hbb_discriminant,
103
109
  "hcc": hcc_discriminant,
104
110
  }