Work >> UF Neutrino Group | Teaching | CV | New Students |
I have discovered that undergraduates and graduates in physics programs in the US are lacking basic computer skills that they will need for the rest of their career. This isn't limited to University of Florida students; my colleagues from a wide range of institutions across the US have noticed similar trends. This page is intended to be the starting point for students who join my group in specific, but it contains links that are of use to any physics student, regardless of their specalization in experiment or theory.
Basic Coding Knowledge
- C/C++: link
- Unix based commands, things like up arrow to find a command you've already entered, tab return, how to change directories. This is an excellent, short, thorough, introduction: link
- A text editor intended for code development: emacs/xemacs
(Mostly) High Energy Analysis Platform
- ROOT. Also see their users guide and reference guide
- This is a very good guide to use to get started using ROOT, perhaps more clear than ROOTs own tutorial examples: link
Getting Accounts at Fermilab
- Follow the instructions in this link. For the offsite account request choose Affiliation: MINERvA, Professional Class is Other, or Graduate Student, Phone number can be your cell, or anything you want, Fermilab contact: ask me for the appropriate information. In the comments please mention that you are working for me, at the University of Florida.
- Once that is done, you must have access to Kerberos on your computer. This is the strong ssh authentication used by Fermilab, and they are issuing you a Kerberos account in the previous step.
- Make sure that after you receive confirmation of your account activation that you
continue to follow the instructions on that page to request FNAL computing services. NOTE that their instructions for testing if you have a fnalu account are
wrong!! You should instead do:
- kinit username@FNAL.GOV ....... NOTE: the FNAL.GOV must be in all caps!
- .... enter your kerberos password at the prompt. If it worked, after you hit enter you'll be returned to your terminal prompt
- ssh username@fnalu.fnal.gov
- ... if this worked you will get a prompt that says flxi01 or flxi02, after a long stream about security at FNAL
- For MINERvA: email minerva-software@fnal.gov, minerva-computing@fnal.gov with your user name, my name, and that you're a new student on UF. Request access for all minerva computers, wiki pages, and CVS
- sign up for MINERvA mailing lists. Ask me how.
Test Driving ROOT
Here is a .root file, a file containing a bunch of information about fake (generated) neutrino interactions. Please poke around and see what it looks like. The file is HUGE (~160 MB) so you have to get it from my public website: link
You can do 2 interesting things with it:
- type "root SIM_minerva_00000300_0010_DST_v8r1.root" then at the ROOT prompt type "TBrowser b"
- this will open an older version of a browser window inside of ROOT. The browser allows you to click through the file to see what is inside of it, and if you double click on any of the names next to leaf images, you will get a histogram, or plot, of that variable's values.
- if you want to start exploring this root tree using C/C+/C++, do this:
- root -b
- TChain *chain = new TChain("minerva");
- chain->Add("SIM_minerva_00000300_0010_DST_v8r1.root
/minerva"); - chain->MakeClass();
- .q
- This will use ROOT to parse your .root file, and automatically generate a .C and .h file. These are header and source files for code. To get an idea of what the code
does, try editing the .C file (minerva.C) in 2 ways:
- at the top of the code, after #include < TCanvas.h >,
put #include < iostream > - in the body of the code, after // if (Cut(ientry) < 0) continue; put std::cout << "Entry number " << jentry << std::endl;
- at the top of the code, after #include < TCanvas.h >,
- then run it doing:
- root -b
- .L minerva.C++
- gROOT->ProcessLine("minerva t; t.Loop();")
- .q
