atlas-ftag-tools 0.0.5__tar.gz → 0.0.6__tar.gz
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.
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/PKG-INFO +1 -1
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/PKG-INFO +1 -1
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/requires.txt +2 -2
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/__init__.py +1 -1
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/hdf5/h5reader.py +2 -1
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/mock.py +45 -45
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/pyproject.toml +2 -2
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/MANIFEST.in +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/README.md +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/SOURCES.txt +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/dependency_links.txt +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/top_level.txt +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/cuts.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/flavour.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/flavours.yaml +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/hdf5/__init__.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/hdf5/h5utils.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/hdf5/h5writer.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/region.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/sample.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/ftag/vds.py +0 -0
- {atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/setup.cfg +0 -0
@@ -74,13 +74,14 @@ class H5SingleReader:
|
|
74
74
|
variables = {self.jets_name: None}
|
75
75
|
|
76
76
|
total = 0
|
77
|
+
rng = np.random.default_rng(42)
|
77
78
|
with h5py.File(self.fname) as f:
|
78
79
|
data = {name: self.empty(f[name], var) for name, var in variables.items()}
|
79
80
|
|
80
81
|
# get indices
|
81
82
|
indices = list(range(0, self.num_jets, self.batch_size))
|
82
83
|
if self.shuffle:
|
83
|
-
|
84
|
+
rng.shuffle(indices)
|
84
85
|
|
85
86
|
# loop over batches and read file
|
86
87
|
for low in indices:
|
@@ -11,40 +11,41 @@ from ftag.hdf5 import join_structured_arrays
|
|
11
11
|
__all__ = ["get_mock_file"]
|
12
12
|
|
13
13
|
JET_VARS = [
|
14
|
-
"pt",
|
15
|
-
"eta",
|
16
|
-
"abs_eta",
|
17
|
-
"mass",
|
18
|
-
"pt_btagJes",
|
19
|
-
"eta_btagJes",
|
20
|
-
"n_tracks",
|
21
|
-
"HadronConeExclTruthLabelID",
|
22
|
-
"HadronConeExclTruthLabelPt",
|
23
|
-
"n_truth_promptLepton",
|
14
|
+
("pt", "f4"),
|
15
|
+
("eta", "f4"),
|
16
|
+
("abs_eta", "f4"),
|
17
|
+
("mass", "f4"),
|
18
|
+
("pt_btagJes", "f4"),
|
19
|
+
("eta_btagJes", "f4"),
|
20
|
+
("n_tracks", "i4"),
|
21
|
+
("HadronConeExclTruthLabelID", "i4"),
|
22
|
+
("HadronConeExclTruthLabelPt", "f4"),
|
23
|
+
("n_truth_promptLepton", "i4"),
|
24
|
+
("flavour_label", "i4"),
|
24
25
|
]
|
25
26
|
|
26
27
|
TRACK_VARS = [
|
27
|
-
"d0",
|
28
|
-
"z0SinTheta",
|
29
|
-
"dphi",
|
30
|
-
"deta",
|
31
|
-
"qOverP",
|
32
|
-
"IP3D_signed_d0_significance",
|
33
|
-
"IP3D_signed_z0_significance",
|
34
|
-
"phiUncertainty",
|
35
|
-
"thetaUncertainty",
|
36
|
-
"qOverPUncertainty",
|
37
|
-
"numberOfPixelHits",
|
38
|
-
"numberOfSCTHits",
|
39
|
-
"numberOfInnermostPixelLayerHits",
|
40
|
-
"numberOfNextToInnermostPixelLayerHits",
|
41
|
-
"numberOfInnermostPixelLayerSharedHits",
|
42
|
-
"numberOfInnermostPixelLayerSplitHits",
|
43
|
-
"numberOfPixelSharedHits",
|
44
|
-
"numberOfPixelSplitHits",
|
45
|
-
"numberOfSCTSharedHits",
|
46
|
-
"numberOfPixelHoles",
|
47
|
-
"numberOfSCTHoles",
|
28
|
+
("d0", "f4"),
|
29
|
+
("z0SinTheta", "f4"),
|
30
|
+
("dphi", "f4"),
|
31
|
+
("deta", "f4"),
|
32
|
+
("qOverP", "f4"),
|
33
|
+
("IP3D_signed_d0_significance", "f4"),
|
34
|
+
("IP3D_signed_z0_significance", "f4"),
|
35
|
+
("phiUncertainty", "f4"),
|
36
|
+
("thetaUncertainty", "f4"),
|
37
|
+
("qOverPUncertainty", "f4"),
|
38
|
+
("numberOfPixelHits", "i4"),
|
39
|
+
("numberOfSCTHits", "i4"),
|
40
|
+
("numberOfInnermostPixelLayerHits", "i4"),
|
41
|
+
("numberOfNextToInnermostPixelLayerHits", "i4"),
|
42
|
+
("numberOfInnermostPixelLayerSharedHits", "i4"),
|
43
|
+
("numberOfInnermostPixelLayerSplitHits", "i4"),
|
44
|
+
("numberOfPixelSharedHits", "i4"),
|
45
|
+
("numberOfPixelSplitHits", "i4"),
|
46
|
+
("numberOfSCTSharedHits", "i4"),
|
47
|
+
("numberOfPixelHoles", "i4"),
|
48
|
+
("numberOfSCTHoles", "i4"),
|
48
49
|
]
|
49
50
|
|
50
51
|
|
@@ -55,7 +56,7 @@ def softmax(x, axis=None):
|
|
55
56
|
|
56
57
|
|
57
58
|
def get_mock_scores(labels: np.ndarray):
|
58
|
-
rng = np.random.default_rng()
|
59
|
+
rng = np.random.default_rng(42)
|
59
60
|
scores = np.zeros((len(labels), 3))
|
60
61
|
for label, count in zip(*np.unique(labels, return_counts=True)):
|
61
62
|
if label == 0:
|
@@ -70,34 +71,33 @@ def get_mock_scores(labels: np.ndarray):
|
|
70
71
|
return scores
|
71
72
|
|
72
73
|
|
73
|
-
def get_mock_file(num_jets=1000,
|
74
|
-
# settings
|
75
|
-
n_tracks_per_jet = 40
|
76
|
-
|
74
|
+
def get_mock_file(num_jets=1000, tracks_name: str = "tracks", num_tracks: int = 40):
|
77
75
|
# setup jets
|
78
|
-
rng = np.random.default_rng()
|
79
|
-
jets_dtype = np.dtype(
|
76
|
+
rng = np.random.default_rng(42)
|
77
|
+
jets_dtype = np.dtype(JET_VARS)
|
80
78
|
jets = u2s(rng.random((num_jets, len(JET_VARS))), jets_dtype)
|
81
|
-
jets["HadronConeExclTruthLabelID"] =
|
79
|
+
jets["HadronConeExclTruthLabelID"] = rng.choice([0, 4, 5], size=num_jets)
|
80
|
+
jets["flavour_label"] = rng.choice([0, 4, 5], size=num_jets)
|
82
81
|
jets["pt"] *= 400e3
|
83
82
|
jets["mass"] *= 50e3
|
84
83
|
jets["eta"] = (jets["eta"] - 0.5) * 6.0
|
85
84
|
jets["abs_eta"] = np.abs(jets["eta"])
|
86
85
|
jets["n_truth_promptLepton"] = 0
|
87
86
|
|
88
|
-
|
89
|
-
|
90
|
-
|
87
|
+
# add tagger scores
|
88
|
+
scores = get_mock_scores(jets["HadronConeExclTruthLabelID"])
|
89
|
+
jets = join_structured_arrays([jets, scores])
|
91
90
|
|
91
|
+
# create a tempfile in a new folder
|
92
92
|
fname = NamedTemporaryFile(suffix=".h5", dir=mkdtemp()).name
|
93
93
|
f = h5py.File(fname, "w")
|
94
94
|
f.create_dataset("jets", data=jets)
|
95
95
|
|
96
96
|
# setup tracks
|
97
97
|
if tracks_name:
|
98
|
-
tracks_dtype = np.dtype(
|
99
|
-
tracks = u2s(rng.random((num_jets,
|
100
|
-
valid = rng.choice([True, False], size=(num_jets,
|
98
|
+
tracks_dtype = np.dtype(TRACK_VARS)
|
99
|
+
tracks = u2s(rng.random((num_jets, num_tracks, len(TRACK_VARS))), tracks_dtype)
|
100
|
+
valid = rng.choice([True, False], size=(num_jets, num_tracks))
|
101
101
|
valid = valid.astype(bool).view(dtype=np.dtype([("valid", bool)]))
|
102
102
|
tracks = join_structured_arrays([tracks, valid])
|
103
103
|
f.create_dataset(tracks_name, data=tracks)
|
File without changes
|
File without changes
|
File without changes
|
{atlas-ftag-tools-0.0.5 → atlas-ftag-tools-0.0.6}/atlas_ftag_tools.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|