Quatro vetores, parte 4: decaimento de 2 corpos

Neste desafio, usamos a classe FourVector que criamos nos três primeiros desafios desta série (parte 1, parte 2 e parte 3). Vamos abordar um decaimento (simplificado) de dois corpos, ou seja, uma partícula decai em duas partículas filhas. Essa é uma situação típica, por exemplo, em experimentos de física de partículas.

Estenda a classe FourVector com um método GetInvariantMass que aceite como parâmetros uma lista de vetores de 4 componentes (que, neste desafio, conterá exatamente um elemento) e retorne a massa invariante do sistema de vetores de 4 componentes, ou seja, a soma do vetor de 4 componentes cuja instância chama o método e do(s) vetor(es) de 4 componentes da lista. Consulte o link da wiki nos recursos para obter detalhes sobre a massa invariante. Ela é simplesmente o comprimento da soma dos vetores de 4 componentes.

Além disso, forneça uma função (fora da classe FourVector) find_particle que aceite duas instâncias de FourVector como entrada. Com base na massa invariante delas (que utiliza o método mencionado na seção anterior), retorne o nome da partícula que decaiu nas duas partículas filhas representadas pelos dois vetores de 4 componentes. Abordaremos apenas quatro partículas aqui: o bóson de Higgs (massa de 125.1 GeV), o bárion Sigma+ (massa de 1.18937 GeV), o méson J/Psi (massa de 3.0969 GeV) e o píon carregado (méson pi, massa de 0.139570 GeV). Observe que estamos usando “unidades de física de partículas” para a massa aqui, ou seja, unidades nas quais a velocidade da luz e a constante de Planck são definidas como 1.

Os nomes a serem retornados são "Higgs", "J/Psi", "Sigma+" e "Pi+", respectivamente.

Observe que as massas podem não corresponder exatamente aos valores mencionados acima; permita uma margem de erro (consulte a nota abaixo).

Exemplos

fv1 = FourVector([62.55, 7.522814397445341, 50.95236974441615, -35.448674862543086])
fv2 = FourVector([62.55, -7.522814397445341, -50.95236974441615, 35.448674862543086])
find_particle(fv1, fv2) ➞ "Higgs"

Notas

Em experimentos de física de partículas, vários componentes do detector são responsáveis por medir a energia e os momentos das partículas com a maior precisão possível. Com base nesses dados, o tipo da partícula e, portanto, sua massa de repouso e, consequentemente, o vetor completo de quatro componentes de energia-momento podem ser reconstruídos (em princípio). Ao calcular a massa invariante de vários vetores de quatro componentes, é possível procurar partículas-mãe que decaíram nas partículas detectadas. Na realidade, isso é muito mais complicado, e há muitas fontes de erro. Para levar isso um pouco em conta, os dados de teste contêm casos em que a massa da partícula-mãe corresponde apenas aproximadamente aos valores mencionados acima.

Detalhes sobre propriedades das partículas, como massa e modos de decaimento, são fornecidos pelo Particle Data Group; consulte Recursos.