{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true, "heading_collapsed": true }, "source": [ "# Measuring Matter Antimatter Asymmetries at the Large Hadron Collider" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "![](http://lhcb-public.web.cern.ch/lhcb-public/en/LHCb-outreach/multimedia/LHCbDetectorpnglight1.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Apache Spark and High Energy Physics Data Analysis\n", "## An example using LHCb open data\n", "\n", "This notebook is an example of how to use Spark to perform a simple analysis using high energy physics data from a LHC experiment. \n", "The exercises, figures and data are from original work developed and published by the **LHCb collaboration** as part of the **opendata** and outreach efforts (see credits below). \n", "**Prerequisites** - This work is intended to be accessible to an audience with some familiarity with data analysis in Python and an interest in particle Physics at undergraduate level. \n", "**Technology** - The focus of this notebook is as much on tools and techniques as it is on physics: **Apache Spark** is used for reading and analyzing high energy physics (HEP) data using Python with Pandas and Jupyter notebooks.\n", "\n", "**Credits:**\n", " * The original text of this notebook, including all exercises, analysis, explanations and data have been developed by the LHCb collaboration and are authored and shared by the LHCb collaboration in their opendata project at: \n", " * https://github.com/lhcb/opendata-project/blob/master/LHCb_Open_Data_Project.ipynb\n", " * \"Undergraduate Laboratory Experiment: Measuring Matter Antimatter Asymmetries at the Large Hadron Collide\" https://cds.cern.ch/record/1994172?ln=en\n", " * http://www.hep.manchester.ac.uk/u/parkes/LHCbAntimatterProjectWeb/LHCb_Matter_Antimatter_Asymmetries/Homepage.html \n", "\n", " * The Spark code in this notebook has been developed in the context of the CERN Hadoop and Spark service. \n", "Contact email: Luca.Canali@cern.ch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Get the data\n", "\n", "The original work uses LHCb opendata made available via the CERN opendata portal:\n", " [PhaseSpaceSimulation.root](http://opendata.cern.ch/eos/opendata/lhcb/AntimatterMatters2017/data/PhaseSpaceSimulation.root),\n", " [B2HHH_MagnetDown.root](http://opendata.cern.ch/eos/opendata/lhcb/AntimatterMatters2017/data/B2HHH_MagnetDown.root)\n", " [B2HHH_MagnetUp.root](http://opendata.cern.ch/eos/opendata/lhcb/AntimatterMatters2017/data/B2HHH_MagnetUp.root)\n", "\n", "This notebook uses a version of the data converted to Apache Parquet format and made available in CERN EOS" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Start the Spark Session\n", "# When Using Spark on CERN SWAN, use this and do not select to connect to a CERN Spark cluster\n", "# If you want to use a cluster, please copy the data to a cluster filesystem first\n", "\n", "from pyspark.sql import SparkSession\n", "spark = (SparkSession.builder\n", " .appName(\"LHCb opendata\")\n", " .master(\"local[*]\")\n", " .config(\"spark.driver.memory\", \"2g\")\n", " .getOrCreate()\n", " )\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------+\n", "|Hello World!|\n", "+------------+\n", "|Hello World!|\n", "+------------+\n", "\n" ] } ], "source": [ "# Test that Spark SQL works\n", "\n", "sql = spark.sql\n", "sql(\"select 'Hello World!'\").show()" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "# Getting Started\n", "\n", "Note: the original text of this exercise in the form relased by LHCb can be found at https://github.com/lhcb/opendata-project\n", "____" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ " Welcome to the first guided LHCb Open Data Portal project! \n", "\n", "
Here you will be able to analyse data taken by the Large Hadron Collider (LHC) at CERN. The aim of this study is for you to be able to search for differences in the behaviour of matter and [antimatter](https://en.wikipedia.org/wiki/Antimatter). This project will enable you to carry out your own data analysis at a level similar to that of CERN research. This project does not require a detailed knowledge of particle physics. It is most suitable for people with a scientific and mathematical background equivalent to that required for applying for university entrance in a science, technology engineering or mathematics discipline. Some previous familiarity with computer programming would also be advantageous. Additional theoretical information or programming knowledge you might need is provided as the project progresses.
\n", "\n", "Before you start, you might find it helpful to find out more about matter antimatter asymmetries, what we hope to learn by studying them, and how we can detect them with experiments such as the LHCb experiment at CERN.\n", "\n", "Here are some details that relate directly to this project:\n", " - What is the [particle physics focus](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/ProjectIntro.ipynb) of this experiment? and what will I study in this project?\n", " - How does the LHCb [detector](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/DetectorSoftwareDataSample.ipynb) record the data?\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "## Reading simulation data" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "In order to get started and check the first code that you will be writing works correctly it is best to start by analysing simulated data rather than real data from the LHC. The real data contains not only the type of events that you wish to analyse, known as the 'signal', but also events that can fake these, known as 'background'. The real data measurements are also limited by the resolution of the detector. The simplified simulation data provided here contains only the signal events and provides the results that would be obtained for a perfect detector.\n", "\n", "IMPORTANT: For every code box with code already in it, like the one below you must click in and press shift+enter to run the code.\n", "\n", "If the `In [x]:` to the left of a codebox changes to `In [*]:` that means the code in that box is currently running" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "If you want help with coding there is in addition to the [example code](https://github.com/lhcb/opendata-project/tree/master/Example-Analysis.ipynb), some hints within each section and a [function reference list](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/FunctionReferences.pdf) \n", "\n", "This is a [reference to Spark DataFrames and SQL](https://spark.apache.org/docs/latest/sql-programming-guide.html)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2022-03-03 15:43:35-- https://sparkdltrigger.web.cern.ch/sparkdltrigger/LHCb_opendata/PhaseSpaceSimulation.parquet\n", "Resolving sparkdltrigger.web.cern.ch (sparkdltrigger.web.cern.ch)... 2001:1458:d00:19::12e, 2001:1458:d00:3f::100:355, 2001:1458:d00:41::100:264, ...\n", "Connecting to sparkdltrigger.web.cern.ch (sparkdltrigger.web.cern.ch)|2001:1458:d00:19::12e|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 3527686 (3.4M)\n", "Saving to: ‘PhaseSpaceSimulation.parquet’\n", "\n", "100%[======================================>] 3,527,686 --.-K/s in 0.09s \n", "\n", "2022-03-03 15:43:35 (37.5 MB/s) - ‘PhaseSpaceSimulation.parquet’ saved [3527686/3527686]\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "22/03/03 15:43:36 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'.\n", " \r" ] }, { "data": { "text/plain": [ "50000" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let us now load the simulated data\n", "# as detailed above you should have downloaded locally the simulation data as detailed at \n", "# https://github.com/LucaCanali/Miscellaneous/tree/master/Spark_Physics\n", "\n", "# this works from SWAN and CERN machines with eos mounted\n", "path = \"/eos/project/s/sparkdltrigger/public/LHCb_opendata/\"\n", " \n", "# This reads the first dataset into a Spark DataFrame\n", "sim_data_df = spark.read.parquet(path + \"PhaseSpaceSimulation.parquet\")\n", "\n", "# This registers the Spark DataFrame as a temporary view and will allow the use of SQL, used later in the notebook\n", "sim_data_df.createOrReplaceTempView(\"sim_data\") \n", "\n", "sim_data_df.cache() # it is a small dataset (~2 MB) so we can afford to cache it\n", "sim_data_df.count()" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "
Now that you can access the data, you can use a number of functions which can help you analyse it. You can find these functions in the libraries at the top of the page. Try to make a table of some of the information within your data file so that you can get a feel of the typical values for data in the set. Understanding the range of values for different variables will help with plotting graphs.
\n", "\n", "The data contains information about 'events' that were observed in the detector. An event refers to the particles produced when an interaction took place when two proton are collided at the LHC. The data you have includes information about particles observed in the detector after each collision. If you think of the data as a table, each row of the table is the results from a different collision. The columns of the table are different quantities measured about the particles produced in the collision. \n", "\n", "We are interested in analysing the decays of particles called B+ or B- mesons decaying into three other mesons called kaons (K+ or K-). The events you have been given are those in which this process may have occurred. The detector has been used to reconstruct tracks that may have come from the kaons. You are given the measured momenta, charge, and likelihood of the tracks being kaons. You are given information for three tracks in each event, the ones that could be the three kaons that a B+ or B- meson has decayed into. The following information is available about each event: [information list](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/EventData.ipynb)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
B_FlightDistanceB_VertexChi2H1_PXH1_PYH1_PZH1_ProbKH1_ProbPiH1_ChargeH1_IPChi2H1_isMuon...H2_IPChi2H2_isMuonH3_PXH3_PYH3_PZH3_ProbKH3_ProbPiH3_ChargeH3_IPChi2H3_isMuon
00.01.03551.841636.9623904.141.00.0-11.00...1.0036100.4016546.83295600.611.00.0-11.00
10.01.0-2525.98-5284.0535822.001.00.011.00...1.00-8648.32-16617.5698535.131.00.0-11.00
20.01.0-700.671299.738127.761.00.0-11.00...1.00-13483.3410860.7779787.591.00.011.00
30.01.03364.631397.30222815.291.00.011.00...1.001925.16-551.1240420.961.00.011.00
40.01.0-581.66-1305.2422249.591.00.0-11.00...1.00-2820.04-8305.43250130.001.00.0-11.00
50.01.0112.84-13297.9851882.871.00.011.00...1.00-440.95-13699.4271163.141.00.0-11.00
60.01.05558.973913.5256981.081.00.0-11.00...1.003457.70780.1328716.941.00.011.00
70.01.0-15208.03-1783.93265210.551.00.011.00...1.00-4478.67-164.3971498.091.00.011.00
80.01.0-109.048239.25191486.941.00.0-11.00...1.00-2083.5911359.35192297.671.00.0-11.00
90.01.015175.2693142.09379269.301.00.011.00...1.003295.8424950.02105990.481.00.0-11.00
\n", "

10 rows × 26 columns

\n", "
" ], "text/plain": [ " B_FlightDistance B_VertexChi2 H1_PX H1_PY H1_PZ H1_ProbK \\\n", "0 0.0 1.0 3551.84 1636.96 23904.14 1.0 \n", "1 0.0 1.0 -2525.98 -5284.05 35822.00 1.0 \n", "2 0.0 1.0 -700.67 1299.73 8127.76 1.0 \n", "3 0.0 1.0 3364.63 1397.30 222815.29 1.0 \n", "4 0.0 1.0 -581.66 -1305.24 22249.59 1.0 \n", "5 0.0 1.0 112.84 -13297.98 51882.87 1.0 \n", "6 0.0 1.0 5558.97 3913.52 56981.08 1.0 \n", "7 0.0 1.0 -15208.03 -1783.93 265210.55 1.0 \n", "8 0.0 1.0 -109.04 8239.25 191486.94 1.0 \n", "9 0.0 1.0 15175.26 93142.09 379269.30 1.0 \n", "\n", " H1_ProbPi H1_Charge H1_IPChi2 H1_isMuon ... H2_IPChi2 H2_isMuon \\\n", "0 0.0 -1 1.0 0 ... 1.0 0 \n", "1 0.0 1 1.0 0 ... 1.0 0 \n", "2 0.0 -1 1.0 0 ... 1.0 0 \n", "3 0.0 1 1.0 0 ... 1.0 0 \n", "4 0.0 -1 1.0 0 ... 1.0 0 \n", "5 0.0 1 1.0 0 ... 1.0 0 \n", "6 0.0 -1 1.0 0 ... 1.0 0 \n", "7 0.0 1 1.0 0 ... 1.0 0 \n", "8 0.0 -1 1.0 0 ... 1.0 0 \n", "9 0.0 1 1.0 0 ... 1.0 0 \n", "\n", " H3_PX H3_PY H3_PZ H3_ProbK H3_ProbPi H3_Charge H3_IPChi2 \\\n", "0 36100.40 16546.83 295600.61 1.0 0.0 -1 1.0 \n", "1 -8648.32 -16617.56 98535.13 1.0 0.0 -1 1.0 \n", "2 -13483.34 10860.77 79787.59 1.0 0.0 1 1.0 \n", "3 1925.16 -551.12 40420.96 1.0 0.0 1 1.0 \n", "4 -2820.04 -8305.43 250130.00 1.0 0.0 -1 1.0 \n", "5 -440.95 -13699.42 71163.14 1.0 0.0 -1 1.0 \n", "6 3457.70 780.13 28716.94 1.0 0.0 1 1.0 \n", "7 -4478.67 -164.39 71498.09 1.0 0.0 1 1.0 \n", "8 -2083.59 11359.35 192297.67 1.0 0.0 -1 1.0 \n", "9 3295.84 24950.02 105990.48 1.0 0.0 -1 1.0 \n", "\n", " H3_isMuon \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "5 0 \n", "6 0 \n", "7 0 \n", "8 0 \n", "9 0 \n", "\n", "[10 rows x 26 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the first 10 rows in the sim_data_df Spark DataFrame\n", "\n", "sim_data_df.limit(10).toPandas() # use pandas only for pretty visualization" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "root\n", " |-- B_FlightDistance: double (nullable = true)\n", " |-- B_VertexChi2: double (nullable = true)\n", " |-- H1_PX: double (nullable = true)\n", " |-- H1_PY: double (nullable = true)\n", " |-- H1_PZ: double (nullable = true)\n", " |-- H1_ProbK: double (nullable = true)\n", " |-- H1_ProbPi: double (nullable = true)\n", " |-- H1_Charge: integer (nullable = true)\n", " |-- H1_IPChi2: double (nullable = true)\n", " |-- H1_isMuon: integer (nullable = true)\n", " |-- H2_PX: double (nullable = true)\n", " |-- H2_PY: double (nullable = true)\n", " |-- H2_PZ: double (nullable = true)\n", " |-- H2_ProbK: double (nullable = true)\n", " |-- H2_ProbPi: double (nullable = true)\n", " |-- H2_Charge: integer (nullable = true)\n", " |-- H2_IPChi2: double (nullable = true)\n", " |-- H2_isMuon: integer (nullable = true)\n", " |-- H3_PX: double (nullable = true)\n", " |-- H3_PY: double (nullable = true)\n", " |-- H3_PZ: double (nullable = true)\n", " |-- H3_ProbK: double (nullable = true)\n", " |-- H3_ProbPi: double (nullable = true)\n", " |-- H3_Charge: integer (nullable = true)\n", " |-- H3_IPChi2: double (nullable = true)\n", " |-- H3_isMuon: integer (nullable = true)\n", "\n" ] } ], "source": [ "# Print the schema of the simulation data\n", "\n", "sim_data_df.printSchema() # the schema of the root file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Invariant mass reconstruction\n", "\n", "## Aims:\n", "* Plot a histogram of the momentum of one of the kaon candidates\n", "* Calculate the energy of each of the kaon candidates\n", "* Plot the invariant masses of the B+ or B- mesons___" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting a feature:\n", "\n", "You can plot any feature of the data in a histogram. Choose any suitable binning that allows you to observed the distribution of the variable clearly. Try making a histogram for the first kaon candidate's momentum x-component (H1_PX):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "pylab.rcParams['figure.figsize'] = (12.0, 8.0)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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nSy4Kf4iydok5yU5P6NLBc7bFwgNvpjRdI0nZHSC7S256wTgORn+QfpAkmNba+uSZJiD/8Ik/2+NrlyzbUafCEw3t3vK98OmtGeSmfp03GkZzSf/j4ymfNyaDaeBfGL4eU1VTXVll2nfo5vgpRlNT/lhkhMyOsF0k9rZWrspo3+MTsrovfacJKdsYrtgi1ejAQKA+TWMvl2f0fSS7y5ycyBJUlW/luSoYZoJwKIQwIF5U1W/neT0jKYTvCOjy/A9pvlFAwA/YwoKMJ8OzOgksMuT7JXRx/fCN3NWVaeOXcVm/PaaxW4bwOYyAg4AAB0ZAQcAgI4EcAAA6GjFxjdZXnbZZZe2evXqxW4GAADL3Nlnn/2j1tquk8u3ugC+evXqrF27drGbAQDAMldV35uq3BQUAADoSAAHAICOBHAAAOhoq5sDDgDA5rv99tuzfv363HrrrYvdlEW3cuXKrFq1Kve85z1ntb0ADgDAnK1fvz73vve9s3r16lTVYjdn0bTWcs0112T9+vXZc889Z1XHFBQAAObs1ltvzc4777xVh+8kqarsvPPOc/okQAAHAGCTbO3he8JcnwcBHAAAOjIHHACAzbb66M/N6/4ue+tvbnSbHXbYITfffPPP7p9wwglZu3Zt3vOe9+SMM87Iy1/+8px33nk58cQTc8ghh0z/WJddlr333jsPf/jD85Of/CRPfOITc9xxx+Wcc87J4YcfnnPOOSfbbrttLr300jztaU/Lueeemx133HGTj80IOAAAy86DHvSgnHDCCXnOc54zq+0f8pCH5Nxzz815552Xiy66KJ/61KeyZs2aPPGJT8zb3/72JMlRRx2VY489drPCd2IEHACAZWj16tVJknvcY27jzStWrMgTnvCErFu3Lknylre8JY95zGOyYsWK3H777Xn2s5+92W0TwAEA2CLdcsst2XfffX92/9prr83v/M7vbNY+f/zjH+f000/Pm970piTJfe9737zqVa/KS17yklx00UWbte8JAjgAAFuk7bffPueee+7P7k/MAd8Ul156afbdd99UVQ488MA84xnP+Nm6U089NbvttlsuuuiiPPzhD9/cZgvgAAAwMQd8ss9+9rO54YYbctppp+Xggw/O/vvvn3vd616b9VhOwgQAgCnccssteeUrX5n3vve9edSjHpUDDzwwxx577Gbv1wg4AACbbTaX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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot a histogram of the distribution of the H1_PX variable, using Pandas\n", "\n", "# This is a basic solution that moves all the data from the Spark DataFrame \n", "# into a Python Pandas DataFrame. It's OK for small sata sets, but it has scalability issues\n", "\n", "h1px_data = sim_data_df.select(\"H1_PX\").toPandas() # select H1_PX data and moves it to Pandas\n", "h1px_data.plot.hist(bins=31, range=[-150000, 150000], title=\"Histogram - distribution of H1_PX, simulation data\")\n", "xlabel('H1_PX (MeV/c)')\n", "ylabel('Count');" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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54iYA9xF8ziTZoxodhRIUjfK3rfbaKaXXDPN7UgARMTuwOvLNBP1RES8Atg5M98+3b1INRnAJa20iPhz4Aya6QQfpjkN3xPTfzCSJD2EU1AkdWFvmoPAbgR2oHn73vCt1iLi1IGz2Axe3jHdvUlSV9wDLkmSJFXkHnBJkiSpIgO4JEmSVNHsFd9ltGy66aY5d+7c6W5DkiRJI+688877bWZuNjw+4wL43LlzWbBgwXS3IUmSpBEXEdeNN+4UFEmSJKkiA7gkSZJUkQFckiRJqmjGzQGXJElS9+69914WLlzIPffcM92tVLfWWmsxZ84cVl999Qnd3wAuSZKklbZw4ULWW2895s6dS0RMdzvVZCaLFy9m4cKFbLfddhNaxikokiRJWmn33HMPm2yyyYwK3wARwSabbNJqz78BXJIkSZ2YaeF7TNv1NoBLkiRJK3DkkUfyhz/8oZNazgGXJElS5+Ye+q1O6117xAs6rdfWkUceySte8QrWWWedla7lHnBJkiSNhGOPPZbHP/7x7LLLLuy///5cd911zJ8/n8c//vHMnz+f66+/HoCDDjqIE0888YHl1l13XQC+//3vs8cee7Dvvvvy6Ec/mpe//OVkJkcddRQ33ngjz3rWs3jWs5610n26B1ySJEmrvEsvvZTDDz+cn/zkJ2y66abceuutHHjggRxwwAEceOCBfPazn+VNb3oTJ5100nLrXHDBBVx66aVstdVWPOMZz+AnP/kJb3rTm/jIRz7CWWedxaabbrrSvboHXJIkSau8M888k3333feBgLzxxhtz9tln87KXvQyA/fffnx//+McrrDNv3jzmzJnDaqutxq677sq1117bea8GcEmSJK3yMnOFZyMZu3327Nncf//9Dyz3f//3fw/cZ80113zg+qxZs1iyZEnnvRrAJUmStMqbP38+J5xwAosXLwbg1ltv5elPfzrHH388AF/60pfYfffdAZg7dy7nnXceACeffDL33nvvCuuvt9563HnnnZ306hxwSZIkrfJ23nlnDjvsMJ75zGcya9YsnvCEJ3DUUUfxqle9in/7t39js80243Of+xwAr3nNa9h7772ZN28e8+fP52EPe9gK6x9yyCHstddebLnllpx11lkr1Wtk5koVWNXstttuuWDBguluQ5IkaaRcfvnl7LTTTtPdxrQZb/0j4rzM3G34vk5BkSRJ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# This example computes and plots a histogram of the H1_PX data, similarly to the previous cell\n", "# The notable difference is that Spark SQL is used to compute the aggregations and only the final result\n", "# is returned and transformed into a Pandas DataFrame, just for plotting. \n", "# This vesion can scale on a cluster for large datasets, while the previous version requires to fetch all data into Pandas\n", "\n", "histogram_h1px_df = sql(\"\"\"\n", " select round(H1_PX/10000,0) * 10000 as bin, count(1) as count\n", " from sim_data \n", " group by round(H1_PX/10000,0) order by 1\n", " \"\"\")\n", "histogram_h1px_pandas = histogram_h1px_df.toPandas()\n", "histogram_h1px_pandas.plot.bar(x='bin', y='count', title=\"Histogram - distribution of H1_PX, simulation data,\")\n", "xlabel('H1_PX (MeV/c)')\n", "ylabel('Count');" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+---------+-----+\n", "| bin|count|\n", "+---------+-----+\n", "|-180000.0| 1|\n", "|-170000.0| 5|\n", "|-160000.0| 1|\n", "|-150000.0| 9|\n", "|-140000.0| 11|\n", "|-130000.0| 19|\n", "|-120000.0| 26|\n", "|-110000.0| 44|\n", "|-100000.0| 60|\n", "| -90000.0| 107|\n", "| -80000.0| 159|\n", "| -70000.0| 222|\n", "| -60000.0| 395|\n", "| -50000.0| 590|\n", "| -40000.0| 893|\n", "| -30000.0| 1454|\n", "| -20000.0| 2658|\n", "| -10000.0| 6540|\n", "| 0.0|23684|\n", "| 10000.0| 6453|\n", "| 20000.0| 2693|\n", "| 30000.0| 1459|\n", "| 40000.0| 892|\n", "| 50000.0| 578|\n", "| 60000.0| 380|\n", "| 70000.0| 230|\n", "| 80000.0| 136|\n", "| 90000.0| 104|\n", "| 100000.0| 61|\n", "| 110000.0| 45|\n", "| 120000.0| 28|\n", "| 130000.0| 25|\n", "| 140000.0| 20|\n", "| 150000.0| 11|\n", "| 160000.0| 6|\n", "| 180000.0| 1|\n", "+---------+-----+\n", "\n" ] } ], "source": [ "# This is the same query used for the histogram displayed above. \n", "# It is here just to show the numeric values of each of the bins\n", "\n", "sql(\"\"\"\n", " select round(H1_PX/10000,0) * 10000 as bin, count(1) as count\n", " from sim_data \n", " group by round(H1_PX/10000,0) order by 1\n", " \"\"\").show(50)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Momentum is a **vector** quantity, it has x,y, and z components. Try calculating the **magnitude** of the momentum of the first kaon candidate and plotting a histogram of this, you'll need the `H1_PX`, `H1_PY` and `H1_PZ` variables." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+--------+--------+---------+---------+\n", "| H1_PX| H1_PY| H1_PZ| H1_PTOT|\n", "+--------+--------+---------+---------+\n", "| 3551.84| 1636.96| 23904.14| 24221.96|\n", "|-2525.98|-5284.05| 35822.0| 36297.62|\n", "| -700.67| 1299.73| 8127.76| 8260.79|\n", "| 3364.63| 1397.3|222815.29|222845.07|\n", "| -581.66|-1305.24| 22249.59| 22295.43|\n", "+--------+--------+---------+---------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "# Selects the vector components of the momentum of H1 and computes the magnitude of the vector\n", "# Only consider data where H1_PROBK = 1.0 (note,this could be relaxed to H1_PROBK >= )\n", "\n", "p_tot = sql(\"\"\"\n", " select H1_PX, H1_PY, H1_PZ, round(sqrt(H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ),2) H1_PTOT \n", " from sim_data \n", " where H1_PROBK = 1.0\"\"\")\n", "\n", "p_tot.show(5) # displays the first 5 rows of the result" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# calculate a variable for the magnitude of the momentum of the first kaon \n", "# plot a histogram of this variable\n", "\n", "h1ptot_data_plot = p_tot.select(\"H1_PTOT\").toPandas().plot.hist(bins=31, range=[0, 550000]) \n", "xlabel('H1_PTOT (MeV/c)')\n", "ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Hints" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Histogram plotting** - You can use the hist() function. The parameters bins(n) and range(x,y) allow youto plot n bins over the range x to y.\n", "\n", "**Vector Magnitude** The square magnitude of a magnitude of a vector is given by the sum of the square of its of its components in the x,y and z directions: $p^2 = p_x^2+p_y^2+p_z^2$, where $p$ is the magnitude of the momentum, and $p_x,p_y,p_z$ are the components of the momentum in the X,Y, and Z directions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Energy and mass\n", "\n", "Einstein's theory of special relativity relates Energy, mass and momentum. We have measured the momentum of the kaon candidates in the detector, and have just plotted one of the components of the momentum of the kaon, and the magnitude of the momentum. The invariant mass of the kaon is well known and you can look this up. We wish to determine the energy of the kaons. \n", "\n", "Here is a brief guide to the energy-momentum relation of [special relativity](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/SpecialRelativity.ipynb). Further information can be found on wikipedia pages on [Invariant Mass](https://en.wikipedia.org/wiki/Invariant_mass) and the [Energy-momentum relation](https://en.wikipedia.org/wiki/Energy%E2%80%93momentum_relation).\n", "\n", "Now, calculate the energy of the first kaon candidate using:\n", "\n", "
$E^2 = p^2 + m^2$
" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+---------+\n", "|H1_Energy|\n", "+---------+\n", "| 24226.99|\n", "| 36300.98|\n", "| 8275.53|\n", "|222845.62|\n", "| 22300.9|\n", "+---------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "# Computes the Energy of the kaon candidates using the formula of special relativity\n", "# that is including the magnitude of the momentum and invariant mass\n", "\n", "kcharged_mass = 493.677\n", "\n", "Energy_H1 = spark.sql(f\"\"\"\n", " select round(sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ),2) H1_Energy\n", " from sim_data \n", " where H1_PROBK = 1.0\n", " \"\"\")\n", "\n", "Energy_H1.show(5)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHhCAYAAABQuxnAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkAUlEQVR4nO3df7BnZX0n+PfH5mcJjIAtQ9GSJpmeRDSK0LA4uiZKAiS4Ihs1uI6QiEPWMaPGqZlt10qMm6KK2crORtZRh5gMMKPBNoYCJf5ANDGmiNAIioCuqB3sAqEluGJG0YbP/nEP+LW53Tb0ffr+4PWqOvU95/M95/k+9z5VzZvnPt9zqrsDAAAsrCcsdgcAAGAlErQBAGAAQRsAAAYQtAEAYABBGwAABhC0AQBggL0WuwOjPPnJT+61a9cudjcAAFjBrr/++m919+r53luxQXvt2rXZtGnTYncDAIAVrKr+fkfvWToCAAADCNoAADCAoA0AAAOs2DXaAACPFz/84Q+zZcuWfP/731/srqxY++23X9asWZO99957l68RtAEAlrktW7bkwAMPzNq1a1NVi92dFae7c88992TLli056qijdvk6S0cAAJa573//+zn00EOF7EGqKoceeuij/ouBoA0AsAII2WM9lt+voA0AAANYow0AsMKs3XDlgra3+fzTfuI5BxxwQL773e8+fHzRRRdl06ZNecc73pFPf/rTeeMb35gvfOELufTSS/PSl750x5+1eXOe9rSn5Wd/9mcfrr3pTW/KWWedtXs/xCIQtAEAGOrII4/MRRddlD/8wz/cpfN/5md+JjfeeOOC9mHbtm3Za689G30tHQEAYKi1a9fmmc98Zp7whN2LngcccEDe8pa35FnPelZOPPHE3HXXXUmSrVu35td+7ddy/PHH5/jjj8/f/u3fJkl+//d/P+eee25OPvnknHXWWdm6dWt++Zd/Occee2x+67d+Kz/1Uz+Vb33rW/nd3/3dvP3tb3/4c97ylrfkggsu2K2+JoI2AAAL4Hvf+16OOeaYh7ff+73fe8xtffWrX/2xtv7mb/4mSfKP//iPOfHEE/P5z38+z3/+8/PHf/zHSZI3vOEN+Z3f+Z1cd911+eAHP5jXvOY1D7d1/fXX5/LLL8/73ve+vO1tb8sLX/jCfO5zn8sZZ5yR22+/PUlyzjnn5OKLL06SPPjgg7n00kvzyle+8jH3/yGWjgAAsNv233//H1vu8dAa7cdiR0tH9tlnn7zoRS9Kkhx33HG56qqrkiSf+MQncssttzx83ne+853cd999SZIXv/jF2X///ZMkn/nMZ3LZZZclSU499dQcfPDBSeZm3A899NDccMMNueuuu/LsZz87hx566GPq+yxBGwCAZWHvvfd++DZ7q1atyrZt25LMzUJfc801DwfqWU984hMf3u/uHbb9mte8JhdddFG++c1v5tWvfvWC9NfSEQAAlrWTTz4573jHOx4+3tEXKZ/3vOdl48aNSZKPf/zjuffeex9+74wzzshHP/rRXHfddTnllFMWpF9mtAEAVphduR3fnnTdddfljDPOyL333psPfehDeetb35qbb755h+c/tEb7Ia9+9avz+te/fofnX3DBBXnd616XZz7zmdm2bVue//zn593vfvcjznvrW9+aV7ziFXn/+9+fX/iFX8jhhx+eAw88MMncspQXvOAFedKTnpRVq1Y99h92Ru1sCn05W79+fT/WdUEAAMvJrbfemqc97WmL3Y0l7/7778+qVauy11575ZprrslrX/vah2e/H3zwwRx77LH5wAc+kHXr1s17/Xy/56q6vrvXz3e+GW0AAB4Xbr/99rz85S/Pgw8+mH322efhu5bccsstedGLXpQzzjhjhyH7sRC0AQDY42666aa86lWv+rHavvvum89+9rPDPnPdunW54YYbHlE/+uij87WvfW3BP0/QXmCL8chTAIDl5ud//ucX/OmPS427jgAArAAr9Xt3S8Vj+f0K2gAAy9x+++2Xe+65R9gepLtzzz33ZL/99ntU11k6AgCwzK1ZsyZbtmzJ1q1bF7srK9Z+++2XNWvWPKprBG0AgGVu7733zlFHHbXY3WA7lo4AAMAAgjYAAAwgaAMAwACCNgAADCBoAwDAAII2AAAMIGgDAMAAgjYAAAwgaAMAwACCNgAADCBoAwDAAII2AAAMIGgDAMAAgjYAAAwgaAMAwACCNgAADCBoAwDAAII2AAAMIGgDAMAAgjYAAAwwNGhX1ZOq6s+r6ktVdWtVPaeqDqmqq6rqK9PrwTPnv7mqbquqL1fVKTP146rqpum9C6qqRvYbAAB21+gZ7bcn+Wh3/1ySZyW5NcmGJFd397okV0/Hqaqjk5yZ5OlJTk3yzqpaNbXzriTnJlk3bacO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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plots a histogram of the energy of the first kaon candidate\n", "\n", "Energy_H1_data_plot = Energy_H1.toPandas().plot.hist(bins=31, range=[0, 550000]) \n", "xlabel('H1_Energy (MeV)')\n", "ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Hints" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Energy calculation** - Use the magnitude of momentum variable you calculated above and the known invariant mass of the kaon to work out the energy of the first hadron. Calculate the energy squared, and then the energy and plot this.\n", "\n", "**Kaon mass** - you can find the kaon mass on wikipedia or in physics textbooks. There is also a reference used by particle physicists: all our knowledge of the properties of the particles are collected together by the particle data group [here](http://pdg.lbl.gov/2014/reviews/rpp2014-rev-charged-kaon-mass.pdf)." ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "Calculate the momenta and energies of the second and third kaon candidates also.\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHhCAYAAABQuxnAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAki0lEQVR4nO3dfbRmVX0n+O/PKqBQoOWloFmUWiRTnYhGeSmYsnU0SgJloEUmwZRjhETssmnSmthLpxhWYuws1qJ7ZpzIOGITdChaDZQaFtUSXxANiVkEKF4MAtKgVqAWWFUSHcFWtGDPH/cUPl7uLaqoZ9d94fNZ66znPL/nnP3se/daxZd99zmnWmsBAADG6zkz3QEAAJiPBG0AAOhA0AYAgA4EbQAA6EDQBgCADgRtAADoYOFMd6CXQw45pC1dunSmuwEAwDx2yy23fLe1tniqz+Zt0F66dGk2bNgw090AAGAeq6p/nO4zS0cAAKADQRsAADoQtAEAoIN5u0YbAODZ4qc//Wk2bdqUH//4xzPdlXlr0aJFWbJkSfbaa6+dPkfQBgCY4zZt2pT9998/S5cuTVXNdHfmndZaHn744WzatClHHnnkTp9n6QgAwBz34x//OAcffLCQ3UlV5eCDD97lvxgI2gAA84CQ3dcz+f0K2gAA0IE12gAA88zSNdeMtb2NF57ytMfst99+efTRR598f9lll2XDhg350Ic+lA984AO59NJLs3DhwixevDgf+9jH8qIXvWjq79q4MS9+8YvzS7/0S0/W3v3ud+fMM8/c/R9kDxO0AQDo6phjjsmGDRvy3Oc+NxdffHHe+9735sorr5z2+F/8xV/M7bffPtY+bNu2LQsX7tnoa+kIAABdvfa1r81zn/vcJMmKFSuyadOmZ9TOfvvtl/PPPz8vf/nLs2LFimzevDlJsnXr1vzmb/5mjj/++Bx//PH5u7/7uyTJn/zJn2T16tU56aSTcuaZZ2br1q359V//9Rx77LF5xzvekRe96EX57ne/mz/6oz/KBz/4wSe/5/zzz89FF120mz+1oA0AwBj86Ec/ytFHH/3k9sd//MdTHvfRj340r3/963fY1je/+c2fa+tv//ZvkyQ//OEPs2LFinzta1/Lq1/96vz5n/95kuRd73pX/vAP/zA333xzPvOZz+Ttb3/7k23dcsstufrqq/PJT34y73//+/O6170ut956a04//fTcf//9SZKzzz47a9euTZI88cQTueKKK/KWt7xlt38nlo4AALDb9t13359b7rF9jfaoj3/849mwYUOuv/76HbY13dKRvffeO6eeemqS5Ljjjsu1116bJPnSl76Uu+6668njfvCDH+SRRx5JkrzhDW/IvvvumyT56le/mquuuipJsnLlyhx44IFJkqVLl+bggw/Obbfdls2bN+eYY47JwQcfvAs//dQEbQAAuvvSl76UCy64INdff3322WefZ9TGXnvt9eRt9hYsWJBt27YlmZiFvuGGG54M1KOe97znPbnfWpu27be//e257LLL8p3vfCdve9vbnlH/JrN0BACArm677ba84x3vyPr163PooYeOvf2TTjopH/rQh558P92FlK961auybt26JMkXv/jFfO9733vys9NPPz2f//znc/PNN+fkk08eS7/MaAMAzDM7czu+Pek973lPHn300ZxxxhlJkhe+8IVZv379tMdvX6O93dve9ra8853vnPb4iy66KOeee25e9rKXZdu2bXn1q1+dj3zkI0857n3ve1/e/OY358orr8xrXvOaHH744dl///2TTCxLee1rX5vnP//5WbBgwTP8SX9e7WgKfS5bvnx5m7wuCABgPrr77rvz4he/eKa7Mes99thjWbBgQRYuXJgbbrgh55xzzpOz30888USOPfbYfOpTn8qyZcumPH+q33NV3dJaWz7V8Wa0AQB4Vrj//vvzpje9KU888UT23nvvJ+9actddd+XUU0/N6aefPm3IfiYEbQAA9rg77rgjb33rW3+uts8+++TGG2/s9p3Lli3Lbbfd9pT6UUcdlW9961tj/z5Be8xm4pGnAABzza/8yq+M/emPs427jgAAzAPz9bq72eKZ/H4FbQCAOW7RokV5+OGHhe1OWmt5+OGHs2jRol06z9IRAIA5bsmSJdm0aVO2bt06012ZtxYtWpQlS5bs0jmCNgDAHLfXXnvlyCOPnOluMImlIwAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHhCAYAAABQuxnAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkY0lEQVR4nO3dfbSeZX0n+u/PBAhLYAwQGBahDXVyWqNWhMDB0bFVWkgLR2RabNQRpuKkMuloy6zxhGFa67SsRWfNdCoD4qG2hzAjxVjLgpFKRbQvdlEgvFgE5ACaQhaYRKpHdBQNXPPHvoOPm52wQ54r+4XPZ617Pffzu1+ea+9rrfDl2tdz3dVaCwAAMF4vmukGAADAfCRoAwBAB4I2AAB0IGgDAEAHgjYAAHQgaAMAQAcLZ7oBvRx66KFt2bJlM90MAADmsdtvv/1rrbUlUx2bt0F72bJl2bhx40w3AwCAeayq/n5nx0wdAQCADgRtAADoQNAGAIAO5u0cbQCAF4rvf//72bx5c7773e/OdFPmrUWLFmXp0qXZZ599pn2NoA0AMMdt3rw5Bx54YJYtW5aqmunmzDuttTz++OPZvHlzjj766GlfZ+oIAMAc993vfjeHHHKIkN1JVeWQQw7Z7b8YCNoAAPOAkN3X8/n9CtoAANCBOdoAAPPMsnXXj/V+my469TnPOeCAA/Ktb33rmfdXXHFFNm7cmEsuuSQf/vCHc+mll2bBggU54IADcvnll2fFihVTf9amTXnZy16WH//xH3+mdt555+Wss87a8x9kLxO0AQDo6m1ve1ve/e53J0muu+66nHfeebnhhht2ev5LX/rS3HXXXWNtw/bt27Nw4d6NvqaOAADQ1UEHHfTM/re//e3nPZ/8gAMOyAUXXJBXvepVOfHEE7Nly5YkybZt2/ILv/ALOf7443P88cfnb/7mb5Ikv/Vbv5U1a9bk5JNPzllnnZVt27blZ3/2Z3PsscfmV37lV/KjP/qj+drXvpbf+I3fyAc/+MFnPueCCy7IxRdfvAc/8QRBGwCAPfad73wnxxxzzDPbb/7mb/7Q8UsvvTQvfelL8773ve85Q+xDDz30Q/f667/+6yQTIf3EE0/MF77whbz+9a/PH/zBHyRJ3vve9+bXf/3Xc9ttt+UTn/hE3vWudz1zr9tvvz3XXnttrrrqqnzgAx/IG9/4xtxxxx0544wz8vDDDydJzjnnnKxfvz5J8vTTT+fqq6/O29/+9j3+nZg6AgDAHtt///1/aLrHjjnaO6xduzZr167NVVddld/5nd95JthOZWdTR/bdd9+cdtppSZLjjjsuN954Y5LkM5/5TO69995nzvvmN7+ZJ554Iknypje9Kfvvv3+S5POf/3yuueaaJMmqVauyePHiJMmyZctyyCGH5M4778yWLVvy6le/Oocccsjz+C38MEEbAIC9ZvXq1Tn33HOf17X77LPPM9NOFixYkO3btyeZGIW++eabnwnUo1784hc/s99a2+m93/Wud+WKK67IV7/61bzzne98Xu2bzNQRAAC6euCBB57Zv/7667N8+fKx3v/kk0/OJZdc8sz7nX2R8nWve102bNiQJPn0pz+dr3/9688cO+OMM3LDDTfktttuyymnnDKWdhnRBgCYZ6azHN/edMkll+Qzn/lM9tlnnyxevHiX00aSH8zR3uGd73xn3vOe9+z0/Isvvjhr167NT/7kT2b79u15/etfnw9/+MPPOu/9739/3vrWt+ZjH/tYfuqnfipHHHFEDjzwwCQT01Le8IY35CUveUkWLFjw/H7QSWpXQ+hz2cqVK9vovCAAgPnqvvvuy8te9rKZbsas9+STT2bBggVZuHBhbr755px77rnPjH4//fTTOfbYY/Pxj398pyPuU/2eq+r21trKqc43og0AwAvCww8/nLe85S15+umns++++z6zasm9996b0047LWecccZYp7UI2gAA7HV333133vGOd/xQbb/99sstt9zS7TOXL1+eO++881n1FStW5Mtf/vLYP0/QHrOZeOQpAMBc88pXvnLsT3+cbaw6AgAwD8zX793NFs/n9ytoAwDMcYsWLcrjjz8ubHfSWsvjjz+eRYsW7dZ1po4AAMxxS5cuzebNm7Nt27aZbsq8tWjRoixdunS3rhG0AQDmuH322SdHH330TDeDSUwdAQCADgRtAADoQNAGAIAOBG0AAOhA0AYAgA4EbQAA6EDQBgCADgRtAADoQNAGAIAOBG0AAOhA0AYAgA4EbQAA6EDQBgCADgRtAADoQNAGAIAOBG0AAOhA0AYAgA4EbQAA6EDQBgCADgRtAADoQNAGAIAOBG0AAOhA0AYAgA4EbQAA6KBr0K6ql1TVn1TVl6rqvqp6TVUdXFU3VtUDw+vikfPPr6oHq+r+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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# calculate variables for the energy of the other two kaons\n", "\n", "kcharged_mass = 493.677\n", "\n", "Energy_H2 = spark.sql(f\"\"\"\n", " select sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) H2_Energy\n", " from sim_data \n", " where H2_PROBK = 1.0\n", " \"\"\")\n", "\n", "Energy_H3 = spark.sql(f\"\"\"\n", " select sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) H3_Energy\n", " from sim_data \n", " where H3_PROBK = 1.0\n", " \"\"\")\n", "\n", "Energy_H2_data_plot = Energy_H2.toPandas().plot.hist(bins=31, range=[0, 550000]) \n", "xlabel('H2_Energy (MeV)')\n", "ylabel('Count')\n", "Energy_H3_data_plot = Energy_H3.toPandas().plot.hist(bins=31, range=[0, 550000]) \n", "xlabel('H3_Energy (MeV)')\n", "ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding features of the $B$ meson\n", "\n", "In this analysis we are looking for B+ or B- mesons (see [B meson](https://en.wikipedia.org/wiki/B_meson)) that have decayed into the three charged [kaons](https://en.wikipedia.org/wiki/Kaon).\n", "\n", "Energy is a conserved quantities. This means that you can use the energy of the three 'daughter' kaons, which you have calculated above, to calculate the energy that the B meson that decayed into them must have.\n", "\n", "Momentum is also a conserved quantity. Hence you can also use the momenta of the 'daughter' kaons to calculate the momentum of the B meson. But be careful - momentum is a *vector* quantity. \n", "\n", "Using the Energy of the B meson and the magnitude of the momentum of the B meson you can use the energy-momentum relationship again. This time you are applying it to the B meson. This will allow you to calculate the invariant mass of the B meson.\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "run_control": { "frozen": false, "read_only": false }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+\n", "| Tot_Energy|\n", "+------------------+\n", "| 657116.5757740112|\n", "| 731372.0511105937|\n", "|106495.84886114487|\n", "| 425265.3012500729|\n", "| 338761.408158081|\n", "|175425.84880753706|\n", "| 196160.8705834044|\n", "| 794379.0808414945|\n", "| 661607.1394124703|\n", "| 725138.8031006289|\n", "+------------------+\n", "only showing top 10 rows\n", "\n" ] } ], "source": [ "# calculate the energy of the B meson from the sum of the energies of the kaons\n", "\n", "sum_kaons_energy = sql(f\"\"\"\n", " select \n", " sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) as Tot_Energy \n", " from sim_data\n", " where H1_ProbK = 1.0 and H2_ProbK = 1.0 and H3_ProbK = 1.0\n", " \"\"\")\n", "\n", "sum_kaons_energy.show(10)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+------------------+------------------+\n", "| PX_Tot| PY_Tot| PZ_Tot|\n", "+------------------+------------------+------------------+\n", "| 81159.39000000001|34164.380000000005| 651168.39|\n", "|-54357.21000000001| -118454.64| 719646.4400000001|\n", "| -15596.0|15711.460000000001| 104035.62|\n", "| 7482.21| 2216.05|425161.00000000006|\n", "| -2248.65| -11608.84| 338513.81|\n", "|305.62000000000006| -38778.21| 171004.43|\n", "| 20106.33| 6091.150000000001|194961.15000000002|\n", "| -43942.38| -9465.89| 793088.72|\n", "| -3945.83| 33592.15| 660722.88|\n", "| 28585.38|169779.41999999998| 704385.04|\n", "+------------------+------------------+------------------+\n", "only showing top 10 rows\n", "\n" ] } ], "source": [ "# Calculate the momentum components of the B meson \n", "# This is a vector sum (i.e. we sum each vector component of the kaons)\n", "\n", "sum_kaons_momentum = sql(\"\"\"\n", " select \n", " H1_PX + H2_PX + H3_PX as PX_Tot,\n", " H1_PY + H2_PY + H3_PY as PY_Tot,\n", " H1_PZ + H2_PZ + H3_PZ as PZ_Tot\n", " from sim_data\n", " where H1_ProbK = 1.0 and H2_ProbK = 1.0 and H3_ProbK = 1.0\"\"\")\n", "\n", "sum_kaons_momentum.show(10)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+\n", "| P_Tot|\n", "+------------------+\n", "| 657095.3687107745|\n", "| 731352.9972736745|\n", "|106364.91630286745|\n", "| 425232.6072458304|\n", "|338720.26977091905|\n", "|175346.39447109654|\n", "|196089.81774613875|\n", "| 794361.5383594519|\n", "| 661588.0336519893|\n", "| 725120.9967868|\n", "+------------------+\n", "only showing top 10 rows\n", "\n" ] } ], "source": [ "# Calculate the momentum components of the B meson \n", "# This computes the vector magnitude of the vector computed above\n", "# we use the spark sql declarative interface as opposed to writing an SQL statement for this\n", "# the two approaches are equivalent in Spark\n", "\n", "sum_kaons_momentum_magnitude = sum_kaons_momentum.selectExpr(\"sqrt(PX_Tot*PX_Tot + PY_Tot*PY_Tot + PZ_Tot*PZ_Tot) as P_Tot\")\n", "\n", "sum_kaons_momentum_magnitude.show(10)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "run_control": { "frozen": false, "read_only": false }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+------------------+------------------+------------------+\n", "| Tot_Energy| PX_Tot| PY_Tot| PZ_Tot|\n", "+------------------+------------------+------------------+------------------+\n", "| 657116.5757740112| 81159.39000000001|34164.380000000005| 651168.39|\n", "| 731372.0511105937|-54357.21000000001| -118454.64| 719646.4400000001|\n", "|106495.84886114487| -15596.0|15711.460000000001| 104035.62|\n", "| 425265.3012500729| 7482.21| 2216.05|425161.00000000006|\n", "| 338761.408158081| -2248.65| -11608.84| 338513.81|\n", "+------------------+------------------+------------------+------------------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "# calculate the B meson invariant mass\n", "# plot the B meson invariant mass in a histogram\n", "\n", "b_meson_4momentum = sum_kaons_energy = sql(f\"\"\"\n", " select \n", " sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) as Tot_Energy,\n", " H1_PX + H2_PX + H3_PX as PX_Tot,\n", " H1_PY + H2_PY + H3_PY as PY_Tot,\n", " H1_PZ + H2_PZ + H3_PZ as PZ_Tot\n", " from sim_data\n", " where H1_ProbK = 1.0 and H2_ProbK = 1.0 and H3_ProbK = 1.0\n", " \"\"\")\n", "\n", "b_meson_4momentum.show(5)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+\n", "| invariant_mass|\n", "+------------------+\n", "| 5279.259021223659|\n", "|5279.2541641354055|\n", "| 5279.242799854169|\n", "| 5273.156761236732|\n", "| 5279.252178269909|\n", "+------------------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "b_meson_invariant_mass = b_meson_4momentum.selectExpr(\"\"\"\n", " sqrt(Tot_Energy* Tot_Energy - (PX_Tot*PX_Tot + PY_Tot*PY_Tot + PZ_Tot*PZ_Tot) ) as invariant_mass\"\"\")\n", " \n", "b_meson_invariant_mass.show(5)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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pDWE4Xvt1NvXzQAuSZIkVeQYcEmSpDXQuONn9Ov25p767lUu86Y3vYnf/va3/brfdieeeCJvfetbefvb397rdWfNmsVDDz3E/vvvPwA1q8cALkmSJIABD9/Lly9nypQpq73+rFmzmDlz5lofwB2CIkmSJAA23HBDAK699lr23ntvDj74YF772tdy6KGHkplcccUVfOADH3hh+WuvvZb3vOc9ABx77LFMnDiRHXfckS9+8YsvLDNu3DimTJnCm9/8Zi655BKOOOIIpk+fDsCUKVPYbbfd2GmnnTjmmGPITAD23ntvPve5z7H77rvz6le/muuvv56//OUvnHjiiUydOpUJEyYwderUTo/hpJNO4vDDD+ed73wn48aN48c//jGf/exnGT9+PJMmTeK5557rdt9nnnkmO+ywA69//euZPHkyANdddx0TJkxgwoQJ7LzzzixZsqRP7WwAlyRJ0kpuv/12zjjjDO6++25+97vf8Zvf/IZ3vOMd3Hjjjfz5z38GYOrUqRxyyCEAnHLKKcycOZM77riD6667jjvuuOOFbY0aNYpf//rXLwTaDh//+Me55ZZbuPPOO3nmmWe4/PLLX5i3bNkybr75Zs444wxOPvlk1ltvPaZMmcIhhxzCrFmzXthvZx544AFmzJjBz372Mw477DD22WcfZs+ezejRo5kxY0a3+z711FO5/fbbueOOO/j2t78NwOmnn843v/lNZs2axfXXX8/o0aP71LYGcEmSJK1k9913Z+zYsayzzjpMmDCBuXPnMnLkSCZNmsRll13GsmXLmDFjBgceeCAA06ZNY5dddmHnnXfmrrvu4u67735hW12F5WuuuYY3vvGNjB8/nquvvpq77rrrhXnve9/7ANh1112ZO3dur+q+3377se666zJ+/HiWL1/OpEmTABg/fvwL2+pq369//es59NBDueCCCxg5shmtvddee/GZz3yGM888k8WLF79QvroM4JIkSVrJ+uuv/8L0iBEjWLZsGdCE6WnTpnH11Vez2267sdFGG/Hggw9y+umnc9VVV3HHHXfw7ne/e4Xvxd5ggw1W2v7SpUv52Mc+xvTp05k9ezZHH330Cut07L91372t+zrrrMO66677wtcErrPOOixbtqzbfc+YMYPjjjuOW2+9lV133ZVly5Zx/PHH873vfY9nnnmGPfbYg3vvvbdX9WlnAJck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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "b_meson_invariant_mass.toPandas().plot.hist(bins=101, range=[4000, 6000],\n", "title=\"Histogram - distribution of B meson invariant mass, simulation data\") \n", "xlabel('b_meson_invariant_mass (MeV)')\n", "ylabel('Count');\n", "\n", "# Note the mass of the charged B meson is expected to be 5279.29±0.15 and this is consistenet with the \n", "# the peak in found in the data plotted here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should have a graph that sharply peaks at the mass of the B+ meson. The mass of the B+ and B- meson are the same. Check that the peak of your graph is at the [known mass](http://pdg.lbl.gov/2014/listings/rpp2014-list-B-plus-minus.pdf) of the B meson. **Congratulations!**\n", "\n", "Recall that you have made this plot for simulated data. How might you expect the plots for real data to look different ? In the next section you will start to work with the real LHC data." ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Hint" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**B Meson Energy** - From energy conservation, the energy of the B meson will be the sum of the energies of the three kaons: $E_B=E_{K1}+E_{K2}+E_{K3}$, where $E_B$ is the energy of the B meson, $E_{K1}, E_{K2}, E_{K3}$ are the energies of each of the kaons. \n", "\n", "**B meson momentum** - From momentum conservation, the X component of the momentum of the B meson will be the sum of the X momentum components of the three Kaons : $px_B=px_{K1}+px_{K2}+px_{K3}$, where $px$ is the X direction component of the momentum of the B meson, $px_{K1},px_{K2},px_{K3}$ are the X direction components of the momenta of the three kaons. You can then do the same with the Y and Z components. Having obtained the X,Y, and z components of the B momentum you can find the magnitude of the momentum of the B meson.\n", "\n", "** B meson invariant mass*** - Rearrange the equation $E^2=p^2+m^2$ to find $m^2$. Using the values of the magnitude of the momentum of the B meson and the B meson Energy, find the mass of the B meson.\n", "\n", "**Histogram plotting** - Take care that the range of your mass plot is set suitably that you can see the mass peak. Once you have found the peak you can set the range appropriately. You do not have to start your graph at a mass of 0.\n", "\n", "**Units** - The data you are provided has energies in 'MeV' (106 electron volts). The mass of the B meson is often quoted in 'GeV/c2' (109 electron volts)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Working with real data and applying cuts\n", "## Aims:\n", "* Filter out data that is not from the B+ → K+K+K channel, or the antiparticle equivalent B- → K+K-K\n", "\n", "* Plot a histogram of B-meson mass for the real data and observe how different cuts affect the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the section above you have analysed the simulation data to determine the invariant mass of the B meson. Now, you can start applying the methods you have used to the real LHCb data. This data was collected by the LHCb detector at CERN during 2011, the first major year of LHC operations.\n", "\n", "The data you are given has been filtered to select only events that are likely to have come from B+ or B- mesons decaying into three final state charged particles. You are interested in the case where these three final state paticles are charged kaons K+ or K-.\n", "\n", "An introduction has been provided on the [detector and data sample](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/DetectorSoftwareDataSample.ipynb). As background information we also provide further information on the [selection](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/DataSelection.ipynb) that has been applied to select this data sample.\n", "\n", "## Preselection\n", "You want to apply a preselection to the three final state tracks that\n", "* Ensures that they are not muons (i.e. `!H1_isMuon` where `!` means `not`, and similarly for `H2` and `H3`)\n", "* Requires that they each have a low probability of being pions (e.g. `H1_ProbPi < 0.5`)\n", "* Requires that they each have a high probability of being a kaon (e.g. `H1_ProbK > 0.5`)\n", "\n", "You need to find a balance between making cuts that are too loose and include too many background events and too tight and reject many of your signal events.\n", "\n", "In order to now find the most suitable further selection cuts, make yourself familiar with [how cuts can affect the significance of the final result](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/CutsInformation.ipynb). Feel free to come back to this stage later and adjust your cuts to see the impact. \n", "\n", "The pre selection you create will be applied for you if give it the name 'preselection'.\n", "\n", "We have provided an example preselection in the hints, so feel free to use that to get started if you wish. start with a loose preselection and then refine it after you have studied the plots.\n", "\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Create the DataFrames Physics data\n", "# Only metadata is read at this stage (reading into Spark DatFrames is lazily executed)\n", "\n", "# this works from SWAN and CERN machines with eos mounted\n", "path = \"/eos/project/s/sparkdltrigger/public/LHCb_opendata/\"\n", "\n", "B2HHH_MagnetDown_df = spark.read.parquet(path + \"B2HHH_MagnetDown.parquet\")\n", "B2HHH_MagnetUp_df = spark.read.parquet(path + \"B2HHH_MagnetUp.parquet\")\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "# Put all the data together\n", "B2HHH_AllData_df = B2HHH_MagnetDown_df.union(B2HHH_MagnetUp_df)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# This defines the cut criteria\n", "# You can experiment with different criteria\n", "\n", "preselection = \"\"\"H1_ProbPi < 0.5 and H2_ProbPi < 0.5 and H3_ProbPi < 0.5 \n", " and H1_ProbK > 0.5 and H2_ProbK > 0.5 and H3_ProbK > 0.5 \n", " and H1_isMuon = 0 and H2_isMuon = 0 and H3_isMuon = 0\"\"\"\n", "\n", "# Apply cuts to the data as a filter \n", "B2HHH_AllData_WithCuts_df = B2HHH_AllData_df.filter(preselection)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "data": { "text/plain": [ "23895" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This *may take a few minutes* as data will be read at this stage\n", "\n", "B2HHH_AllData_WithCuts_df.cache() # flags the DataFrame for caching, this is useful for performance\n", "B2HHH_AllData_WithCuts_df.count() # triggers an action, data will be read at this stage" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# This registers the dataframe with cuts (filters) as a view for later use with SQL\n", "B2HHH_AllData_WithCuts_df.createOrReplaceTempView(\"B2HHH_AllData_WithCuts\")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
B_FlightDistanceB_VertexChi2H1_PXH1_PYH1_PZH1_ProbKH1_ProbPiH1_ChargeH1_IPChi2H1_isMuon...H2_IPChi2H2_isMuonH3_PXH3_PYH3_PZH3_ProbKH3_ProbPiH3_ChargeH3_IPChi2H3_isMuon
06.8880378.4269471207.753798-84.29095810399.4737020.9022190.041574-1998.4244100...110.51906801973.085892-289.15003226771.3416080.9158430.0572611386.4937130
18.9571033.474719-811.617861-518.30095622338.8830140.9428850.0934011162.6770060...1994.1197340-4801.3979181993.34003176466.2298080.8064710.385119-1158.8230180
29.1007334.113123-2007.925735-2555.08038226601.4659580.9176610.077237-11355.6116150...8500.5182620-1260.859080-2824.66300222365.1785100.9476760.0972631352.2354610
311.0773742.3603571408.170513-1372.86455866357.0933080.7856180.119467-12.7990290...564.01981302171.855775-1964.41983592096.7425550.5602370.070540144.4982710
417.7430065.1163091457.6715741311.6840998551.6920700.7839450.029395118266.6428630...1098.894225010985.2304001271.85607762682.6826620.5765590.455894-1360.4440110
511.5540981.120899-77.919930598.04776818486.6048810.9371570.227115189.1286360...2387.9130900-3786.001956-3050.19009649924.6772880.9406560.096659-1827.2643260
68.2968937.380471970.351808-490.04592627929.2422650.9661350.0956131135.5439710...944.17408301618.033440-1593.58776845253.8411210.9599640.098093-1260.9102410
715.8758831.6567602336.1653884166.00218835728.5256790.9468780.060513-13321.9468180...1942.1290520-1708.1891852517.04877927592.7474810.9613870.12553517027.0691120
812.2657745.3943782606.155962-4657.66979799824.7220500.7551080.4031231153.7058950...4.9760510961.067631892.00874112739.1657210.6306260.030043-14351.7795610
97.9602609.528332-1740.1752381060.63489576542.2249690.8239500.096627-128.6785770...309.2801250-2026.920178887.97837447609.3096640.9723400.1610731193.3764460
\n", "

10 rows × 26 columns

\n", "
" ], "text/plain": [ " B_FlightDistance B_VertexChi2 H1_PX H1_PY H1_PZ \\\n", "0 6.888037 8.426947 1207.753798 -84.290958 10399.473702 \n", "1 8.957103 3.474719 -811.617861 -518.300956 22338.883014 \n", "2 9.100733 4.113123 -2007.925735 -2555.080382 26601.465958 \n", "3 11.077374 2.360357 1408.170513 -1372.864558 66357.093308 \n", "4 17.743006 5.116309 1457.671574 1311.684099 8551.692070 \n", "5 11.554098 1.120899 -77.919930 598.047768 18486.604881 \n", "6 8.296893 7.380471 970.351808 -490.045926 27929.242265 \n", "7 15.875883 1.656760 2336.165388 4166.002188 35728.525679 \n", "8 12.265774 5.394378 2606.155962 -4657.669797 99824.722050 \n", "9 7.960260 9.528332 -1740.175238 1060.634895 76542.224969 \n", "\n", " H1_ProbK H1_ProbPi H1_Charge H1_IPChi2 H1_isMuon ... H2_IPChi2 \\\n", "0 0.902219 0.041574 -1 998.424410 0 ... 110.519068 \n", "1 0.942885 0.093401 1 162.677006 0 ... 1994.119734 \n", "2 0.917661 0.077237 -1 1355.611615 0 ... 8500.518262 \n", "3 0.785618 0.119467 -1 2.799029 0 ... 564.019813 \n", "4 0.783945 0.029395 1 18266.642863 0 ... 1098.894225 \n", "5 0.937157 0.227115 1 89.128636 0 ... 2387.913090 \n", "6 0.966135 0.095613 1 135.543971 0 ... 944.174083 \n", "7 0.946878 0.060513 -1 3321.946818 0 ... 1942.129052 \n", "8 0.755108 0.403123 1 153.705895 0 ... 4.976051 \n", "9 0.823950 0.096627 -1 28.678577 0 ... 309.280125 \n", "\n", " H2_isMuon H3_PX H3_PY H3_PZ H3_ProbK H3_ProbPi \\\n", "0 0 1973.085892 -289.150032 26771.341608 0.915843 0.057261 \n", "1 0 -4801.397918 1993.340031 76466.229808 0.806471 0.385119 \n", "2 0 -1260.859080 -2824.663002 22365.178510 0.947676 0.097263 \n", "3 0 2171.855775 -1964.419835 92096.742555 0.560237 0.070540 \n", "4 0 10985.230400 1271.856077 62682.682662 0.576559 0.455894 \n", "5 0 -3786.001956 -3050.190096 49924.677288 0.940656 0.096659 \n", "6 0 1618.033440 -1593.587768 45253.841121 0.959964 0.098093 \n", "7 0 -1708.189185 2517.048779 27592.747481 0.961387 0.125535 \n", "8 0 961.067631 892.008741 12739.165721 0.630626 0.030043 \n", "9 0 -2026.920178 887.978374 47609.309664 0.972340 0.161073 \n", "\n", " H3_Charge H3_IPChi2 H3_isMuon \n", "0 1 386.493713 0 \n", "1 -1 158.823018 0 \n", "2 1 352.235461 0 \n", "3 1 44.498271 0 \n", "4 -1 360.444011 0 \n", "5 -1 827.264326 0 \n", "6 -1 260.910241 0 \n", "7 1 7027.069112 0 \n", "8 -1 4351.779561 0 \n", "9 1 193.376446 0 \n", "\n", "[10 rows x 26 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Displays a sample of the data\n", "B2HHH_AllData_WithCuts_df.limit(10).toPandas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make histograms of the probability of a final state particle being a kaon or a pion.\n", "These will help guide you on suitable probability values at which to cut.\n", "\n", "You can also consider more sophisticated options like 2-D plots of kaon and pion probabilities or different values of the cuts for the different final state particles." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHgCAYAAACb58plAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAArTUlEQVR4nO3dfbTddX0n+veHh0JCRMEEFZCGS6kFTQw1IAOUK7SiEAWcCyOVK2hdQ8cqU8er1trrmKH1Dt62TpcgOKJOkFJp2lKIozxoEJWWB4OEEx60Qg2Y0YUYvFSepNDv/WP/kh7CSThJzu88vl5rnbX3/v4e9mfv30nWe3/PZ/9+1VoLAAAwtnaY6AIAAGA6ErQBAKAHgjYAAPRA0AYAgB4I2gAA0ANBGwAAerDTRBfQl7lz57b58+dPdBkAAExjt956609aa/NGWjZtg/b8+fOzatWqiS4DAIBprKru29wyrSMAANADQRsAAHogaAMAQA+mbY/2SP75n/8569atyxNPPDHRpUxpu+66a/bdd9/svPPOE10KAMCkNaOC9rp16/K85z0v8+fPT1VNdDlTUmst69evz7p167L//vtPdDkAAJPWjGodeeKJJ/LCF75QyN4OVZUXvvCF/ioAAPAcZlTQTiJkjwHvIQDAc5txQRsAAMbDjOrR3tT8D35pTPe39twlz7nOnDlz8sgjj2x8vGzZsqxatSrnn39+vvGNb+Q973lPhoaGctlll+WUU07Z/HOtXZuDDjooL3vZy/Lkk0/m6KOPzgUXXJAddhjdZ6elS5dmzpw5ed/73ves/b7hDW/IHXfckSS56KKLcuGFF2blypXZY489RrVvAADMaE8q++23X5YtW5a3vOUto1r/gAMOyOrVqzM0NJS77rorV1xxxTOWP/XUU9tVzyWXXJLzzjsv1157rZANALCVBO1JZP78+Vm4cOGoZ6U32GmnnXLEEUfknnvuybJly3LqqafmjW98Y4477rg89NBDOfnkk7Nw4cIcfvjhGRoa2rjd7bffnmOPPTYHHnhgLrroomfsc/ny5Tn33HNz7bXXZu7cuWPy+gAAZpIZ3ToyER5//PEsWrRo4+OHHnooJ5544nbt87HHHsvKlStzzjnn5IEHHsiNN96YoaGh7Lnnnjn77LNzyCGH5Iorrsh1112XM844I6tXr06SDA0N5aabbsqjjz6aQw45JEuWDFpf7rvvvrz73e/Obbfdlhe/+MXbVRsAwExlRnuczZo1K6tXr974c84552zzvu69994sWrQoRx55ZJYsWZLjjz8+SfLa1742e+65Z5LkhhtuyFvf+tYkybHHHpv169fn4YcfTpKcdNJJmTVrVubOnZtjjjkmt9xyS5Jk3rx52W+//bJ8+fLteakAADOaGe0pbEOP9qZ22223jfdba89avuH0fJuepm/D49mzZ+eqq67KUUcdlb322iunn376GFYNADAzmNGe5o4++uhceumlSZLrr78+c+fOze67754kufLKK/PEE09k/fr1uf7663PooYdu3G7evHm5+uqr86EPfSjXXHPNhNQOADCVzegZ7dGcjm88fetb38qb3vSm/PSnP80Xv/jFfOQjH8mdd965XftcunRp3v72t2fhwoWZPXt2Lr744o3LDjvssCxZsiT3339/PvzhD2fvvffO2rVrNy7ff//9s2LFipxwwgm5/PLL8+pXv3q7agEAmElqpNaC6WDx4sVt1apVzxi7++67c9BBB01QRdOL9xIAIKmqW1tri0dapnUEAAB6MKNbR6aCNWvWbDxryAa77LJLbr755gmqCACA0RC0J7kFCxaMeGYRAICpZMHFC0YcX3PmmnGuZPxoHQEAgB4I2gAA0ANBGwAAeiBoAwBAD2b2lyGXPn+M9/fwc64yZ86cPPLIIxsfL1u2LKtWrcr555+fj3/84/nMZz6TnXbaKfPmzcvnPve5/OIv/uKI+1m7dm0OOuigvOxlL8uTTz6Zo48+OhdccEF22GF0n52WLl2aOXPm5H3ve9+z9vuGN7whd9xxR5LkoosuyoUXXpiVK1dmjz32GNW+AQAwoz2pHHLIIVm1alWGhoZyyimn5AMf+MAW1z/ggAOyevXqDA0N5a677soVV1zxjOVPPfXUdtVzySWX5Lzzzsu1114rZAMAbCVBexI55phjMnv27CTJ4YcfnnXr1o1qu5122ilHHHFE7rnnnixbtiynnnpq3vjGN+a4447LQw89lJNPPjkLFy7M4YcfnqGhoY3b3X777Tn22GNz4IEH5qKLLnrGPpcvX55zzz031157bebOnTt2LxIAYIaY2a0jE+Dxxx/PokWLNj5+6KGHcuKJJz5rvc9+9rM5/vjjR7XPxx57LCtXrsw555yTBx54IDfeeGOGhoay55575uyzz84hhxySK664Itddd13OOOOMjeflHhoayk033ZRHH300hxxySJYsWZIkue+++/Lud787t912W1784hdv92sGAJiJzGiPs1mzZmX16tUbf84555xnrfPnf/7nWbVqVd7//vdvcV/33ntvFi1alCOPPDJLlizZGMxf+9rXZs8990yS3HDDDRuvLHnsscdm/fr1efjhQS/5SSedlFmzZmXu3Lk55phjcssttyRJ5s2bl/322y/Lly8fs9cNADDTmNGeZL761a/mox/9aL7+9a9nl1122eK6G3q0N7XbbrttvN9ae9byqnrG7abjs2fPzlVXXZWjjjoqe+21V04//fStfRkAADOeGe1J5Lbbbstv//ZvZ8WKFdlrr73GZJ9HH310Lr300iTJ9ddfn7lz52b33XdPklx55ZV54oknsn79+lx//fU59NBDN243b968XH311fnQhz6Ua665ZkxqAQCYSWb2jPYoTsc3nt7//vfnkUceyamnnpok2W+//bJixYrt2ufSpUvz9re/PQsXLszs2bNz8cUXb1x22GGHZcmSJbn//vvz4Q9/OHvvvXfWrl27cfn++++fFStW5IQTTsjll1+eV7/61dtVCwDATFIjtRZMB4sXL26rVq16xtjdd9+dgw46aIIqml68lwDA1lhw8YIRx9ecuWacKxlbVXVra23xSMu0jgAAQA9mduvIFLBmzZqNZw3ZYJdddsnNN988QRUBADAagvYkt2DBghHPLAIAwOSmdQQAAHogaAMAQA8EbQAA6IGgDQAAPZjRX4bc3Pkct9VozgM5Z86cPPLIIxsfL1u2LKtWrcr555+fT33qU/nkJz+ZHXfcMXPmzMmnP/3pHHzwwSPuZ+3atTnooIPyspe9LE8++WSOPvroXHDBBdlhh9F9dlq6dGnmzJmT973vfc/a7xve8IbccccdSZKLLrooF154YVauXJk99thjVPsGAMCM9qTylre8JWvWrMnq1avzgQ98IO9973u3uP4BBxyQ1atXZ2hoKHfddVeuuOKKZyx/6qmntqueSy65JOedd16uvfZaIRsAYCsJ2pPI7rvvvvH+o48+mqoa1XY77bRTjjjiiNxzzz1ZtmxZTj311LzxjW/Mcccdl4ceeignn3xyFi5cmMMPPzxDQ0Mbt7v99ttz7LHH5sADD8xFF130jH0uX7485557bq699trMnTt3bF4gAMAMMqNbRybC448/nkWLFm18/NBDD+XEE0/c+PiTn/xkPv7xj+fJJ5/MddddN6p9PvbYY1m5cmXOOeecPPDAA7nxxhszNDSUPffcM2effXYOOeSQXHHFFbnuuutyxhlnbDwv99DQUG666aY8+uijOeSQQ7JkyZIkyX333Zd3v/vdue222/LiF794zF47AMBMYkZ7nM2aNSurV6/e+HPOOec8Y/m73vWu3HvvvfnYxz6WP/qjP9rivu69994sWrQoRx55ZJYsWZLjjz8+SfLa1742e+65Z5Lkhhtu2HhlyWOPPTbr16/Pww8/nCQ56aSTMmvWrMydOzfHHHNMbrnlliTJvHnzst9++2X58uVj+toBAGYSM9qT1GmnnZZ3vvOdW1xnQ4/2pnbbbbeN91trz1q+oSVl09aUDY9nz56dq666KkcddVT22muvnH766VtbPgDAjGdGexL53ve+t/H+l770pRx44IHbvc+jjz46l156aZLk+uuvz9y5czf2gl955ZV54oknsn79+lx//fU59NBDN243b968XH311fnQhz6Ua665ZrvrAACYaWb0jPZoTsc3ns4///x89atfzc4775w99tgjF1988Xbvc+nSpXn729+ehQsXZvbs2c/Y52GHHZYlS5bk/vvvz4c//OHsvffeWbt27cbl+++/f1asWJETTjghl19+eV796ldvdz0AADNFjdRaMB0sXry4rVq16hljd999dw466KAJqmh68V4CAFtjc9cvmWwTn1urqm5trS0eaZnWEQAA6MGMbh2ZCtasWbPxrCEb7LLLLrn55psnqCIAAEZD0J7kFixYMOKZRQAAmNxmXOvIdO1JH0/eQwCA5zajgvauu+6a9evXC4rbobWW9evXZ9ddd53oUgAAJrUZ1Tqy7777Zt26dXnwwQcnupQpbdddd82+++470WUAAExqMypo77zzztl///0nugwAAGaAGRW0AQDo1+bOlz0TzagebQAAGC+CNgAA9EDQBgCAHgjaAADQA0EbAAB6IGgDAEAPBG0AAOiBoA0AAD0QtAEAoAeCNgAA9EDQBgCAHgjaAADQg50mugAAACbe/A9+acTxtecuGedKpg9BGwCArbbg4gUTXcKkp3UEAAB6YEYbAIDNMnO97cxoAwBAD3oL2lX10qr6WlXdXVV3VtXvduN7VtVXqup73e0e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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the probability that a final state particle is a kaon\n", "\n", "B2HHH_AllData_WithCuts_df.select(\"H1_ProbK\", \"H2_ProbK\", \"H3_ProbK\").toPandas().plot.hist(bins=101, range=[0.0, 1.0])\n", "xlabel('Probability value that the particle is a kaon')\n", "ylabel('Count');" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHgCAYAAACb58plAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAs0klEQVR4nO3df7TdZX0n+vdHQiEYoWLQxQ8pXJpa0MSkBi6DM1yhFaW5As6Vkdor1LpKx4pTp6MOzlzHDC0z7Uxruyyigz8msaVSWy1Qf7RVEKwtPww2nEjQEWqKGVlIQ4fKLxnoc//Y36SHeHI4Sc5zfuX1Wmuvvffzfb7P/uz9Pcl6n+c8+/ut1loAAIDp9YzZLgAAABYiQRsAADoQtAEAoANBGwAAOhC0AQCgA0EbAAA6WDTbBfSydOnSdswxx8x2GQAALGC33Xbb37bWDpto24IN2sccc0w2bNgw22UAALCAVdXf7GqbpSMAANCBoA0AAB0I2gAA0MGCXaMNALAv+9//+39n69ateeyxx2a7lAXhwAMPzFFHHZX9999/yvsI2gAAC9DWrVvzrGc9K8ccc0yqarbLmddaa9m2bVu2bt2aY489dsr7WToCALAAPfbYY3nOc54jZE+DqspznvOc3f7rgKANALBACdnTZ08+S0EbAAA6sEYbAGAfcMzFn57W8bb86pqn7bNkyZI89NBDO56vW7cuGzZsyGWXXZYvfvGLeetb35qxsbFcddVVec1rXrPr19qyJccff3xe8IIX5PHHH8+pp56ayy+/PM94xtTmjNeuXZslS5bkbW9725TG/dSnPpXNmzfn4osvntL4u2JGGwCAGXf00Udn3bp1ed3rXjel/scdd1w2btyYsbGxbN68OVdfffVTtj/xxBN7VMdE45511ll7HbITQRsAgFlwzDHHZMWKFVOeld5u0aJFOeWUU3LXXXdl3bp1Offcc/OqV70qZ5xxRh544IGcc845WbFiRU4++eSMjY3t2O/222/P6aefnmXLluWDH/zg04570UUX7fV7tHQEAIAuHn300axcuXLH8wceeCBnnXXWXo35yCOP5Lrrrssll1yS++67LzfddFPGxsZy6KGH5i1veUtWrVqVq6++Otdff33OP//8bNy4MUkyNjaWm2++OQ8//HBWrVqVNWvWTDrudDCjDQBAF4sXL87GjRt33C655JI9Huvuu+/OypUr89KXvjRr1qzJmWeemSR5+ctfnkMPPTRJ8qUvfSmvf/3rkySnn356tm3blgcffDBJcvbZZ2fx4sVZunRpTjvttNx6662TjjsdzGgDADDnbV9LvbNnPvOZOx631r5v+/bT8u18er7tz3c17nQwow0AwIJw6qmn5sorr0yS3HDDDVm6dGkOPvjgJMk111yTxx57LNu2bcsNN9yQE088sXs9ZrQBAPYBUzkd30z68pe/nFe/+tX5u7/7u/zxH/9x3v3ud+eOO+7YqzHXrl2bN7zhDVmxYkUOOuigrF+/fse2k046KWvWrMk999yTd73rXTniiCOyZcuWvXwXk6uJptgXgtWrV7cNGzbMdhkAALPizjvvzPHHHz/bZSwoE32mVXVba231RP0tHQEAgA4sHQEAYE7YtGnTjrOGbHfAAQfklltumaWK9o6gPd+sPWQX7Q/ObB0AANNs+fLl3c4AMhssHQEAgA4EbQAA6EDQBgCADgRtAADowJchAQD2Bbs6ocIej/f0J2JYsmRJHnrooR3P161blw0bNuSyyy7Le97znnzoQx/KokWLcthhh+UjH/lIfuiHfmjCcbZs2ZLjjz8+L3jBC/L444/n1FNPzeWXX55nPGNqc8Zr167NkiVL8ra3vW1K437qU5/K5s2bc/HFF09p/F0xow0AwIxbtWpVNmzYkLGxsbzmNa/JO97xjkn7H3fccdm4cWPGxsayefPmXH311U/Z/sQTT+xRHRONe9ZZZ+11yE4EbQAAZsFpp52Wgw46KEly8sknZ+vWrVPab9GiRTnllFNy1113Zd26dTn33HPzqle9KmeccUYeeOCBnHPOOVmxYkVOPvnkjI2N7djv9ttvz+mnn55ly5blgx/84NOOe9FFF+31e7R0BACALh599NGsXLlyx/MHHnggZ5111vf1+/CHP5wzzzxzSmM+8sgjue6663LJJZfkvvvuy0033ZSxsbEceuihectb3pJVq1bl6quvzvXXX5/zzz9/x3m5x8bGcvPNN+fhhx/OqlWrsmbNmknHnQ6CNgAAXSxevPgpF6DZvkZ7vN/93d/Nhg0bcuONN0461t13352VK1emqnL22WfnzDPPzLp16/Lyl788hx56aJLkS1/6Uj7xiU8kSU4//fRs27YtDz44Wkt+9tlnZ/HixVm8eHFOO+203HrrrVm5cuUux50OgjYAALPi85//fC699NLceOONOeCAAybtu30t9c6e+cxn7njcWvu+7VX1lPud23c17nSwRhsAgBn3V3/1V/n5n//5XHvttXnuc587LWOeeuqpufLKK5MkN9xwQ5YuXZqDDz44SXLNNdfksccey7Zt23LDDTfkxBNPnJbXnIwZbQCAfcEUTsc3k97+9rfnoYceyrnnnpskOfroo3Pttdfu1Zhr167NG97whqxYsSIHHXRQ1q9fv2PbSSedlDVr1uSee+7Ju971rhxxxBHZsmXLXr3e06mJptgXgtWrV7ed1wAtCLs6B+Yc+8cDAMyuO++8M8cff/xsl7GgTPSZVtVtrbXVE/W3dAQAADqwdAQAgDlh06ZNef3rX/+UtgMOOCC33HLLLFW0dwRtAADmhOXLl3c7A8hssHQEAAA6ELQBAKCDbkG7qg6sqlur6vaquqOq/uPQfmhVfa6qvjHcP3vcPu+sqruq6utV9Ypx7S+pqk3DtvfWzmccBwCAOabnjPb3kpzeWntxkpVJXllVJye5OMl1rbVlSa4bnqeqTkhyXpIXJnllksurar9hrPcnuTDJsuH2yo51AwDAXuv2Zcg2OkH3Q8PT/YdbS3J2kpcN7euT3JDk3w7tV7XWvpfkm1V1V5KTqmpLkoNbazclSVV9NMk5ST7bq3YAgIVm+frl0zrepgs2PW2fJUuW5KGHHtrxfN26ddmwYUMuu+yyfOADH8j73ve+7LffflmyZEmuuOKKnHDCCROOs2XLlhx//PF5wQtekMcffzynnnpqLr/88jzjGVObM167dm2WLFmSt73tbVMa91Of+lQ2b96ciy++eErj70rXNdpVtV9VbUzynSSfa63dkuR5rbV7k2S4337NzSOTfGvc7luHtiOHxzu3AwAwT73uda/Lpk2bsnHjxrzjHe/IL/3SL03a/7jjjsvGjRszNjaWzZs35+qrr37K9ieeeGKP6pho3LPOOmuvQ3bSOWi31p5sra1MclRGs9MvmqT7ROuu2yTt3z9A1YVVtaGqNtx///27XS8AADPj4IMP3vH44YcfzlS/grdo0aKccsopueuuu7Ju3bqce+65edWrXpUzzjgjDzzwQM4555ysWLEiJ598csbGxnbsd/vtt+f000/PsmXL8sEPfvBpx73ooov2+j3OyHm0W2v/q6puyGht9X1VdXhr7d6qOjyj2e5kNFP9/HG7HZXk20P7URO0T/Q6VyS5Ihldgn1a3wQAALvl0UcfzcqVK3c8f+CBB3LWWWfteP6+970v73nPe/L444/n+uuvn9KYjzzySK677rpccsklue+++3LTTTdlbGwshx56aN7ylrdk1apVufrqq3P99dfn/PPP33Fe7rGxsdx88815+OGHs2rVqqxZs2bScadDz7OOHFZVPzg8XpzkJ5J8Lcm1SS4Yul2Q5Jrh8bVJzquqA6rq2Iy+9HjrsLzku1V18nC2kfPH7QMAwBy1ePHibNy4ccftkksuecr2N7/5zbn77rvza7/2a/mVX/mVSce6++67s3Llyrz0pS/NmjVrcuaZZyZJXv7yl+fQQw9NknzpS1/acWXJ008/Pdu2bcuDDz6YJDn77LOzePHiLF26NKeddlpuvfXWScedDj1ntA9Psn44c8gzkny8tfapqropycer6o1J7klybpK01u6oqo8n2ZzkiSRvbq09OYz1piTrkizO6EuQvggJALBAnHfeeXnTm940aZ/ta6l39sxnPnPH49G5OJ5q+5KUnZembH++q3GnQ7cZ7dbaWGttVWttRWvtRa21S4b2ba21H2+tLRvuHxi3z6WtteNaay9orX12XPuGYYzjWmsXtYk+RQAA5o1vfOMbOx5/+tOfzrJly/Z6zFNPPTVXXnllkuSGG27I0qVLd6wFv+aaa/LYY49l27ZtueGGG3LiiSfu9es9nRlZow0AwOyayun4ZtJll12Wz3/+89l///3z7Gc/O+vXr9/rMdeuXZs3vOENWbFiRQ466KCnjHnSSSdlzZo1ueeee/Kud70rRxxxRLZs2bLXrzmZWqiTw6tXr24bNmyY7TKm39pDdtH+4MzWAQDMaXfeeWeOP/742S5jQZnoM62q21prqyfq3/X0fgAAsK+ydAQAgDlh06ZNO84ast0BBxyQW265ZZYq2juCNgAAc8Ly5cu7nQFkNlg6AgCwQC3U7+LNhj35LAVtAIAF6MADD8y2bduE7WnQWsu2bdty4IEH7tZ+lo4AACxARx11VLZu3Zr7779/tktZEA488MAcddRRu7WPoA0AsADtv//+OfbYY2e7jH2apSMAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCBoA0AAB0I2gAA0IGgDQAAHQjaAADQgaANAAAdCNoAANCB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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the probability that a final state particle is a pion\n", "B2HHH_AllData_WithCuts_df.select(\"H1_ProbPi\", \"H2_ProbPi\", \"H3_ProbPi\").toPandas().plot.hist(bins=101, range=[0.0, 1.0])\n", "xlabel('Probability value that the particle is a pion')\n", "ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now calculate the invariant mass of the B meson for the real data and plot a histogram of this. \n", "Compare it with the one you drew for the simulation data. \n", "\n", "Can you explain the differences you observe?" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+-------------------+-------------------+------------------+\n", "| Tot_Energy| PX_Tot| PY_Tot| PZ_Tot|\n", "+------------------+-------------------+-------------------+------------------+\n", "| 86162.89710374283| 1916.065670301517| 77.15992169481359| 85981.36256238335|\n", "|116710.00497921911| -7144.666830516883| -15.24835325482104|116369.28397058396|\n", "| 64528.29362291747|-1575.5401941634025|-7543.4895996123105| 63848.13679774214|\n", "| 207873.7078340979| 1924.019093047381| -3781.162863847703|207762.59892769693|\n", "|117052.18424146794| 18764.329326458574| 2844.36565135338|115392.75963356277|\n", "+------------------+-------------------+-------------------+------------------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "# calculate the B meson invariant mass\n", "# plot the B meson invariant mass in a histogram\n", "b_meson_4momentum_withcuts = sql(f\"\"\"\n", " select \n", " sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) as Tot_Energy,\n", " H1_PX + H2_PX + H3_PX as PX_Tot,\n", " H1_PY + H2_PY + H3_PY as PY_Tot,\n", " H1_PZ + H2_PZ + H3_PZ as PZ_Tot\n", " from B2HHH_AllData_WithCuts\n", " \"\"\")\n", "\n", "b_meson_4momentum_withcuts.createOrReplaceTempView(\"b_meson_4momentum_mycuts_read_data\")\n", "b_meson_4momentum_withcuts.show(5)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+\n", "| invariant_mass|\n", "+------------------+\n", "| 5250.987328087266|\n", "|5326.2100776796615|\n", "| 5284.840877393883|\n", "| 5308.658345711811|\n", "| 5053.156322435298|\n", "+------------------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "b_meson_invariant_mass_withcuts = b_meson_4momentum_withcuts.selectExpr(\"\"\"\n", " sqrt(Tot_Energy* Tot_Energy - (PX_Tot*PX_Tot + PY_Tot*PY_Tot + PZ_Tot*PZ_Tot) ) as invariant_mass\"\"\")\n", " \n", "b_meson_invariant_mass_withcuts.show(5)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "image/png": "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m+fNoC1JkiRV4BhtSZKkQTLhlNkDur0FZx7a6zJvetOb+MlPfjKg++3qs5/9LG9961t5+9vf3u9158yZw+LFi3nXu95VoWbrl0FbkiRpA1I7ZK9atYrTTz99rdefM2cOHR0dIyJoO3REkiRpA7L55psDcNNNN3HggQdy5JFH8trXvpZjjjmGzOTaa6/lPe95zwvL33TTTfzxH/8xACeeeCKTJ09mjz324O///u9fWGbChAmcfvrpvPnNb+aKK67g2GOP5corrwTg9NNPZ99992XPPffkhBNOIDMBOPDAAzn55JOZMmUKr371q7nlllv4/e9/z2c/+1kuv/xyJk2axOWXX972GE477TSmT5/OO97xDiZMmMC3vvUtPvWpTzFx4kSmTp3Kc8891+O+zznnHHbffXde//rXM23aNABuvvlmJk2axKRJk9hrr71YsWLFOre1QVuSJGkDdffdd3P22Wdz33338cgjj/DjH/+YP/qjP+K2227jt7/9LQCXX345Rx99NABnnHEGHR0d3HPPPdx8883cc889L2xrzJgx/OhHP3ohuHb66Ec/yh133MG9997L008/zTXXXPPCvJUrV3L77bdz9tln87nPfY5NNtmE008/naOPPpo5c+a8sN92Hn74YWbPns1VV13F+973Pg466CDmzp3L2LFjmT17do/7PvPMM7n77ru55557+OpXvwrAWWedxVe+8hXmzJnDLbfcwtixY9e5fQ3akiRJG6gpU6Ywfvx4NtpoIyZNmsSCBQsYPXo0U6dO5eqrr2blypXMnj2bww8/HICZM2ey9957s9deezFv3jzuu+++F7bVXSi+8cYbeeMb38jEiRO54YYbmDdv3gvz3v3udwOwzz77sGDBgn7V/ZBDDmHjjTdm4sSJrFq1iqlTpwIwceLEF7bV3b5f//rXc8wxx3DxxRczenQzkvqAAw7gk5/8JOeccw7Lly9/oXxdGLQlSZI2UJtuuukL06NGjWLlypVAE5pnzpzJDTfcwL777ssWW2zBo48+yllnncX111/PPffcw6GHHrra90pvttlma2z/mWee4SMf+QhXXnklc+fO5fjjj19tnc79t+67v3XfaKON2HjjjV/4+r2NNtqIlStX9rjv2bNnc9JJJ3HnnXeyzz77sHLlSk455RS+9rWv8fTTT7PffvvxwAMP9Ks+7Ri0JUmStJoD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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# draw a histogram for the B meson mass in the real data\n", "\n", "b_meson_invariant_mass_withcuts.toPandas().plot.hist(bins=101, range=[4000, 6000],\n", "title=\"Histogram - distribution of B meson invariant mass, real data\") \n", "xlabel('b_meson_invariant_mass (MeV)')\n", "ylabel('Count');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Additional exercise: Experiment with the cuts and see the impact of harsher or more lenient cuts on the invariant mass plot.\n", "You should select a set of cuts which makes the signal most prominent with respect to the background.\n", "Once you have finalised the selection on particle identification also make cuts on the reconstructed particle mass to select the events in the B meson mass peak, removing the background events which lie at lower and higher invariant masses. " ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "# Searching for global matter anti-matter differences\n", "\n", "In this section you will start to study matter antimatter differences (CP Violation). Here 'global' means that you are looking for differences across all ranges of energy and momentum (the kinematics) of the kaons into which the charge B mesons have decayed. Later we look at 'local' differences in different regions of the kinematics. \n", "\n", "## Aims:\n", "* Calculate the global CP asymmetry \n", "* Work out the statistical uncertainty\n", "* Determine if there is evidence for CP violation in this decay" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "hidden": true }, "source": [ "In order to quantify the matter antimatter asymmetry in this process we wish to compare the B+ and the B- particles. The B- is the anti-particle of the B+.\n", "\n", "How can you distinguish between events that contain B+ and B- particles using `H1_Charge`, `H2_Charge` and `H3_Charge`?" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# make a variable for the charge of the B mesons\n", "\n", "B_charge_df = B2HHH_AllData_WithCuts_df.selectExpr(\"H1_charge + H2_charge + H3_charge as B_Charge\")" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "Now count the numbers of events of each of the two types (N+ and N-). Also calculate the difference between these two numbers." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+--------+-----+\n", "|B_Charge|count|\n", "+--------+-----+\n", "| -1|11505|\n", "| 1|12390|\n", "+--------+-----+\n", "\n" ] } ], "source": [ "# make variables for the numbers of positive and negative B mesons\n", "\n", "# I am using the declarative API of Spark SQl for this. If you want to use SQL you can do the following:\n", "# B_charge_df.createOrReplaceTempView(\"B_charge_table\")\n", "# sql(\"select B_Charge, count(*) from B_charge_table group by B_Charge\").show(5)\n", "\n", "B_charge_df.groupBy(\"B_Charge\").count().show()\n" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "In order to calculate the Asymmetry, you can make use of the formula:\n", "(note you may need to run this box in order to see the image)\n", "" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "text/plain": [ "-0.037037037037037035" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the value of the asymmetry, by using the formula above, and then print it\n", "\n", "N_plus = 12390.0\n", "N_minus = 11505.0\n", "A = (N_minus - N_plus) / (N_minus + N_plus)\n", "A" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "### Hint" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Differentiating between N+ and N-**\n", "\n", " - Charge is a conserved quantity. The charge of the $B$ meson is equal to the sum of the charges of the particles into which it decays.\n", " - You can use ` len(real_data.query('B_Charge == charge'))` to count the number of mesons, where `B_Charge` is the variable you created and `charge` is `1` or `-1`.\n", " - You can find an example of this at the end of the example notebook." ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "### Estimating the significance of the deviation\n", "\n", "You will now need to calculate the statistical uncertainty of the asymmetry. You can do so using the formula: \n", "\n", "The significance of the result, sigma, is found by dividing the value for asymmetry by its uncertainty. A value exceeding three sigma is considered \"evidence\" by particle physicists while a value of five sigma or more can be called an \"observation\" or \"discovery\"." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "text/plain": [ "0.006464700479261738" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the statistical significance of your result and print it\n", "\n", "sqrt((1 - A*A)/(N_minus + N_plus))" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Congratulations!** You have performed your first search for a matter anti-matter difference.\n", "\n", "Here you have only considered the statistical uncertainty. Your measurement will also have other sources of uncertainty known as systematic uncertainties which you have not considered at this stage.\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "# Dalitz plots and two body resonances\n", "## Aims:\n", "* Produce Dalitz plots of the simulation and real data sample\n", "* Create ordered and binned dalitz plots.\n", "* Identify two body resonances in the Dalitz plots" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "In this stage we introduce you to an important technique for analysing decays of one particle (your charged B meson) into three bodies (the three kaons). This is known as a Dalitz plot. \n", "\n", "The decay of the B meson can proceed either directly to the three-body final state or via an intermediate particle. For example, B+ → K+K+K, could proceed through the decay B+ → K+R0, where R0 is a neutral particle resonance which can decay R0 → K+K-. Dalitz plots can be used to identify these resonances which are visible as bands on the Dalitz plot.\n", "\n", "More information about these plots and why these are used in particle physics research can be found in [Dalitz Plot Introduction](https://github.com/lhcb/opendata-project/tree/master/Background-Information-Notebooks/DalitzPlots.ipynb).\n", "\n", "The kinematics of a three-body decay can be fully described using only two variables. The energies and momenta of the three kaons are not independent of each other as they all come from the decay of a B meson and energy and momentum are conserved. The axes of the plots conventionally are the squared invariant masses of two pairs of the decay products. It is a 2D plot, the x and y axes are both squared masses and the density of points in the plot shows the structure.\n", "\n", "Consider our decay B+ → K+1K+2K3, where we have numbered the kaons 1,2,3 to distinguish them. We can calculate the invariant mass of three possible combinations that could correspond to intermediate resonances R++1 → K+1K+2, R02 → K+1K-3, and R03 → K+2K-3. \n", "\n", "The potential R++1 would be a doubly charged resonance. We would not expect to see any resonances corresponding to this as mesons are composed of one quark and one anti-quark and their charges cannot add up to two units.\n", "\n", "The potential R02 and R03 correspond to configurations in which we could see resonances. Hence you should compute the invariant mass combinations for these. The square of these masses should be used as the Dalitz variables. \n", "\n", "We suggest you make these plots first for the simulation data. In the simulation there are no intermediate resonances and your plot should be of uniform density inside the range physically allowed by energy and momentum conservation.\n", "\t" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Energy_K1_K2P_K1_K2Energy_K1_K3P_K1_K3Energy_K2_K3P_K2_K3H1_ChargeH2_ChargeH3_Charge
059312.84823759211.18150937331.39155137308.53401275681.55442075585.380172-111
140065.66504140022.23217199009.41920798975.41111994344.92571094244.7710771-1-1
241944.81706441751.67274449387.24326449369.61478037724.52691837581.719924-111
3115729.095355115680.388609158532.678053158529.404702141485.642261141426.952947-111
453399.56978253304.21541372440.13264372359.081204108264.666058108244.5529041-1-1
\n", "
" ], "text/plain": [ " Energy_K1_K2 P_K1_K2 Energy_K1_K3 P_K1_K3 Energy_K2_K3 \\\n", "0 59312.848237 59211.181509 37331.391551 37308.534012 75681.554420 \n", "1 40065.665041 40022.232171 99009.419207 98975.411119 94344.925710 \n", "2 41944.817064 41751.672744 49387.243264 49369.614780 37724.526918 \n", "3 115729.095355 115680.388609 158532.678053 158529.404702 141485.642261 \n", "4 53399.569782 53304.215413 72440.132643 72359.081204 108264.666058 \n", "\n", " P_K2_K3 H1_Charge H2_Charge H3_Charge \n", "0 75585.380172 -1 1 1 \n", "1 94244.771077 1 -1 -1 \n", "2 37581.719924 -1 1 1 \n", "3 141426.952947 -1 1 1 \n", "4 108244.552904 1 -1 -1 " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the invariant masses for each possible hadron pair combination\n", "\n", "two_body_resonances_df = sql(f\"\"\"\n", " select \n", " sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) as Energy_K1_K2,\n", " sqrt((H1_PX + H2_PX)*(H1_PX + H2_PX) + (H1_PY + H2_PY)*(H1_PY + H2_PY) \n", " + (H1_PZ + H2_PZ)*(H1_PZ + H2_PZ)) as P_K1_K2,\n", " sqrt({kcharged_mass*kcharged_mass} + H1_PX*H1_PX + H1_PY*H1_PY + H1_PZ*H1_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) as Energy_K1_K3,\n", " sqrt((H1_PX + H3_PX)*(H1_PX + H3_PX) + (H1_PY + H3_PY)*(H1_PY + H3_PY) \n", " + (H1_PZ + H3_PZ)*(H1_PZ + H3_PZ)) as P_K1_K3,\n", " sqrt({kcharged_mass*kcharged_mass} + H2_PX*H2_PX + H2_PY*H2_PY + H2_PZ*H2_PZ) +\n", " sqrt({kcharged_mass*kcharged_mass} + H3_PX*H3_PX + H3_PY*H3_PY + H3_PZ*H3_PZ) as Energy_K2_K3,\n", " sqrt((H2_PX + H3_PX)*(H2_PX + H3_PX) + (H2_PY + H3_PY)*(H2_PY + H3_PY) \n", " + (H2_PZ + H3_PZ)*(H2_PZ + H3_PZ)) as P_K2_K3,\n", " H1_Charge, H2_Charge, H3_Charge\n", " from B2HHH_AllData_WithCuts\n", " \"\"\")\n", "\n", "two_body_resonances_df.limit(5).toPandas()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------------------+------------------+------------------+---------+---------+---------+\n", "| Mass_K1_K2| Mass_K1_K3| Mass_K2_K3|H1_Charge|H2_Charge|H3_Charge|\n", "+------------------+------------------+------------------+---------+---------+---------+\n", "| 3.471303828587013| 1.306171891413032| 3.814181901855551| -1| 1| 1|\n", "|1.8650595784143182| 2.594818979058174| 4.346047856093062| 1| -1| -1|\n", "| 4.020634479824776| 1.319444470787454|3.2793686448023838| -1| 1| 1|\n", "|3.3572612179719226| 1.018751964103818| 4.074793973001933| -1| 1| 1|\n", "|3.1897761838303795|3.4258115164737077|2.0867877492976117| 1| -1| -1|\n", "+------------------+------------------+------------------+---------+---------+---------+\n", "only showing top 5 rows\n", "\n" ] } ], "source": [ "# Computes 2-body resonance invariant mass from two_body_resonances_df\n", "\n", "two_body_resonances_invariant_mass_GeV_df = two_body_resonances_df.selectExpr( \n", " \"sqrt(Energy_K1_K2*Energy_K1_K2 - P_K1_K2*P_K1_K2) / 1000.0 as Mass_K1_K2\", \n", " \"sqrt(Energy_K1_K3*Energy_K1_K3 - P_K1_K3*P_K1_K3) / 1000.0 as Mass_K1_K3\",\n", " \"sqrt(Energy_K2_K3*Energy_K2_K3 - P_K2_K3*P_K2_K3) / 1000.0 as Mass_K2_K3\",\n", " \"H1_Charge\", \"H2_Charge\", \"H3_Charge\") \n", "\n", "two_body_resonances_invariant_mass_GeV_df.show(5)\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-----------------------+--------+\n", "|(H2_Charge * H3_Charge)|count(1)|\n", "+-----------------------+--------+\n", "| 1| 23895|\n", "+-----------------------+--------+\n", "\n" ] } ], "source": [ "# Two_body_resonances_invariant_mass_GeV_df.filter(\"H1_Charge * H2_Charge = -1\").show()\n", "\n", "two_body_resonances_invariant_mass_GeV_df.createOrReplaceTempView(\"t1\")\n", "sql(\"select H2_Charge * H3_Charge, count(*) from t1 group by H2_Charge * H3_Charge\").show()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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N3HggQdy4okn9rqerh80XHPNNbn55pvZe++9ueCCC7jjjjs4/vjjAVhppZU4+eST2WyzzZa4boO2JEmS+uSlL30pU6dO5ZlnnmH06NFceeWVrLvuuktt+zNmzGDnnXfm29/+NjvvvDNPPfUUX//615k6dSpTp07t83qmTJnC3nvvzbnnnssWW2zBM888wzXXXMNqq63GL37xCw466CBuuOGGJa7XoSOSJEnqs1133ZXLL2960ydNmsS+++77wrQbb7yRbbbZhi222IJtttmGu+66C4Bp06ax5ZZbsvnmm/OGN7yBu+++m6eeeorddtuNzTbbjE022YRzzz231+0+9NBD7LTTTnzjG99gjz32AJrgv+222zJq1Kg+13/nnXey1157MXHiRLbccksAttlmG1ZbbTUAtt56a2bMmNH3HdILg7YkSZL6bMKECZxzzjnMmzePKVOmsNVWW70w7XWvex3XXnstt956K0cddRRf/OIXATjllFM4+OCDue2225g8eTJjx47ll7/8Jeussw7/+7//y9SpU9lll1163e7+++/Ppz71KfbZZ58lqn/PPffkxBNPZNttt207/fTTT2fXXXddom10MWhLkiSpz97whjcwffp0Jk2axLve9a4Fpj3xxBPss88+bLLJJhxyyCFMmzYNgDe/+c0cc8wxHH/88fzlL39h9OjRbLrppvz617/mC1/4Atdddx2rrrpqr9vdcccdmThxIk8//fQS1b/jjjty2mmnMX/+/IWmXX311Zx++ukvjNdeUgZtSZIk9csee+zBoYceusCwEYAvf/nLbL/99kydOpVLL730hfNOv+997+OSSy5h9OjR7LzzzvzmN79hww035Oabb2bTTTfliCOO4Kijjup1m4cddhhbbbUV++yzD88///xi1971hclPfOITC7RPmTKFj3zkI1x88cWsscYai73+VgZtSZIk9cuHPvQhjjzySDbddNMF2p944okXvhx55plnvtB+77338qpXvYrPfOYz7LHHHkyZMoWZM2ey4oorst9++3HooYdyyy23LHK73/nOd1hllVX48Ic/TGYuVu3LLbcckyZN4q677uLII48E4P777+c973kPEydOZMMNN1ys9bbjWUckSZKGoL6cjq+WsWPHcvDBBy/Ufthhh3HAAQdwwgkn8I53vOOF9nPPPZezzz6bkSNH8opXvIIj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the invariant mass for one of these combinations\n", "\n", "two_body_resonances_invariant_mass_GeV_df.filter(\"H1_Charge + H2_Charge = 0\").select(\"Mass_K1_K2\") \\\n", " .toPandas().plot.hist(bins=101, range=[0, 10],\n", "title=\"Histogram - distribution of K1_K2 resonance invariant mass, simulation data\") \n", "xlabel('b_meson_invariant_mass (GeV)')\n", "ylabel('Count');\n" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "23895" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "two_body_resonances_invariant_mass_GeV_df.filter(\"H1_Charge * H3_Charge = -1\").count()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Make a Dalitz plot with labelled axes for the simulation data\n", "\n", "# This is achieved by plotting a scatter graph from Mass_12 squared vs. Mass_13 squared\n", "# As in the text of the exercise, add a filter on data that the possible resonance has charge 0\n", "\n", "dalitz_plot_df = two_body_resonances_invariant_mass_GeV_df \\\n", " .filter(\"H1_Charge + H2_Charge = 0\").filter(\"H1_Charge + H3_Charge = 0\") \\\n", " .selectExpr(\"Mass_K1_K2*Mass_K1_K2 as M12_squared\", \"Mass_K1_K3*Mass_K1_K3 as M13_squared\")\n", "\n", "dalitz_plot_df.toPandas().plot.scatter(x='M12_squared', y='M13_squared',\n", "title=\"Dalitz plot, B+/- meson decay into thre kaons, simulation data\")\n", "xlabel('Mass_K1_K2 squared (GeV^2)')\n", "ylabel('Mass_K1_K3 squared (GeV^2)');\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "### Hints" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Calculating invariant mass** - Use the same technique as you did above for the B meson, but now applying it to two-body invariant masses rather than three.\n", "\n", "**Plotting the Dalitz plot** - You can use a `scatter` plot from `matplotlib` to plot a Dalitz plot, see the [example analysis](https://github.com/lhcb/opendata-project/tree/master/Example-Analysis.ipynb). Remember to use the square of each two-body mass." ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "## Adding Dalitz plot for real data\n", "Now draw a Dalitz plot for the real data. Check that the signs of the charge of the hadrons are correct to correspond to your potential neutral resonances R02 and R03." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true, "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# calculate the invariant masses for each possible hadron pair combination in the real data" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# make a Dalitz plot for the real data (with your preselection cuts applied)" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "
While drawing the Dalitz plot for the real data, label the axes accordingly. Compare the Dalitz plots of the real data with the one for the simulation. \n", "What are the most striking differences? \n", "
" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "### Ordering Dalitz variables\n", "You can make a further improvement to allow you to observe the resonances easier. Your resonances R02 and R03 are both composed of the same particle types, K+K-, and hence have the same distributions. It is useful to impose an ordering which distinguishes the resonances. We can call the resonances R0Low and R0High. In each event R0Low is the resonance with the lower mass and the other corresponds to the higher mass combination of kaons. You can now use the mass of these ordered resonances as your Dalitz plot variables, thus effectively \"folding\" your Dalitz plot so that one axis always has a higher value than the other.\n" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": true, "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# make a new Dalitz plot with a mass ordering of the axes" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "### Hint" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Ordered Dalitz plot** - You can find the maximum of the mass of R0Low vs R0High elementwise on one axis, and the minimum of on the other. You can use `numpy.min(a,b)` and `numpy.max(a,b)` to perform elementwise comparisons between two arrays `a` and `b` and return one array filled by either the individual min/max element from the elementwise comparisons." ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "### Binned Dalitz plot\n", "You can improve the representation of your Dalitz plot by binning the data. The hist2d function can be used to make a 2D histogram. The number of bins specification in the hist2d function is the number of bins in one axis." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true, "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# plot a binned Dalitz Plot\n", "# use colorbar() to make a legend for your plot at the side" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "## Two body resonances" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "You can now use your Dalitz plot to identify the intermediate resonances that you see in your plots. The resonances will have shown up as bands of higher density of points on the plots. You can use the [particle data group](http://pdg.lbl.gov/2015/tables/contents_tables.html) tables of mesons to identify which particles these correspond to. The tables give the masses and widths of the particles and their decay modes. You are looking for mesons with the masses corresponding to where you see the bands and that decay into K+K-.\n", "\n", "**Congratulations!** You have succesfully made a Dalitz plot and used it to observe the presence of intermediate particles in the decay of your charged B meson into three charged kaons. " ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "# Searching for local matter anti-matter differences\n", "## Aims:\n", "* Observe matter antimatter differences (CP violation) in regions of the Dalitz plots of the B+ and B- mesons.\n", "* For the data in these regions produce plots to best display the CP violation." ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "In a section above you searched for global CP violation. You probably did not find a result with very high significance. \n", "\n", "CP violation may arise from interference between decays through different resonances, and hence the magnitude and sign of the CP violation may vary across the Dalitz plot. We can apply the same equation as in the global CP violation study \n", "\n", "but apply this only to events in particular regions of the Dalitz plot.\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "## Removing charm resonances" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "The analysis performed here is to study the CP violation in the charmless B meson decays to kaons. \"charmless\" means that the decay does not proceed through a charm quark. However, the most frequent decay of the B mesons occur through the *b* quark decaying into a *c* quark. The majority of these events can be removed by rejecting the events that are proceeding through a D0 meson (which contains the charm quark).\n", "\n", "In the section above you plotted a histogram of the invariant mass of the intermediate resonances and will have observed the D0 meson in this and in the Dalitz plot. You should now reject events that are around the mass range of the D0 meson to suppress this contribution. You can do this in your pre-selection on the data that you set-up earlier in the project.\n", "\n", "This was also a simplification that we did not consider when we were calculating the global asymmetry. After you have applied this pre-selection your code will now recompute the global asymmetry with the D0 meson contribution rejected. We have not yet observed CP violation in charm mesons and searching for this is another active area of current research." ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "## Comparing Dalitz plots" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "Make separate Dalitz plots for the B+ and the B- decays.\n", "Local CP Violation will show up as an asymmetry between the B+ and the B- plots. \n", "\n", "In order that the statistical error on the asymmetry in each bin is not over large the bins need to contain a reasonable number of entries. Hence you will probably need larger bins than when you were looking for resonances in the section above. A suitable initial bin size might be $2.5~\\text{GeV}^2/\\text{c}^4 \\times 2.5~\\text{GeV}^2/\\text{c}^4$.\n" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true, "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# make a Dalitz plot for the B+ events" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true, "hidden": true, "run_control": { "frozen": false, "read_only": false } }, "outputs": [], "source": [ "# make a Dalitz plot for the B- events" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# Make a plot showing the asymmetry between these two Daltz plots\n", "# i.e. calculate the asymmetry between each bin of the B+ and B- Dalitz plots and show the result in another 2D plot" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "Observing a large asymmetry in some regions of the plot does not necessarily mean you have observed CP violation. If there are very few events in that region of the plot the uncertainty on that large asymmetry may be large. Hence, the value may still be compatible with zero.\n", "\n", "You can calculate the statistical uncertainty on the asymmetry, for each bin of the plot, using the same formulas as you used in the global asymmetry section. You can then make a plot showing the uncertainty on the asymmetry.\n", "\n", "Dividing the plot showing the asymmetry by the plot showing the statistical uncertainty you can then obtain the significance of the asymmetry in each bin. You can then plot the significance of the asymmetry to see if there is any evidence for CP violation." ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# Make a plot showing the uncertainty on the asymmetry " ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# Make a plot showing the statistical significance of the asymmetry" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true, "hidden": true }, "source": [ "## Observing CP violation\n", "\n", "From your studies of the asymmetry plot, and the plot of its significance, you will be able to identify regions in the Dalitz plots that show indications of sizeable and significant CP Violation. You may find you have several consecutive bins with significant positive, or negative, asymmetries. You may wish to try alternative binnings of the Dalitz plots to best isolate the regions in which the significant asymmetries occur.\n", "\n", "You can select events that are in these regions of the Dalitz plots where you observe signs of CP Violation. You can then plot a simple 1D histogram of the invariant mass distribution of the B+ and the B- events, just as you did at the start of the project, but only for events that lie in the region of the Dalitz plot that you are interested in. Make the plots of the B+ and the B- events with the same scale, or superimpose the two plots, so that you can observe if the particle and anti-particle decay processes are occurring at the same rate." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# Make a plot showing the invariant mass of the B+ meson particles\n", "# using events from a region of the Dalitz plot showing sizeable CP asymmetries" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "# Make a plot showing the invariant mass of the B- meson particles using events from the same region" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "**Congratulations!** You should now have succesfully observed significant evidence for CP Violation. You should have plots that clearly show that particle and anti-particle decay processes occur at different rates in local regions of the Dalitz plot. You may wish to comapre your results with those published by the LHCb collaboration in this [paper](http://lhcbproject.web.cern.ch/lhcbproject/Publications/LHCbProjectPublic/LHCb-PAPER-2013-027.html).\n", "\n", "**Well Done** you have succesfully completed your first particle physics analysis project. There are many more analyses that can be conducted witht the data set that you have been provided and the skills that you have gained. Ideas for some of these are explored in the section below. Maybe you can discover something new!\n", "\n", "Now you've finished the analysis please provide feedback to help us improve this project using [this brief survey](https://docs.google.com/forms/d/1dEh4A4agmk5zpmR0zrhF79k-lJKV4vX1ETIGJjDscnc/viewform?c=0&w=1)." ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "# Further analyses" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "The data set you have been provided is the full set of data recorded by LHCb preselected for decays of charged B mesons into three final state tracks. This data set has been used for two important publications, [here](http://lhcbproject.web.cern.ch/lhcbproject/Publications/LHCbProjectPublic/LHCb-PAPER-2013-027.html) and [here](http://lhcbproject.web.cern.ch/lhcbproject/Publications/LHCbProjectPublic/LHCb-PAPER-2013-051.html).\n", "\n", "We discuss here: \n", "
    \n", "
  • Additional elements that you could add to your analysis of B+ → K+K+K
  • \n", "
  • Further analyses that you could perform with this data set
  • \n", "
" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "## Adding extra sophistication\n", "\n", "### Systematic Uncertainties\n", "In this analysis you considered the statistical uncertainty on the result. This occurs as a result of having only a limited number of events. In addition there are [systematic uncertainties](https://en.wikipedia.org/wiki/Observational_error#Systematic_versus_random_error), these arise from biases in your measurement. Here we discuss three sources of these for this analysis.\n", "
    \n", "
  • Production asymmetry. The LHC is a proton-proton collider and hence the initial state of the collision is not matter antimatter symmetric. Consequently B+ and B- mesons may not be produced at exactly the same rates. This small production asymmetry it is estimated could be approximately 1%. It can also be measured from the data, as discussed in the LHCb paper.
  • \n", "
  • Detection asymmetry. The LHCb detector could be more efficient for detecting either the B+ or the B- final states. This is because the positive and negative kaons will be bent by the magnet indifferent directions in the detector. If the efficiency of the detector is higher in one region than another this will lead to higher efficiencies for K+ or K- and hence for B+ or B-. For this reason the magnetic field of the LHCb detector is regularly reversed. You used data in this analysis in which the magnetic field was both up and down and hence the effect will (partially) cancel. By comparing results for the two magnet polarities separately you can check the size of this effect. When loading the data above both polarities were combined, you can instead load them independently to measure the difference between the two datasets.
  • \n", "
  • Analysis technique. The analysis technique you have used may bias the result. A major simplification we made in the analysis above was to neglect 'background' events. We imposed a selection to select a sample of predominantly signal events but have not accounted for the effect of the residual background events.
  • \n", "
\n", "\n", "### Using mass sidebands\n", "\n", "One source of 'background' events arises from random combinations of tracks in events that happen to fake the 'signal' characteristics. These events will not peak in the mass distribution at the mass of the B meson but rtaher will have a smoothly varying distribution. Looking at the number and distribution of of events away from the mass peak can allow you to estimate the number of background events under the mass peak.\n", "\n", "### Fitting distributions\n", "\n", "The next level of sophistication in the analysis requires fitting the distributions of events that are observed in the B mass distribution in order to estimate the yield of signal events and background events. You can see how this is done in the LHCb paper on the analysis. Fitting can be performed using the [CERN root framework](https://root.cern.ch/)." ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "## Further analyses\n", "\n", "The LHCb papers using this data set that you are using analysed four decay channels of the charged B mesons. You can perform any of these analyses.\n", "
    \n", "
  • B+ → K+K+K (and anti-particle equivalent). This is the analysis you have performed here. It has the lowest background of the four channels and hence the approximation we made of neglecting the background events will give the least bias to this channel.
  • \n", "
  • B+ → π+π+π (and anti-particle equivalent). In this analysis the final state is three charged pions. The level of background events compared to the signal is significantly higher as pions are the most commonly produced particle at the LHC. Hence, a method of estimating the background level should be added to complete this analysis.
  • \n", "
  • B+ → K+π+π (and anti-particle equivalent). In this analysis the final state is a mixture of one kaon and two pions. This means that the analysis needs to determine in each event which track is the best candidate kaon and apply selection cuts appropriately to select out the events.
  • \n", "
  • B+ → π+K+K (and anti-particle equivalent). This channel has a higher level of background compared to the signal.
  • \n", "
" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "toc": { "toc_cell": false, "toc_number_sections": true, "toc_threshold": 6, "toc_window_display": false }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 1 }