Cuatro vectores, parte 4: decaimiento de 2 cuerpos
En este desafío, utilizamos la clase FourVector que creamos en los primeros tres desafíos de esta serie (parte 1, parte 2 y parte 3). Abordaremos un decaimiento (simplificado) de dos cuerpos, es decir, una partícula se desintegra en dos partículas hijas. Esta es una situación típica, por ejemplo, en experimentos de física de partículas.
Por favor, amplía la clase FourVector con un método GetInvariantMass que acepte como parámetros una lista de vectores de 4 componentes (que, en este desafío, contendrá exactamente un elemento) y devuelva la masa invariante del sistema de vectores de 4 componentes, es decir, la suma del vector de 4 componentes cuya instancia invoca el método y el/los vector(es) de 4 componentes de la lista. Consulta el enlace de la wiki en los recursos para obtener detalles sobre la masa invariante. Es simplemente la longitud de la suma de los vectores de 4 componentes.
Además, proporciona una función (fuera de la clase FourVector) find_particle que acepte dos instancias de FourVector como entrada. Según la masa invariante de estas (que utiliza el método mencionado en la sección anterior), devuelve el nombre de la partícula que se desintegró en las dos partículas hijas representadas por los dos vectores de 4 componentes. Aquí solo cubriremos cuatro partículas: el bosón de Higgs (masa de 125.1 GeV), el barión Sigma+ (masa de 1.18937 GeV), el mesón J/Psi (masa de 3.0969 GeV) y el pión cargado (mesón pi, masa de 0.139570 GeV). Ten en cuenta que aquí usamos «unidades de física de partículas» para la masa, es decir, unidades en las que la velocidad de la luz y la constante de Planck se establecen en 1.
Los nombres que se deben devolver son "Higgs", "J/Psi", "Sigma+" y "Pi+", respectivamente.
Ten en cuenta que las masas pueden no coincidir exactamente con los valores mencionados anteriormente; permite cierto margen de error (consulta la nota siguiente).
Ejemplos
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
En los experimentos de física de partículas, varios componentes del detector se encargan de medir la energía y los momentos de la partícula con la mayor precisión posible. A partir de estos datos, el tipo de partícula y, por lo tanto, su masa en reposo y, por lo tanto, el vector completo de cuatro componentes de energía-momento pueden reconstruirse (en principio). Al calcular la masa invariante de varios vectores de cuatro componentes, es posible buscar partículas madre que se desintegraron en las partículas detectadas. En realidad, esto es mucho más complicado y existen muchas fuentes de error. Para tener esto en cuenta, aunque sea parcialmente, los datos de prueba contienen casos en los que la masa de la partícula madre solo coincide aproximadamente con los valores mencionados anteriormente.
El grupo de datos de partículas proporciona detalles sobre las propiedades de las partículas, como la masa y los modos de desintegración; consulta Recursos.