Synopsis
We will try to disentangle heavy-quark jets from light-flavor jets using machine learning.
Starting point
- We have generated some jets using PYTHIA event generator (jets reconstructed with anti-kT algorithm with \(R=0.4\)).
- We saved jets only with transverse momentum \(p_{T} > 50~\mathrm{GeV} \) in some pseudorapidity window \( |\eta| < 3.5 \). Then we python-pickled those into a file Pickled jets.
- To read the jets one can use the following code (python 2.7): save 1st as
particle_jet.py
(module loaded in the second)
class Particle(object): def __init__(self, pt, eta, phi): self.pt = pt self.eta = eta self.phi = phi class Jet(Particle): def __init__(self, pt, eta, phi): super(Jet, self).__init__(pt, eta, phi) self.constituents = [] def add_constituent(self, pt, eta, phi): p = Particle(pt, eta, phi) self.constituents.append(p)
import pickle from particle_jet import Jet, Particle def read(): print 'reading...' jets = pickle.load(open("jets.pickled", "rb")) for j in jets: print j.pt sum_pt = 0 for c in j.constituents: print ' - ', c.pt, c.eta, c.phi sum_pt += c.pt print ' checksum pt: ', j.pt/sum_pt print 'done' if __name__ == '__main__': read()
-
To run the code save it to a file (
test.py
for example) and issue a terminal commandchmod +x test.py
and execute with./test.py
in a directory where you downloaded the Pickled jets file. -
As you can see every jet has properties: transverse momentum \(p_{T}\) (
.pt
), pseudorapidity \(\eta\) (.eta
), and azimuthal angle \(\phi\) (.phi
), and a list ofconstituents
which themself have the three properties defining a momentum vector.
Next steps
- Let's try to draw the constituent distribution \( z = p_{T}^{\mathrm{constituent}} / p_{T}^{\mathrm{jet}} \). It should look like the plot below.
- Then lets see how the jets look like when making their pixelized picture (10x10 for example) in a local frame with a maximum distance (\(\Delta R)\) between the jet axis and constituent \( \Delta R = \sqrt{(\eta_{\mathrm{jet}} - \eta_{\mathrm{constituent}})^2 + (\varphi_{\mathrm{jet}} - \varphi_{\mathrm{constituent}})^2} < 0.4 \), where the color of each pixel corresponds to the fraction of momentum carried by the constituents (\( z \)).
More jets & more fake jets
- More jets (warning: files are larger now up to 250MB per file - about 35k jets - we should move to root or other strucure from now on)...