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
Subscribe to:
Posts (Atom)