Skip to content

Commit 8494307

Browse files
authored
Merge pull request #458 from diana-hep/scikit-hep-packages
Replace scikit-hep by vector pkg
2 parents d2358bd + 2f5d150 commit 8494307

File tree

6 files changed

+38
-29
lines changed

6 files changed

+38
-29
lines changed

environment.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ channels:
55
- defaults
66
dependencies:
77
- python=3.6.*
8+
- h5py
89
- matplotlib>=2.0.0
910
- numpy>=1.13.0
10-
- h5py
1111
- scipy>=1.0.0
12-
- scikit-learn>=0.19.0
1312
- pytorch>=1.0.0
1413
- pytest
1514
- pip
1615
- pip:
17-
- uproot
18-
- scikit-hep>=0.5.0, <0.6.0
16+
- uproot3>=3.14.1
17+
- vector>=0.8.0

madminer/__info__.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1-
__authors__ = ", ".join(["Johann Brehmer", "Felix Kling", "Irina Espejo", "Sinclert Perez", "Kyle Cranmer"])
1+
__authors__ = ", ".join([
2+
"Johann Brehmer",
3+
"Felix Kling",
4+
"Irina Espejo",
5+
"Sinclert Perez",
6+
"Kyle Cranmer",
7+
])
28

3-
__version__ = "0.8.0"
9+
__version__ = "0.8.1"

madminer/utils/interfaces/delphes_root.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def get_objects(ievent):
112112
"met": met_all_events[ievent][0],
113113
"visible": visible_momentum,
114114
"all": all_momentum,
115-
"boost_to_com": lambda momentum: momentum.boost(all_momentum.boost_vector()),
115+
"boost_to_com": lambda momentum: momentum.boost(all_momentum.to_Vector3D()),
116116
}
117117
)
118118

@@ -269,7 +269,7 @@ def _get_particles_truth(tree, pt_min, eta_max, included_pdgids=None):
269269
continue
270270

271271
particle = MadMinerParticle()
272-
particle.setptetaphie(pt, eta, phi, e)
272+
particle.from_rhophietat(pt, phi, eta, e)
273273
particle.set_pdgid(pdgid)
274274
event_particles.append(particle)
275275

@@ -299,7 +299,7 @@ def _get_particles_charged(tree, name, mass, pdgid_positive_charge, pt_min, eta_
299299
pdgid = pdgid_positive_charge if charge >= 0.0 else -pdgid_positive_charge
300300

301301
particle = MadMinerParticle()
302-
particle.setptetaphim(pt, eta, phi, mass)
302+
particle.from_rhophietatau(pt, phi, eta, mass)
303303
particle.set_pdgid(pdgid)
304304
event_particles.append(particle)
305305

@@ -363,7 +363,7 @@ def _get_particles_leptons(tree, pt_min_e, eta_max_e, pt_min_mu, eta_max_mu):
363363
continue
364364

365365
particle = MadMinerParticle()
366-
particle.setptetaphim(pt, eta, phi, mass)
366+
particle.from_rhophietatau(pt, phi, eta, mass)
367367
particle.set_pdgid(pdgid)
368368
event_particles.append(particle)
369369

@@ -398,7 +398,7 @@ def _get_particles_truth_leptons(tree, pt_min_e, eta_max_e, pt_min_mu, eta_max_m
398398
continue
399399

400400
particle = MadMinerParticle()
401-
particle.setptetaphie(pt, eta, phi, e)
401+
particle.from_rhophietat(pt, phi, eta, e)
402402
particle.set_pdgid(pdgid)
403403
event_particles.append(particle)
404404

@@ -426,7 +426,7 @@ def _get_particles_photons(tree, pt_min, eta_max):
426426
continue
427427

428428
particle = MadMinerParticle()
429-
particle.setptetaphie(pt, eta, phi, e)
429+
particle.from_rhophietat(pt, phi, eta, e)
430430
particle.set_pdgid(22)
431431
event_particles.append(particle)
432432

@@ -466,7 +466,7 @@ def _get_particles_jets(tree, pt_min, eta_max):
466466
continue
467467

468468
particle = MadMinerParticle()
469-
particle.setptetaphim(pt, eta, phi, mass)
469+
particle.from_rhophietatau(pt, phi, eta, mass)
470470
particle.set_pdgid(9)
471471
particle.set_tags(tau_tag >= 1, b_tag >= 1, False)
472472
event_particles.append(particle)
@@ -507,7 +507,7 @@ def _get_particles_truth_jets(tree, pt_min, eta_max):
507507
continue
508508

509509
particle = MadMinerParticle()
510-
particle.setptetaphim(pt, eta, phi, mass)
510+
particle.from_rhophietatau(pt, phi, eta, mass)
511511
particle.set_pdgid(9)
512512
particle.set_tags(tau_tag >= 1, b_tag >= 1, False)
513513
event_particles.append(particle)
@@ -528,7 +528,7 @@ def _get_particles_truth_met(tree):
528528

529529
for met, phi in zip(mets[ievent], phis[ievent]):
530530
particle = MadMinerParticle()
531-
particle.setptetaphim(met, 0.0, phi, 0.0)
531+
particle.from_rhophietatau(met, phi, 0.0, 0.0)
532532
particle.set_pdgid(0)
533533
event_particles.append(particle)
534534

@@ -548,7 +548,7 @@ def _get_particles_met(tree):
548548

549549
for met, phi in zip(mets[ievent], phis[ievent]):
550550
particle = MadMinerParticle()
551-
particle.setptetaphim(met, 0.0, phi, 0.0)
551+
particle.from_rhophietatau(met, phi, 0.0, 0.0)
552552
particle.set_pdgid(0)
553553
event_particles.append(particle)
554554

madminer/utils/interfaces/lhe.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@ def _parse_xml_event(event, sampling_benchmark):
744744
e = float(elements[9])
745745
spin = float(elements[12])
746746
particle = MadMinerParticle()
747-
particle.setpxpypze(px, py, pz, e)
747+
particle.from_xyzt(px, py, pz, e)
748748
particle.set_pdgid(pdgid)
749749
particle.set_spin(spin)
750750
particles.append(particle)
@@ -854,7 +854,7 @@ def _parse_txt_events(filename, sampling_benchmark):
854854
e = float(elements[9])
855855
spin = float(elements[12])
856856
particle = MadMinerParticle()
857-
particle.setpxpypze(px, py, pz, e)
857+
particle.from_xyzt(px, py, pz, e)
858858
particle.set_pdgid(pdgid)
859859
particle.set_spin(spin)
860860
particles.append(particle)
@@ -945,7 +945,7 @@ def _get_objects(particles, particles_truth, met_resolution=None, global_event_d
945945
# Sum over all particles
946946
ht = 0.0
947947
visible_sum = MadMinerParticle()
948-
visible_sum.setpxpypze(0.0, 0.0, 0.0, 0.0)
948+
visible_sum.from_xyzt(0.0, 0.0, 0.0, 0.0)
949949

950950
for particle in particles:
951951
pdgid = abs(particle.pdgid)
@@ -963,10 +963,10 @@ def _get_objects(particles, particles_truth, met_resolution=None, global_event_d
963963
noise_y = 0.0
964964

965965
# MET
966-
met_x = -visible_sum.px + noise_x
967-
met_y = -visible_sum.py + noise_y
966+
met_x = -visible_sum.x + noise_x
967+
met_y = -visible_sum.y + noise_y
968968
met = MadMinerParticle()
969-
met.setpxpypze(met_x, met_y, 0.0, (met_x ** 2 + met_y ** 2) ** 0.5)
969+
met.from_xyzt(met_x, met_y, 0.0, (met_x ** 2 + met_y ** 2) ** 0.5)
970970

971971
# Build objects
972972
objects = math_commands()
@@ -1059,19 +1059,19 @@ def _smear_particles(particles, energy_resolutions, pt_resolutions, eta_resoluti
10591059

10601060
if None in energy_resolutions[pdgid]:
10611061
# Calculate E from on-shell conditions
1062-
smeared_particle.setptetaphim(pt, eta, phi, particle.m)
1062+
smeared_particle.from_rhophietatau(pt, phi, eta, particle.m)
10631063

10641064
elif None in pt_resolutions[pdgid]:
10651065
# Calculate pT from on-shell conditions
10661066
if e > m:
10671067
pt = (e ** 2 - m ** 2) ** 0.5 / np.cosh(eta)
10681068
else:
10691069
pt = 0.0
1070-
smeared_particle.setptetaphie(pt, eta, phi, e)
1070+
smeared_particle.from_rhophietat(pt, phi, eta, e)
10711071

10721072
else:
10731073
# Everything smeared manually
1074-
smeared_particle.setptetaphie(pt, eta, phi, e)
1074+
smeared_particle.from_rhophietat(pt, phi, eta, e)
10751075

10761076
# PDG id (also sets charge)
10771077
smeared_particle.set_pdgid(pdgid)

madminer/utils/particle.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import logging
2-
from skhep.math.vectors import LorentzVector
2+
import vector
33

44
logger = logging.getLogger(__name__)
55

66

7-
class MadMinerParticle(LorentzVector):
7+
class MadMinerParticle(vector.VectorObject4D):
88
""" """
99

1010
def __init__(self, *args, **kwargs):
@@ -50,6 +50,7 @@ def set_spin(self, spin):
5050
self.spin = spin
5151

5252
def __iadd__(self, other):
53+
assert isinstance(other, self.__class__)
5354
super(MadMinerParticle, self).__iadd__(other)
5455
self.charge = None if self.charge is None or other.charge is None else self.charge + other.charge
5556
self.pdgid = None
@@ -60,6 +61,7 @@ def __iadd__(self, other):
6061
return self
6162

6263
def __isub__(self, other):
64+
assert isinstance(other, self.__class__)
6365
super(MadMinerParticle, self).__isub__(other)
6466
self.charge = None if self.charge is None or other.charge is None else self.charge - other.charge
6567
self.pdgid = None
@@ -73,6 +75,7 @@ def __isub__(self, other):
7375
return self
7476

7577
def __add__(self, other):
78+
assert isinstance(other, self.__class__)
7679
vec = super(MadMinerParticle, self).__add__(other)
7780
vec.charge = None if self.charge is None or other.charge is None else self.charge + other.charge
7881
vec.pdgid = None
@@ -83,6 +86,7 @@ def __add__(self, other):
8386
return vec
8487

8588
def __sub__(self, other):
89+
assert isinstance(other, self.__class__)
8690
vec = super(MadMinerParticle, self).__sub__(other)
8791
vec.charge = None if self.charge is None or other.charge is None else self.charge - other.charge
8892
vec.pdgid = None
@@ -95,7 +99,7 @@ def __sub__(self, other):
9599
def boost(self, *args):
96100
vec = super(MadMinerParticle, self).boost(*args)
97101

98-
particle = MadMinerParticle().from4vector(vec)
102+
particle = MadMinerParticle().from_xyzt(vec.x, vec.y, vec.z, vec.t)
99103
particle.charge = self.charge
100104
particle.spin = self.spin
101105
particle.pdgid = self.pdgid

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
"matplotlib>=2.0.0",
4040
"numpy>=1.13.0",
4141
"scipy>=1.0.0",
42-
"scikit-hep>=0.5.0, <0.6.0",
4342
"torch>=1.0.0",
4443
"uproot3>=3.14.1",
44+
"vector>=0.8.0",
4545
]
4646

4747
EXTRAS_DOCS = [

0 commit comments

Comments
 (0)