What is BaBar?


In [1]:
from IPython.display import Image
Image(filename='images/babar.jpg',width=400)


Out[1]:

BaBar was designed to understand the disparity between the matter and antimatter content of the universe by measuring Charge Parity violation.

BaBar focuses on the study of CP violation in the B meson system. The name of the experiment is derived from the nomenclature for the B meson (symbol B) and its antiparticle (symbol B, pronounced B bar). The experiment's mascot was accordingly chosen to be Babar the Elephant.

The BaBar detector ceased operation on 7 April 2008, but data analysis is ongoing.

The The BaBar experiment used two accelerators: the SLAC linac (linear accelerator) and the PEP-II storage ring facility.

The SLAC linac serves as an injector: it accelerates the electron or positron beams to the required high energies, and the injects them into one of PEP-II's storage rings.

SLAC National Accelerator Laboratory has a two-mile linear accelerator, which is the longest in the world!


In [2]:
from IPython.display import Image
Image(filename='images/slac.jpg',width=400)


Out[2]:

In [3]:
from IPython.display import Image
Image(filename='images/BaBar-detector.jpg',width=400)


Out[3]:

The following information was obtained at: https://www.slac.stanford.edu/BFROOT/www/doc/workbook/detector/detector.html

The BaBar detector is made up of five subdetectors. From the inside out, they are:

  • Silicon Vertex Tracker (SVT) - provides precise position information on charged tracks, and is also the sole tracking device for very low-energy particles.
  • Drift Chamber (DCH) - provides the main momentum measurements for charged particles and helps in particle identification through dE/dx measurements.
  • Detector of Internally Refected Cerenkov radiation (DIRC or DRC) - provides charged hadron identification.
  • Electromagnetic Calorimeter (EMC) - provides particle identification for electrons, neuatrl electromagnetic particles, and hadrons.
  • Solenoid (not a subdetector) - provides the 1.5 T magnetic field for needed for charge and momentum measurements.
  • Instrumented Flux Return (IFR) - provides muon and neutral hadron identification.

These types of displays of the detector can be challenging to understand and at the end of the day, it's not what we scientists actually analyze. We use this information to get the electric charge, energy, and momentum of these particles, and that's about it.

Let's go take a look at some of that data!

The first step is to import some helper functions. One is to get the collisions data out of the files, and the other is to display the particles that are produced in these collisions.


In [4]:
import sys
sys.path.append("../tools/")

import babar_tools as babar

Next, we will open the file and pull out the collision data. This will return a Python list of all the collisions in that file.

You can use these data to visualize individual collisions or to perform a data analysis on all the collisions.


In [5]:
infile = open('../data/small_BaBar_test_file.dat')
collisions = babar.get_collisions(infile)

number_of_collisions = len(collisions)
print("# of electron-positron collisions: %d" % (number_of_collisions))

import matplotlib.pylab as plt
%matplotlib notebook
# Uncomment the following line if you want your plots to be displayed in a separate interactive window.
#%pylab qt


# of electron-positron collisions: 926

Let's take a look at some of these collisions!


In [6]:
babar.display_collision3D(collisions[6])



In [7]:
babar.display_collision3D(collisions[100])


What are we looking at here?

  • The green lines represent the electrons colliding.
  • The other lines represent particles created in the collisions. The length of these lines tell us how much momentum (or energy) they have. The colors are different particles/object.

You can also make plots of the properties of the particles.


In [8]:
energies = []

for collision in collisions:
    
    pions,kaons,protons,muons,electrons,photons = collision
    
    for pion in pions:
        energy = pion[0]
        energies.append(energy)

plt.figure(figsize=(4,4))        
h = plt.hist(energies)


So now you know how to play around with data from BaBar. What do you want to do next? :)


In [ ]: