Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

`v.perp(direction)` should compute 2D magnitude along an alternate 3D longitudinal axis direction (both are at least 3D)

Aperta
#141 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
api

Direzione di ricerca

Individua le implementazioni esistenti di perp, mag e deltaangle e segui come vengono gestiti gli array Vector3D e gli elementi vuoti. Aggiungi il comportamento di convenienza per v.perp(direction) senza un nuovo modulo compute, facendo corrispondere il risultato di ROOT per gli input 3D mostrati e mantenendo la struttura awkward-array dimostrata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature

From ROOT's TLorentzVector:

>>> import ROOT

>>> v = ROOT.TLorentzVector(1.1, 2.2, 3.3, 4.4)
>>> direction = ROOT.TVector3(3, 2, 1)

>>> v.Perp(direction)
2.880476151115099

We want the same thing in a convenient method: v.perp(direction)

>>> import awkward as ak
>>> import numpy as np
>>> import vector
>>> vector.register_awkward()

>>> v = ak.Array([
...     [{"x": 1.1, "y": 2.2, "z": 3.3}], [], [{"x": 1.1, "y": 2.2, "z": 3.3}]
... ], with_name="Vector3D")

>>> direction = ak.Array([
...     [{"x": 3, "y": 2, "z": 1}], [], [{"x": 3, "y": 2, "z": 1}]
... ], with_name="Vector3D")

>>> v.mag * np.sin(v.deltaangle(direction))
<Array [[2.88], [], [2.88]] type='3 * var * float64'>

New "compute" modules are not needed; just compute this as a convenience method from the existing ones.

Lingua principale
Python
Stelle
101
Fork
43
Merge medio
3h 38m
PR unite (30g)
7

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di scikit-hep/vector

Tutte le issue di scikit-hep/vector

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.