Since I wrote about my feelings about programming on Thursday, I got some comments and questions about how and why; which can be totally ok, but also a little annoying if it's more like "why on earth are you so stupid you're trying to do anything in C++" (no one said exactly that, it's just an example of a not very constructive comment). Like my friend, Anders (not my boyfriend, but my friend who is a boy - haha), said: "With programming you can do everything! (Except for saying out load which language you are using without someone telling you it's wrong.)"
Telling me stuff like "you have to hate yourself for choosing C++" is not exactly helping me (or anyone really), right? I didn't wake up one day and say to my self "hey, I think I want to program C++ for no reason what so ever - just because I enjoy feeling stupid". I need C++. So it's a little bit like telling your kid who is doing his/her algebra homework "you must really enjoy feeling stupid since you're doing this algebra stuff - you should work on statistics instead".
I love getting constructive comments or critique, but some comments are just making me feel more stupid than before (like: not only am I not managing the programming stuff, I'm also an idiot for trying to learn what I am learning...).
So I thought, today I want to give you ten FACTS about experiments and data analysis here at the nuclear physics group in Oslo - which is the main reason why I need any knowledge of programming these days. This is probably the geekiest (and perhaps most "technical") facts post I've had so far...but sometimes you have to be a little geeky, right? ;)
- The material we want to study can be almost anything - for example uranium, gold, nickel, molybdenum, iron, dysprosium, thorium or plutonium (these are just some examples of what we have experimented with the last couple of years)
- We make a tiny foil - a target - from the material (almost the size of a small coin), and put this inside all of our detectors
- There are always at leas two types of detectors for the experiments: Sodium Iodide detectors (they measure gamma rays), and Silicon detectors (they measure particles)
- The Sodium Iodide detectors are called CACTUS (cause it really looks like a cactus) <3
- Sometimes we use more detectors than the gamma detectors (CACTUS) and the particle detectors - for example fission detectors (we used that for my uranium experiment, since uranium-233 fissions like crazy :P )
- To study the nuclei in the material we bombard the target with tiny particles; protons, deuterons (a proton and a neutron), helium-3 (two protons and one neutron), or helium-4 (two protons and two neutrons - same as an alpha particle :D )
- When a particle hits a nucleus in our target material, the nucleus gets some extra energy (sort of like it gets heated); then a particle goes out (it can be the same that went in, or it can be another one), and the target nucleus cools again, by sending out gamma radiation
- The different detectors will detect the different kind of stuff that comes out from the reaction in the target: the gamma detectors detect the gammas, the particle detectors detect the particles (protons, deuterons, helium-3, or alphas), and the fission detectors detect fission - the detection of all these thing are what we talk about as our data
- Data from the experiments we are performing in Oslo (like my uranium experiment) is typically 10-100 Giga Bytes - so it's kind of a lot
- To sort all of these data we need codes/programs that go through everything and checks if there for example was a particle and a gamma that came out of the target at the same time, or maybe it was a particle and a gamma and a fission product, and what were the energies of all this; the particles and the gammas - on the lucky side I don't have write theses sorting codes from scratch, on the other side I have to try to understand someone else's code and logic, which is not always very easy (when I don't understand I'm always sure it's because I'm stupid :/ )
- CACTUS <3 -
The sorting codes, and everything else I'm working on is written in C++, and that's the reason why that's the language I'm working on.
Happy Monday to everyone!