![]() |
| At my internship with my code and graphs |
Wednesday, December 18, 2013
Week of December 18
Wednesday, December 11, 2013
Week of December 11
I
finally started looking at some actual data! Yay!! Since I missed quite a
few weeks this semester, I had to do a lot of independent work. I spent most of
my time learning technical skills (such as how to code in Python and the basics
of particle physics). Though learning on my own was challenging, I now
feel prepared and (somewhat) confident in my particle physics knowledge.
Dr.
Bellis sent me a csv file (which is sort of like an Excel file) with some data.
It's very similar to the files from the BaBar experiment that I'll be looking
at. To give you an idea of the scope of this specific file, it contained
100,000 rows and 18 columns. (Almost 2 million data points!) That's huge, but
not as immense as the BaBar data: if all of the BaBar data represented the
planet, then this file would be equivalent to a mere atom.
Here
are the columns of the data:
The
RunNo (the run number of the particle detector), EvNo, and the eta and phi
columns were all irrelevant, and I didn't include them in my data analysis.
The
detector measures the momentum and energy (among other things) of daughter
particles produced from the decay of each original particle. The 1 or 2 in each
column indicates the first or second daughter particle, respectively. E
represents the energy of the particle, and p represents the momentum (px, py,
pz, and pt represent the x, y, z, and t components of momentum). Q is the
charge of the particle (either -1 or +1).
So,
what are these daughter particles, anyway? My job was to run a code on Python
that figured this out.
If
you know the mass of a particle, you can figure out what the actual particle
is. (Thanks to the 1500 page Particle Physics Review, which lists all particles
with everything you could ever want to know about them). The key is using the
momentum and energy of the particle to find the mass.
Albert
Einstein's famous equation E=mc² relates the energy (E) and mass (m) of a
particle, where c is the speed of light (a constant). However, Einstein's
equation isn't actually completely correct. Dr. Bellis explained to me
that since particles have velocity, the momentum (mass times velocity) of
the particle has to be taken into account, too. The complete version of the
equation is: E²=m²c⁴ + p²c², where
p=momentum.
![]() |
| Graph of the first daughter particle. |
Using the information from the graph and the Particle Physics Review, I figured out that the first daughter particle is a muon. Next, I graphed the mass of the parent particle
The next section of my code reconstructed the mass of the parent
particle. The .csv file that Dr. Bellis sent me only had data for the daughter
particles, since parent particles are often hard to measure in detectors. It's
very simple to reconstruct parent particles from daughter particles, however,
since the energy and the components of momentum for each daughter particle add
up to equal the energy and components of momentum for each parent particle.
For example, E1 (energy of
first daughter particle) + E2 (energy of second daughter particle)= E (energy
of parent particle).
Don't get this confused like I did the first time-- the masses of the
two daughter particles do not add up to the mass of the parent particle! Mass
can be converted into energy and vice versa, so some of the parent particle's mass becomes energy during the decay.
![]() |
| A graph of the parent particle. The bump represents the mass of the particle, which is an upsilon particle. |
It was very cool to be able to take millions of numbers and reconstruct an entire particle from them. I realized that while particle physics can be very intimidating, it can also be very simple at its core: everything relates back to the one equation, E²=m²c⁴ + p²c². I found one very tiny bump on a graph that proved the existence of a particle, which is the same thing that the scientists who discovered evidence of the Higgs Boson did. Yay for finally putting all my technical skills to use!
Wednesday, December 4, 2013
Weeks of November 20 to December 4
Due to an unlucky combination of events (and Thanksgiving break), I didn't have my internship for three weeks in a row. However, I still did some work on my own at home.
My main task was to finish writing my Python program that calculates if a number is prime or not and returns all primes under 100. Here's the completed program:
I started off by defining a function is_prime. I told Python that for the is_prime function, if a number is divided by the value "x" in the defined range and the answer is 0, then the statement is false. If the answer is not 0, then the statement is true.
In the next section, the raw_input function prompts the user to enter a number, which is set equal to the variable "number". The int() function is around this section since Python can only perform certain calculations if it's explicitly told that a number is an integer. Since I defined the is_prime function in the previous section, I can now use an if-else statement to tell the user whether the number they entered is prime or not.
The next section prints out all the prime numbers under 100. Again, I defined the range and used the is_prime function to only return the prime numbers. This is what the user sees now:
I'm happy that this Python program was a success!
My main task was to finish writing my Python program that calculates if a number is prime or not and returns all primes under 100. Here's the completed program:
I started off by defining a function is_prime. I told Python that for the is_prime function, if a number is divided by the value "x" in the defined range and the answer is 0, then the statement is false. If the answer is not 0, then the statement is true.
In the next section, the raw_input function prompts the user to enter a number, which is set equal to the variable "number". The int() function is around this section since Python can only perform certain calculations if it's explicitly told that a number is an integer. Since I defined the is_prime function in the previous section, I can now use an if-else statement to tell the user whether the number they entered is prime or not.
![]() |
| This is what the user sees. Once they enter an integer (I entered 104), Python tells them whether the number is prime or not. |
The next section prints out all the prime numbers under 100. Again, I defined the range and used the is_prime function to only return the prime numbers. This is what the user sees now:
| All the prime numbers under a 100 |
Another one of my tasks was to write down all the charge permutations for the decay of the hybrid meson (psi/g).
The psi/g is neutral. If the psi/g exists, it is predicted to decay to two particles called a D2 and a D. Now, the D2 decays to a D* and a pi. When the D* decays (ether from the psi/g or the D2), it decays to a D and a pi. Based on the law of conservation of energy, I came up with the following charge permutations that result in D mesons:
The psi/g is neutral. If the psi/g exists, it is predicted to decay to two particles called a D2 and a D. Now, the D2 decays to a D* and a pi. When the D* decays (ether from the psi/g or the D2), it decays to a D and a pi. Based on the law of conservation of energy, I came up with the following charge permutations that result in D mesons:
1) psi/g --> D2+ D-
D2+ --> D*0 pi+
D*0 --> D0 pi0
2) psi/g --> D2+ D-
D20 → D*+ pi-
D*+ → D0 pi+
3) psi/g --> D2+ D-
D20 → D*+ pi-
D*+ → D+ pi0
4) psi/g → D2+ D*-
D2+ → D*0 pi+
D*0 → D0 pi0
5) psi/g → D20 D*0
D20 → D* pi-
D*+ → D0 pi+
6) psi/g → D20 D*0
D20 → D* pi-
D*+ → D+ pi0
Wednesday, November 13, 2013
Week of November 13
Today, I continued my work on radioactive decay and calculating branching fractions. Using the Review of Particle Physics, I found the five most common decays for the D meson, and I calculated the branching fractions for each of those decays. I spent the majority of my time today working on my Python skills, however.
Today, I reviewed writing functions, using the range function, and writing if-else statements. Dr. Bellis gave me the task of writing a Python program that calculates if a number is prime or not and returns all of the prime numbers under 100. Although the part of the program that returned all of the prime numbers under 100 was fairly simple, I couldn't write that section until I wrote the first one. I knew that to calculate if a number was prime or not, I first had to define a range for the computer to calculate from. I defined the range as all the numbers between 2 (since 1 isn't a prime) and 1 + the square root of the number, since there aren't any new factors of a number after its square root. This is what that section looked like:
I had to use the integer function int() which converts all numbers into integers since the range function only works with integers. The if statement "if number % x == 0" basically says "if the number entered is divided by any number in the defined range, and the answer is equal to 0, then return 'False.' If the answer isn't equal to 0, then return 'True.'"
I wrote the section of the program that checks if the number entered by the user is prime, but there were too many bugs for the program to run successfully. Next time I have my internship, I will continue writing and debugging the program.
Today, I reviewed writing functions, using the range function, and writing if-else statements. Dr. Bellis gave me the task of writing a Python program that calculates if a number is prime or not and returns all of the prime numbers under 100. Although the part of the program that returned all of the prime numbers under 100 was fairly simple, I couldn't write that section until I wrote the first one. I knew that to calculate if a number was prime or not, I first had to define a range for the computer to calculate from. I defined the range as all the numbers between 2 (since 1 isn't a prime) and 1 + the square root of the number, since there aren't any new factors of a number after its square root. This is what that section looked like:
I had to use the integer function int() which converts all numbers into integers since the range function only works with integers. The if statement "if number % x == 0" basically says "if the number entered is divided by any number in the defined range, and the answer is equal to 0, then return 'False.' If the answer isn't equal to 0, then return 'True.'"
I wrote the section of the program that checks if the number entered by the user is prime, but there were too many bugs for the program to run successfully. Next time I have my internship, I will continue writing and debugging the program.
Wednesday, November 6, 2013
Week of November 6
Today, Dr. Bellis and I continued our discussion of
radioactive decay, with a particular focus on the decay modes for the B meson
and for the J/psi particle.
There are several different decay possibilities for any
single particle. For example, two possible decay modes for J/psi are J/psi
--> e+ e- and J/psi --> μ+ μ-. So, how does one know what a certain
particle will decay to? All of a particle's decay modes, the probabilities of
these decays, and everything else you could possibly need to know about a
particle are published in the wonderful 2012 Review of Particle Physics (which
has 1526 pages and a size 10 font).
One important piece of information to know about a decay mode for a particle is its branching fraction. Basically, a branching fraction is the number of particles that decay a certain way over the total number of particles that decay. The Review of Particle Physics publishes the branching fraction for each decay.
One important piece of information to know about a decay mode for a particle is its branching fraction. Basically, a branching fraction is the number of particles that decay a certain way over the total number of particles that decay. The Review of Particle Physics publishes the branching fraction for each decay.
If you have two steps in the decay process, how do
you calculate the total possibility of that decay? For example, suppose you
want to find the proportion of particles that decay from a B neutral meson to a
positive and negative pion. A B neutral meson first decays to a K neutral
meson, which then decays into the two pions. You can find the total probability
of the decay from a B neutral meson to a positive or negative pion using a simple
rule of probability: if two events are independent, then the probability of
them both occurring is the product of the probabilities of each occurring.
Therefore, to find the total branching fraction for the decay of a B neutral
meson to a charged pion, you have to multiply the branching fractions for each
separate decay together.
Using this information, I calculated the branching fractions
for three different situations. Unfortunately, I had to spend over an hour
today in the IT office at Siena since my computer wouldn't connect to the network,
so I didn't have much time to do anything else.
Wednesday, October 30, 2013
Week of October 30
This week, I finally went back to Siena after a two week break! Dr. Bellis and I started off by discussing radioactivity, since I'll be looking at the decay modes of certain mesons.
Radioactive decay occurs when an unstable atom emits particles of ionizing radiation, which results in the nucleus of the atom losing energy. The chance that a given particle will decay is constant over time, although it's impossible to predict exactly when this decay will occur (according to quantum theory). The half life is the time taken for a given amount of a radioactive substance to decay to half of its initial value.
To illustrate this process, Dr. Bellis showed me how to plot the radioactive decay for a particle on Python. Since we couldn't obtain real data, I modeled radioactive decay by shaking pennies in a box and removing all of the pennies that were heads up until there was only one penny left.
Since the chance that any penny will come up heads on any toss is always the same (50%), about half the pennies are left after the first toss. In this model, the half-life is represented by the time it takes for one half of the remaining pennies to be removed (about one toss). Removing a penny is analogous to the decay of a radioactive nucleus.
Unfortunately, I wasn't able to do any more work since Dr. Bellis had to leave early today.
Radioactive decay occurs when an unstable atom emits particles of ionizing radiation, which results in the nucleus of the atom losing energy. The chance that a given particle will decay is constant over time, although it's impossible to predict exactly when this decay will occur (according to quantum theory). The half life is the time taken for a given amount of a radioactive substance to decay to half of its initial value.
To illustrate this process, Dr. Bellis showed me how to plot the radioactive decay for a particle on Python. Since we couldn't obtain real data, I modeled radioactive decay by shaking pennies in a box and removing all of the pennies that were heads up until there was only one penny left.
Since the chance that any penny will come up heads on any toss is always the same (50%), about half the pennies are left after the first toss. In this model, the half-life is represented by the time it takes for one half of the remaining pennies to be removed (about one toss). Removing a penny is analogous to the decay of a radioactive nucleus.
![]() |
| This picture is what the graph looked like on Python. Radioactive decay has an exponential curve. |
Wednesday, October 23, 2013
Week of October 23
My mentor still wasn't at Siena this week, so I answered
some more of the study questions and continued learning Python from Emma.
Here are the study questions I answered:
What is an electron? What is a muon?
Electrons and muons are both classified as leptons.
Electrons are subatomic particles with a negative electric charge. They play an essential role in electricity, magnetism, and thermal conductivity, and they also participate in gravitational, electromagnetic, and weak interactions. Electrons have properties of both particles and waves, and can collide with other particles and can be diffracted like light.
Electrons radiate or absorb energy in the form of photons when accelerated. The antiparticle of an electron is a positron (identical to the electron except with an opposite charge).
A muon is an elementary particle similar to the electron, although it has a much larger mass. It has an electric charge of -1.
Where and when did the BaBar particle physics experiment run?
The BaBar particle physics experiment ran from 1999 to 2008 at the SLAC National Accelerator Laboratory at Stanford.
At the BaBar experiment, what kinds of particle beams did they collide?
BaBar studies the particles produced in collisions between electrons and positrons.
Subscribe to:
Posts (Atom)









