Как использовать методы fastjet-contrib в Python?Python

Программы на Python
Ответить
Anonymous
 Как использовать методы fastjet-contrib в Python?

Сообщение Anonymous »

Я пытаюсь использовать пакеты EnergyCorrelator и Nsubjettiness из fastjet-contrib. Моя цель — вычислить эти функции на струях, сгруппированных из объектов башни, считанных из файла .root, в макросе PyROOT. Однако я не могу найти способ использовать их в Python.
Ниже приведен мой код:

Код: Выделить всё

import fastjet

def to_pseudojets(constits):
return [fastjet.PseudoJet(
c.pt * math.cos(c.phi),
c.pt * math.sin(c.phi),
c.pt * math.sinh(c.eta),
c.pt * math.cosh(c.eta)
) for c in constits]

def compute_nsubjettiness(constits, R0=1.0, beta=1.0):
jets = to_pseudojets(constits)

axis_def = fastjet.contrib.KT_Axes()
measure_def = fastjet.contrib.UnnormalizedMeasure(beta)

tau1 = fastjet.contrib.Nsubjettiness(1, axis_def, measure_def)(jets)
tau2 = fastjet.contrib.Nsubjettiness(2, axis_def, measure_def)(jets)
tau3 = fastjet.contrib.Nsubjettiness(3, axis_def, measure_def)(jets)

return tau1, tau2, tau3

def compute_ecfs(constits, beta=1.0):
jets = to_pseudojets(constits)

ecf2 = fjcontrib.ECF(2, beta)
ecf3 = fjcontrib.ECF(3, beta)

e2 = ecf2(jets)
e3 = ecf3(jets)

return e2, e3

def compute_c2_d2(e2, e3):
c2 = e3 / (e2**2) if e2 > 0 else -1
d2 = e3 / (e2**3) if e2 > 0 else -1
return c2, d2

class ConstituentData:
"""A simple class to hold constituent kinematics for fastjet conversion."""
def __init__(self, pt, eta, phi, m=0.0):
self.pt = pt
self.eta = eta
self.phi = phi
self.m = m
Я установил fastjet с помощью pip на машину с Linux и вижу файлы здесь:

Код: Выделить всё

/.venv/lib/python3.12/site-packages/fastjet/include/fastjet/contrib/Nsubjettiness.hh
Однако я понятия не имею, как их использовать в Python. Может кто-нибудь мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»