9/22-Generating SSH key
-ignore "$" and "<>" symbols in directions, those shouldn't actually be typed out
-On "Step 3: Add your key to the ssh-agent" I get the error "Could not open a connection to your authentication agent. Inputting exec ssh-agent bash before the "ssh-add ~/.ssh/id_rsa" command fixed this issue
-Having trouble copying SSH key to my clipboard. Solution: First make sure you are in the /.ssh directory. Than use the command cat id_rsa.pub and highlight and right click the text to copy it to your clipboard.
-use chmod to change reading, writing, and executing permissions.
9/29-Starting C++
-I have experience with Java but not with C++, this website helped in my transition: http://www.cprogramming.com/tutorial/java/syntax-differences-java-c++.html
10/1
-I hit rank 4 in hearthstone
-i just used a for loop for the n! homework.
10/4
-downloaded MobaXterm Personal Edition as an alternative to putty
10/27
-sorry I haven't written in a while, we took a break for midterms (by the way, I would advise going into office hours to study before the midterm).
-when doing HW 6 with root, I kept printing a blank graph and couldn't figure out why. Turns out my secretparameters.txt file was formatted incorrectly.
11/1
-so as not to forget, the steps of getting into ROOT are as follow:
cd to the CMSSW_5_3_30
cmsenv
cd to the testRoot subdirectory
root -nw
11/9
-an excellent guide to use as a reference when working with root: http://www-root.fnal.gov/root/GettingStarted/GS.htm
11/17
-On HW8 i kept getting the error:Function HW8() is not defined in current scope :0:, found out I had to replace "void hsum() {" at the beginning of the program with "void whateveryoufilenameis (void){"
11/30
-taken from my buddy Tal's journal, here are some helpful tips for HW9:
Changes made on hw9:
When typing ana::ana(TTree *t), make sure to type out "TChain* chain = new TChain("HZZ4LeptonsAnalysisReduced"); // this needs to match the TTree name" correctly. There is an s in Leptons.
In the tutorial where you fill out ana::loop, rename all the jentry and ientry in the for loop to ientry. Since it is not a nested for loop, only one type of variable should be used.
Under section 3, instead of typing out =c1.Print("mee_nocuts.gif")=, you need to call ana->Loop() once again, and then call Z_ee->Draw() in order to display the histogram so it can be saved.
When you call Loop() on outputData, expect it to take a lot longer than the Monte Carlo did. There are 1.2 billion events to loop through, expect it to take about 5 minutes.
1/28/16
START OF 269L
references:
http://home.thep.lu.se/~torbjorn/talks/tutorial81.pdf
http://zuysal.web.cern.ch/zuysal/pythia.html
https://jobs.web.cern.ch/programme/summer-student-programme/workshop/pythia-tutorial
http://ac.els-cdn.com/0010465594901325/1-s2.0-0010465594901325-main.pdf?_tid=3fe37988-d096-11e5-bc77-00000aacb361&acdnat=1455178124_cbbb32703b6a123bbd586a39ecaf44dd
http://ac.els-cdn.com/S0010465508000441/1-s2.0-S0010465508000441-main.pdf?_tid=8db0ea16-d09a-11e5-87f2-00000aab0f01&acdnat=1455179972_4891115add693ee9ee159eb72e1c4dba
http://home.cern/about/physics/dark-matter
http://atlas.physicsmasterclasses.org/en/zpath_lhcphysics2.htm
http://arxiv.org/abs/1404.0051
http://arxiv.org/ftp/arxiv/papers/1411/1411.0088.pdf
Research Project:
Two papers on search for DM in particle colliders:
http://arxiv.org/pdf/1410.8812v1.pdf
http://arxiv.org/pdf/1309.1117v2.pdf
HW 1:
1/5/16
Make sure you do the following step of the homework in the CMSW_3_5_30 directory as you will need to use root later to check that you stored the particles mass in a tree.
git clone https://github.com/saraheno/honrpythia.git
cd honrpythia
source PYTHIA_setup.csh
make pythiaTree
./pythiaTree >& output.txt
Just make a new Float variable for mass named "mass", and add these 2 lines below their momentum counterparts
t1->Branch("Mass",mass,"mass[nTot]/F");
mass[nTot-1]=pythia.event[i].m();
I then plotted the histogram :
./pythiaTree > & output.txt
root hist.root
*See attached file "Normal Mass Histogram.PNG" for histogram*
For making the Z Boson I changed the number of events from 100 to 10000 inside the event for loop. Then I added the following from the tutorial and found their meaning from http://home.thep.lu.se/~torbjorn/pythia82html/Welcome.html and clicking on New Gauge Bosons
pythia.readString("NewGaugeBoson:ffbar2gmZZprime = on"); -
pythia.readString("32:m0 = 1500.");
pythia.readString("32:mMin = 900.");
pythia.readString("32:mMax = 3000.");
pythia.readString("PhaseSpace:mHatMin = 20. ");
pythia.readString("Zprime:gmZmode = 3");
pythia.readString("Beams:eCM = 14000.");
pythia.readString("32:onMode = off");
pythia.readString("32:onIfAny = 11");
The only way I get a peak of 1500 is if I plot the sum of the pT of the 2 highest energy electrons in each event, NOT the invariant masses. These are the edited lines
double pT1=0, pT2=0, mass1 = 0, mass2= 0; //keep track of the energy of the two highest candidates, kept track of mass even though we didn't use it
TH1F *mass = new TH1F("mass", "Invariant mass of two highest pT electrons", 1000, 0, 2000);
For the next part, only add the following lines of code from the tutorial, because the others are already in your code
pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
pythia.readString("23:onIfAny = 11");
pythia.readString("23:onMode = off");
pythia.init();
then find the sigma at the very bottom of the file, mine were 2.62E-6 for Z and 2.46E-9 for Z prime. the luminosity is just a constant and since we are looking for a ratio it doesn't matter.
1/11/16
in a run of 20 fb-1, how many DY will be made?
N_data=sigma * Lum = 2.62*10^6fb*20fb^-1 =5.2410^7 so this means in one run we will produce this many DY events.
in a run of 20 fb-1, how many ZPrime will be made?
2.46*10^3fb*20fb^-1 = 49200 this means in one run we will produce this many Z Prime events.
What is the ratio of signal over backgroun
just the number of DY events in one run divided by the number of ZPrime events in one run = 5.24*10^7 /49200 = 1065 DY events for every ZPrime
For making cuts recall the following lines we used to make cuts in HW9:
if(f_lept1_eta < 1.44 && f_lept1_eta > -1.44 && f_lept2_eta < 1.44 && f_lept2_eta > -1.44){
el1_eta->Fill(f_lept1_eta);
el2_eta->Fill(f_lept2_eta);
el1_pt->Fill(f_lept1_pt);
el2_pt->Fill(f_lept2_pt);
Unfortunately I could not get both the DY and Zprime events into one histogram after making cuts, and so my HW1 stops here. I would have cut at around 200 GeV to cut out the majority of the background.
2/24/16
Research Project Stuff Starts Here
Downloaded MatGraph
went through the tutorial
We imported some cards
The two card files are attached, they are the txt files with very weird names
we generated 1500 W (l nu) Gamma events at 13 Tev
For me, this took around 35 minutes!
3/6/16
Found out that I can make plots in root in a much simpler manner by using the following process:
root -l File_location/file_name opens root and attaches the file as _file0 by typing _file0->ls(); you can get the name of the TTree in your file, i.e. Delphes then Delphes->Print(); can show you what data is in the file. Perhaps you find something called Particle.PT Then you can do Delphes->Draw("Particle.PT") to make a plot.
3/9/16 An in depth tutorial on turning Delphes data into wonderful histograms
I ran into trouble when trying to analyze my data from my Delphes simulation. When trying to open a Delphes root file you get a slew of warnings, because root doesn’t understand various objects in the file. The following will import the Delphes library, and solve this problem: gSystem->Load("../Delphes/libDelphes");
As it turns out, root will do most of the work for you. With the following command, root will automatically create a header file and a macro file with most of the code already filled in for you:
Delphes->MakeSelector("delphes_selec") //where delphes_selec is the name of your .h and .C files and Delphes is the name of your tree If your not sure what Tree you're working with, immediately after loading the root file type: _file0->ls(). The name will be displayed to the right of "TTree"
In the .h file, add “ #include <TH2.h>” with the rest of the inclusion statements. Whether you use TH1 or TH2 etc, depends on which types of histograms you intend on making
Delete all the class inclusion duplicates " #include "./classes/DelphesClasses.h" " . to clarify there should only be 4 things under "// Header file for the classes stored in the TTree if any."
Then, in the delphes_selec Class declare your histograms:
TH1F *deltaPhi, *deltaEta, *deltaPt, *deltaK;
In the Begin function of the .C file, you make your Histograms, giving them titles, bins, and bounds For Example: deltaPhi = new TH1F("dphi","",200,0,TMath::Pi());
deltaEta = new TH1F("deta","",200,-5,5);
Special note: Make sure you include “fChain->GetEntry(entry);”
in the Process method before you fill the Histograms, so that all branches contain the info about event number "entry" 3/24/16
Use a nested for loop that takes the difference between the generated data[ith index] and the reconstructed data[jth index]. This will create a ‘background’ of data for when i does not equal j, with a peak at 0 (for when i does equal j, making their difference 0).
The full loop in all it's glory, Phi is a little confusing, just focus on PT for (int i=0;i<Particle_;++i) { for (int j=0;j<Track_;++j) { float delta_phi = fabs(Particle_Phi[i]-Track_Phi[j]); // if delta_phi>PI, replace it with 2*PI-delta_phi delta_phi = (delta_phi>TMath::Pi())?2*TMath::Pi()-delta_phi:delta_phi; deltaPhi->Fill(Particle_Phi[i]-Track_Phi[j]); deltaEta->Fill(Particle_Eta[i]-Track_Eta[j]); deltaPt->Fill(Particle_PT[i]-Track_PT[j]); if(Particle_PT[i]>0.5 && Track_PT[j]>0.5) deltaK->Fill(1./Particle_PT[i]-1./Track_PT[j]);
To save the histograms, put the following in the Terminate method in the .C file: TFile* output = TFile::Open("histograms.root","RECREATE"); //Recreate makes sure that the histograms are overwritten each time you run the macro, so you don't get a whole new set of histograms each time deltaPhi->Write(); deltaEta->Write(); deltaPt ->Write(); deltaK ->Write(); output->Close();
To generate the histograms to root -l filelocation/filename, once in root load the library and type Delphes->Process("delphes_selec.C+")
3/30/16
Some helpful emacs shortcuts:
Ctrl Spacebar to mark vertex then use the arrow keys to make a box.
Ctrl X R K will cut everything in the box
Ctrl X R Y will Paste
Ctrl X R T to insert a string
Ctrl W to delete
to replace a string everywhere it appears in emacs do M-x (M is the Meta key, usually the esc key on your keyboard) then type "replace-string". Next input what string you want to replace and finally what you want to replace it with
//this bullet should not be here, the formating is a pain We have been using MadGraph to generate our data, so here is a summary of how we did it: Basic MadGraph Tutorial
First, don't use tmux like we did, apparently that's a no-no, use condor, a tutorial can be found here: https://sites.google.com/a/physics.umd.edu/honrxxx/condor-guide-in-progress
Get the proc and run cards and put them into any directory below your MadGraph one
In the Proc card where it says "sm - a bunch of other stuff" get rid of everything except sm
open the proc card in madGraph, you will be prompted to input numbers between 0 and 5-ish indicating which programs you want to use. We used Delphes and Pythia
In MadGraph type "launch [filename] ". It will save all your data in the predetermined output folder.
04/07/16
Isolation: It is useful to measure the isolation of an event for a number of reasons. For example, if you are looking for a muon produced by a W interaction, you don't want to accidentally associate a muon from a jet in the interaction. You can tell if the muon is from a jet if it is not very isolated and has a large number of events around it. Because the detector is constantly registering hits, you need to eliminate the average energy background in order to measure isolation. Basically, you just calibrate your measurement so that 0 energy = average energy, than you will detect any spikes as events.
04/25/16
Efficiency = num entries after cut / num before cut (want large for W gamma and small on everything else) * make 2 histograms, 1 with cuts one without, then use “integral function”
05/02/16
Correction Factor and Fiducial Cuts