Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/3/2016
Goal: Set up Github Account using tutorial videos as suggested and fix any errors from previous attempt (last attempt was Monday using notes on last semester HW 3 Github section)
Used tutotiral videos from last semester: https://myelms.umd.edu/courses/1179970/assignments/syllabus (Tutorial 4)
Github!- HW 3
After making gittest directory:
[momokanw@hepcms-in1 ~/gittest]$ git init
Initialized empty Git repository in /home/momokanw/gittest/.git/
[momokanw@hepcms-in1 ~/gittest]$ git clone https://github.com/mayowao/RP1
Initialized empty Git repository in /home/momokanw/gittest/RP1/.git/
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
[momokanw@hepcms-in1 ~/gittest]$ ls -l
total 4
Then on to practice push/pull/clone from repository:
[momokanw@hepcms-in1 RP1]$ git remote set-url origin https://mayowao@github.com/ mayowao/RP1.git
[momokanw@hepcms-in1 RP1]$ git push origin master Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (9/9), 813 bytes, done.
Total 9 (delta 0), reused 0 (delta 0)
To https://mayowao@github.com/mayowao/RP1.git
80c4679..661e0c8 master -> master
[momokanw@hepcms-in1 RP1]$ git pull
Already up-to-date.
C++ Intro- HW 4 (Tutorial 5)
[momokanw@hepcms-in1 RP1]$ emacs -nw main.cpp
[momokanw@hepcms-in1 RP1]$ g++ main.cpp
main.cpp: In function ‘int main()’:
main.cpp:4: error: ‘end1’ was not declared in this scope
[momokanw@hepcms-in1 RP1]$ ./a.out
./a.out: Command not found.
[momokanw@hepcms-in1 RP1]$ emacs -nw main.cpp
[momokanw@hepcms-in1 RP1]$ g++ main.cpp
[momokanw@hepcms-in1 RP1]$ ./a.out
Hello World!
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/4/2016
Goal: Practice C++ a bit. Practice Root a bit.
C++ Variables, For/While-HW 5
(learned shortcuts)
CTRL Key Bound
Ctrl + a - Jump to the start of the line Ctrl + b - Move back a char Ctrl + c - Terminate the command Ctrl + d - Delete from under the cursor Ctrl + e - Jump to the end of the line Ctrl + f - Move forward a char Ctrl + k - Delete to EOL Ctrl + l - Clear the screen Ctrl + r - Search the history backwards Ctrl + R - Search the history backwards with multi occurrence Ctrl + u - Delete backward from cursor Ctrl + xx - Move between EOL and current cursor position Ctrl + x @ - Show possible hostname completions Ctrl + z - Suspend/ Stop the command
ALT Key Bound
Alt + < - Move to the first line in the history Alt + > - Move to the last line in the history Alt + ? - Show current completion list Alt + * - Insert all possible completions Alt + / - Attempt to complete filename Alt + . - Yank last argument to previous command Alt + b - Move backward Alt + c - Capitalize the word Alt + d - Delete word Alt + f - Move forward Alt + l - Make word lowercase Alt + n - Search the history forwards non-incremental Alt + p - Search the history backwards non-incremental Alt + r - Recall command Alt + t - Move words around Alt + u - Make word uppercase Alt + back-space - Delete backward from cursor
Deleting more than 1 line
Go to the first line and type d5d (dd deletes one line, d5d deletes 5 lines) ~or~
Type Shift-v to enter linewise selection mode, then move the cursor down using j (yes, use h, j, k and l to move left, down, up, right respectively, that's much more efficient than using the arrows) and type d to delete the selection.
---Variables---
int, bool, double, ran thru exercises :)
While vs. For (example)
While
#include <iostream>
using namespace std;
int main() {
int n=0, m=0;
while(n<10) {
// this is the slow (or outer) loop
cout << "n is " << n << ": ";
m=0;
while(m<=n) {
// this is the fast (or inner) loop
// in this loop, the slow loop variable (n) is a constant
// this loop must run to completion before the slow loop
// can progress (during every iteration of the slow loop!)
cout << m;
m++;
}
// now the fast loop has finished and the slow loop can
// continue with the current iteration
cout << endl;
n++;
}
return 0 ;
}
For
#include <iostream>
using namespace std;
int main() {
int n=0, m=0;
for(n=0; n<10; n++) {
// this is the slow (or outer) loop
cout << "n is " << n << ": ";
//m=0;
for(m=0; m<=n; m++) {
// this is the fast (or inner) loop
// in this loop, the slow loop variable (n) is a constant
// this loop must run to completion before the slow loop
// can progress (during every iteration of the slow loop!)
cout << m;
//m++;
}
// now the fast loop has finished and the slow loop can
// continue with the current iteration
cout << endl;
// n++;
}
return 0 ;
}
---Pointers---
read through section
(learned shortcuts)
C-c Stops all :)
Root- HW 7/8
**Note ls -commands: http://linuxcommand.org/man_pages/ls1.html
Remember cmsenv before heading into testRoot subdirectory!
(learned shortcuts)
cp SOURCE DEST
cp SOURCE DIRECTORY
cp SOURCE1 SOURCE2 SOURCE3 SOURCEn DIRECTORY
cp [OPTION] SOURCE DEST
cp [OPTION] SOURCE DIRECTORY
roottest.C
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/5/2016
Goal: First attempt at HW 1 Pythia assignment (review root tree construction/structure.
Cloned into home directory
Tried to use cp function to copy it into the CMSW… directory
Then tried to delete from parent directory (PhysHonr…) but didn’t work
http://askubuntu.com/questions/217893/how-to-delete-a-non-empty-directory-in-terminal
-kept answering “no” to removing internal files
Opened root in CMSW… directory
(Only the original git clone works. needed to click on the honrpythia from my home directory to see the histograms)
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/10/2016
Goal: Research Meeting. Pythia assignment.
Meeting with Prof. Eno
Back to HW 1 Pythia attempt 2
could not connect to server- Putty error host does not exist
Solution- Check internet connection (connected but no internet access)
Advanced LIGO, gravitational waves
-cosmic strings generated for inflation
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/12/2016
Goal: Study from Pro. Eno’s research
unstable particles decay into regular QCD particles
eventually need more notes on background!!.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/18/2016
Goal: Complete Pythia Notes/Assignments
emacs: /cvmfs/cms.cern.ch/slc6_amd64_gcc472/cms/cmssw/CMSSW_5_3_30/external/slc6_amd64_gcc472/lib/libz.so.1: no version information available (required by /lib64/libgio-2.0.so.0)
[momokanw@hepcms-in2 ~/honrpythia]$ source PYTHIA_setup.csh
/home/momokanw/honrpythia
done
[momokanw@hepcms-in2 ~/honrpythia]$ make pythiaTree
g++ pythiaTree.cc /home/eno/data/pythia8210/lib/libpythia8.a -o pythiaTree -w -I/cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//include -I/home/eno/data/pythia8210/include -O2 -ansi -pedantic -W -Wall -Wshadow -fPIC -Wl,-rpath /home/eno/data/pythia8210/lib -ldl\
-Wl,-rpath /cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//lib `/cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//bin/root-config --glibs`
pythiaTree.cc:35:1: error: 'Float' does not name a type
pythiaTree.cc: In function 'int main(int, char**)':
pythiaTree.cc:75:22: error: 'AMass' was not declared in this scope
make: *** [pythiaTree] Error 1
Divide by I, F??? <---- no, this is just the variable type
[momokanw@hepcms-in1 ~/honrpythia]$ make pythiaTree
g++ pythiaTree.cc /home/eno/data/pythia8210/lib/libpythia8.a -o pythiaTree -w -I/cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//include -I/home/eno/data/pythia8210/include -O2 -ansi -pedantic -W -Wall -Wshadow -fPIC -Wl,-rpath /home/eno/data/pythia8210/lib -ldl\
-Wl,-rpath /cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//lib `/cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.32.00//bin/root-config --glibs`
pythiaTree.cc: In function 'int main(int, char**)':
pythiaTree.cc:96:7: error: base operand of '->' is not a pointer
make: *** [pythiaTree] Error 1
[momokanw@hepcms-in1 ~/honrpythia]$ emacs -nw pythiaTree.cc
emacs: /cvmfs/cms.cern.ch/slc6_amd64_gcc472/cms/cmssw/CMSSW_5_3_29/external/slc6_amd64_gcc472/lib/libz.so.1: no version information available (required by /lib64/libgio-2.0.so.0)
fixed error flot “AMass[5000]”
not fill->, fill is only for histograms...
but still not the right mass
changed to not divide by I, not mass is orders of mag two low…(but didn’t have AMass[nTot]
kept divide by I but added [nTot] to tree line… still too high
deleted & amass, just amass still not showing beyond about 1200 106Gev
divide by F (for float) instead of I, but now got
leaflist is the concatenation of all the variable names and types separated by a colon character : The variable name and the variable type are separated by a slash (/). The variable type must be 1 character. (Characters after the first are legal and will be appended to the visible name of the leaf, but have no effect.) If no type is given, the type of the variable is assumed to be the same as the previous variable. If the first variable does not have a type, it is assumed of type F by default. The list of currently supported types is given below:
C : a character string terminated by the 0 character
B : an 8 bit signed integer (Char_t)
b : an 8 bit unsigned integer (UChar_t)
S : a 16 bit signed integer (Short_t)
s : a 16 bit unsigned integer (UShort_t)
I : a 32 bit signed integer (Int_t)
i : a 32 bit unsigned integer (UInt_t)
F : a 32 bit floating point (Float_t)
Checked via a separate histogram
pmass->fill
Solution: MHAT!!! :) for invariant mass “.info”
Works now
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/21/2016 and 2/24/2016 (Group Meeting Notes)
Goal: Study Prof. Eno’s pythia code /jet clustering exercise
From jet clustering exercise
using the root tuple at https://github.com/saraheno/jetclusteringexercise, implement the jet clustering algorithm defined in the "particle identification" section of your "text" and make a plot showing the number of jets with pT > 20 GeV in each event and the pT spectra of the jets
**double data… need separate events…(new root file) instead use suze of the vecotr (pt->size())
adding dumpTreetoText.cc (*change title, no need to make a separate txt file, not just need to extract data from root file) done via
see previous exercise
TFile *f=new TFile("for_jet_clustering_exercise.root"); // opens the root f\
ile
TTree *tr=(TTree*)f->Get("tree"); // creates the TTree object
tr->Scan(); // prints the content on the screen
float pt,ptp; // create variables of the same type as the branches you want\
to access and new branch for parent particle momentum
TBranch *bpt =
di,j=min(pTi-2,pTj-2)Rij2R2 compare to diB=pTi-2
T->Branch("pt",&pt,"pt/F");
T->SetBranchAddress("pt",&pt);
T->SetBranchAddress("eta",&eta);
T->SetBranchAddress("phi",&eta);
T->SetBranchAddress("mass",&eta);
**Add friend instead of adding branch directly to tree
Long64_t nentries = T->GetEntries(); \\???
Section 8.8 of text; anti-kT:
So we want something like-
for (Long64_t i=0;i<nentries;i++) {
for (Long64_t j=0; j<nentries;j++){
phii->GetEntry(i); \\getentry??
phij->GetEntry(j);
etai->GetEntry(i);
etaj->GetEntry(j);
pti->GetEntry(i);
ptj->GetEntry(j);
R=TMath::Sqrt((phii-phij)^2+(etai-etaj)^2);
ptp = TMath::(R^2)*min(pti^(-2),ptj^(-2));
ptp->Fill();
......
T->Print();
T->Write();
delete f;
}
}
**BE careful when calculating **
Histograms
-#of jets vs, #events w/ that number of jets
-number of particles in each jets, etc…
-total pT, eta, phi (see above) etc..
-for each jet calculate the size of the cone with say 90% of the energy
extract the files using previous hw…
“Let’s tell root to write this code for output.root.
Enter root. Then do the following commands.
TFile *f = new TFile(“output.root”);
f->ls();
t1->MakeClass(“MyClass”);
now exit root. You should see two new files in your area, MyClass.h and MyClass.C.
Let’s now add a histogram to this code, and fill it. We create the histogram in the “MyClass” creator, and fill it in the Loop method.
In MyClass.C, after the line “if(fChain ==0) return; add
TH1F* histo1 = new TH1F("histo1","e1",100,0.,200.);
Then, after the line ending with “nbytes += nb; add
histo1->Fill(e1[ientry]);
then, just before the last } add
histo1->Draw();
Now that we have the code, let’s tell root to use this code to analyze output.root
to look at ”
Jet CLuster.C
(.H for variable names- the header file: Many programming languages and other computer files have a directive, often called include (as well as copy and import), that causes the contents of a second file to be inserted into the original file. These included files are called copybooks or header files)
__________________________________
Darken Pythia tree
Lots of histograms!
?? ./pythiaTree.exe >& output.txt worked
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
2/26/2016
Goal: JetClustering Alg/ Geant Exercise
Jet Clustering-
From Last semester also see (ftp://root.cern.ch/root/doc/ROOTUsersGuideHTML/ch12s21.html )
“Let’s tell root to write this code for output.root.
Enter root. Then do the following commands.
TFile *f = new TFile(“output.root”);
f->ls();
Error received here: symbol tfile is not defined in current scope; interpreter error recovered
Solution:
t1->MakeClass(“MyClass”);
now exit root. You should see two new files in your area, MyClass.h and MyClass.C.
**Not from previous notes JetCluster.C/H imported as MyClass.C/h
#ifndef MyClass_h
#define MyClass_h
#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
// Header file for the classes stored in the TTree if any.
// Fixed size dimensions of array or collections stored in the TTree if any.
class MyClass {
public :
TTree *fChain; //!pointer to the analyzed TTree or TChain ?fChain??
Int_t fCurrent; //!current Tree number in a TChain
// Declaration of leaf types
vector<float> *pt;
vector<float> *eta;
vector<float> *phi;
vector<float> *mass;
// List of branches
TBranch *b_pt; //!
TBranch *b_eta; //!
TBranch *b_phi; //!
TBranch *b_mass; //!
MyClass(TTree *tree=0);
virtual ~MyClass();
virtual Int_t Cut(Long64_t entry);
virtual Int_t GetEntry(Long64_t entry);
virtual Long64_t LoadTree(Long64_t entry);
virtual void Init(TTree *tree);
virtual void Loop();
virtual Bool_t Notify();
Let’s now add a histogram to this code, and fill it. We create the histogram in the “MyClass” creator, and fill it in the Loop method.
In MyClass.C, after the line “if(fChain ==0) return; add
TH1F* histo1 = new TH1F("histo1","e1",100,0.,200.);
Then, after the line ending with “nbytes += nb; add
histo1->Fill(e1[ientry]);
then, just before the last } add
histo1->Draw();
Jet Clustering Code:
#include <iostream>
#include "TFile.h"
#include "TTree.h"
#include <fstream>
using namespace std;
void JetCluster(){
TFile *f=new TFile("for_jet_clustering_exercise.root"); // opens the root f\
ile
TTree *T=(TTree*)f->Get("tree"); // creates the TTree object
tr->Scan(); // prints the content on the screen
float pt,ptp,phi,mass; // create variables of the same type as the branches y\
ou want to access and new branch for parent particle momentum
TBranch *bpt = T->Branch("pt",&pt,"pt/F");
T->SetBranchAddress("pt",&pt);
T->SetBranchAddress("eta",&eta);
T->SetBranchAddress("phi",&eta);
T->SetBranchAddress("mass",&eta);
\\Need new tree so that values can be deleted/altered???
for (Long64_t i=0;i<nentries;) {
for (Long64_t j=1; j<nentries;){
phii= phi ->GetEntry(i);
phij= phi ->GetEntry(j);
etai= eta ->GetEntry(i);
etaj= eta ->GetEntry(j);
pti= pt ->GetEntry(i);
ptj= pt ->GetEntry(j);
R=TMath::Sqrt((phii-phij)^2+(etai-etaj)^2);
dij = TMath::(R^2)*min(pti^(-2),ptj^(-2));
diB= TMath::(pti)^(-2)
djB= TMath::(ptj)^(-2)
jet=
if mind==diB{
cout<<diB<<
jethist->Fill();
pt \\How to get rid of value??
}
if mind==diB{
cout<<diB<<
jethist->Fill();
pt \\Get rid of value
}
if mind==dij{
cout<<diB<<
pt->Fill \\Change value
}
}
T->Print();
T->Write();
delete f;
}
}
}
Now that we have the code, let’s tell root to use this code to analyze output.root
.L MyClass.C (this line pulls the code into memory)
MyClass m (this calls the creator for the class root wrote)
m.Loop() (this will pull the events one by one into memory, call the loop method for each event)
Miscellaneous:
renaming file in emacs?.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
3/01/2016
Goal: JetClustering Alg/ Geant Exercise
Instead of adding a branch to the tree directly(as below) , we “add friend”
__________________
Adding branch to existing tree
void upd() {
TFile *f = new TFile("hs.root","update");
TTree *T = (TTree*)f->Get("ntuple");
float px,py;
float pt;
TBranch *bpt = T->Branch("pt",&pt,"pt/F");
T->SetBranchAddress("px",&px);
T->SetBranchAddress("py",&py);
Long64_t nentries = T->GetEntries();
for (Long64_t i=0;i<nentries;i++) {
T->GetEntry(i);
pt = TMath::Sqrt(px*px+py*py);
bpt->Fill();
}
__________________
Add a friend that clones the data. Then manipulate the “friends”...
____________________________________________
https://root.cern.ch/doc/master/classTTree.html
Add a TFriendElement to the list of friends.
This function:
opens a file if filename is specified
reads a Tree with name treename from the file (current directory)
adds the Tree to the list of friends see other AddFriend functions
A TFriendElement TF describes a TTree object TF in a file. When a TFriendElement TF is added to the the list of friends of an existing TTree T, any variable from TF can be referenced in a query to T.
A tree keeps a list of friends. In the context of a tree (or a chain), friendship means unrestricted access to the friends data. In this way it is much like adding another branch to the tree without taking the risk of damaging it. To add a friend to the list, you can use the TTree::AddFriend method. The tree in the diagram below has two friends (friend_tree1 and friend_tree2) and now has access to the variables a,b,c,i,j,k,l and m.
The AddFriend method has two parameters, the first is the tree name and the second is the name of the ROOT file where the friend tree is saved. AddFriend automatically opens the friend file. If no file name is given, the tree called ft1 is assumed to be in the same file as the original tree.
tree.AddFriend("ft1","friendfile1.root"); If the friend tree has the same name as the original tree, you can give it an alias in the context of the friendship:
tree.AddFriend("tree1 = tree","friendfile1.root"); Once the tree has friends, we can use TTree::Draw as if the friend's variables were in the original tree. To specify which tree to use in the Draw method, use the syntax:
<treeName>.<branchname>.<varname>
If the variablename is enough to uniquely identify the variable, you can leave out the tree and/or branch name. For example, these commands generate a 3-d scatter plot of variable "var" in the TTree tree versus variable v1 in TTree ft1 versus variable v2 in TTree ft2.
tree.AddFriend("ft1","friendfile1.root");
tree.AddFriend("ft2","friendfile2.root");
tree.Draw("var:ft1.v1:ft2.v2");
The picture illustrates the access of the tree and its friends with a Draw command. When AddFriend is called, the ROOT file is automatically opened and the friend tree (ft1) is read into memory. The new friend (ft1) is added to the list of friends of tree. The number of entries in the friend must be equal or greater to the number of entries of the original tree. If the friend tree has fewer entries a warning is given and the missing entries are not included in the histogram. To retrieve the list of friends from a tree use TTree::GetListOfFriends. When the tree is written to file (TTree::Write), the friends list is saved with it. And when the tree is retrieved, the trees on the friends list are also retrieved and the friendship restored. When a tree is deleted, the elements of the friend list are also deleted. It is possible to declare a friend tree that has the same internal structure (same branches and leaves) as the original tree, and compare the same values by specifying the tree.
tree.Draw("var:ft1.var:ft2.var")
Reimplemented in TChain.
Definition at line 1184 of file TTree.cxx.
Referenced by TEventIterTree::GetTrees(), TChain::LoadTree(), and TTree::TClusterIterator::operator()()
_________________________________________
Also note https://root.cern.ch/doc/master/classTH1.html (creating histograms)
Creating histograms
Histograms are created by invoking one of the constructors, e.g.
TH1F *h1 = new TH1F("h1", "h1 title", 100, 0, 4.4);
TH2F *h2 = new TH2F("h2", "h2 title", 40, 0, 4, 30, -3, 3);
Histograms may also be created by:
calling the Clone function, see below
making a projection from a 2-D or 3-D histogram, see below
reading an histogram from a file
________________________
Instead of directly deleting values add a new branch that keeps track of “deleted”
Then if deleted
_________________________
Jet Clustering Code:
#include <iostream>
#include "TFile.h"
#include "TTree.h"
#include <fstream>
using namespace std;
void JetCluster(){
//Create Structure l
TBranch *jettree = T->Branch("pt",&pt,"pt/F");
T->SetBranchAddress("jetpt",&pt);
T->SetBranchAddress("jeteta",&eta);
T->SetBranchAddress("jetphi",&eta);
T->SetBranchAddress("jetmass",&eta);
//Need new tree so that values can be deleted/altered and clone the data into these friends
tree.addfriend(“jetarray”);
tree.addfriend(“jetarrayeta”);
tree.addfriend(“jetarraypt”);
for (Long64_t i=0;i<nentries;) {
for (Long64_t j=1; j<nentries;){
phii= phi ->GetEntry(i);
phij= phi ->GetEntry(j);
etai= eta ->GetEntry(i);
etaj= eta ->GetEntry(j);
pti= pt ->GetEntry(i);
ptj= pt ->GetEntry(j);
R=TMath::Sqrt((phii-phij)^2+(etai-etaj)^2);
dij = TMath::(R^2)*min(pti^(-2),ptj^(-2));
diB= TMath::(pti)^(-2)
djB= TMath::(ptj)^(-2)
jet=
if mind==diB{
cout<<diB<<
jethist->Fill();
pt \\How to get rid of value??
}
if mind==diB{
cout<<diB<<
jettree->Fill();
pt \\Get rid of value
}
if mind==dij{
cout<<diB<<
tree->
}
}
T->Print();
T->Write();
delete f;
}
}
}
Make a list then easy access to
Makw a stricute (Struct( a list of pointers to elements in original array
Struct Practice:
added to code from HW in last semester
#include "TCanvas.h"
#include <TRandom.h>
void roottest() {
TCanvas *c1 = new TCanvas("c1","demo",200,10,700,500);
TCanvas *c2 = new TCanvas("c2","demo2",200,10,700,500);
c1->SetFillColor(42);
c2->SetFillColor(42);
TRandom r;
gRandom->SetSeed();
struct practice {
int number;
float value1;
float value2;
} particle[500];
TH1F *histo1 = new TH1F("histo1","s",50,0.,50.);
TH1F *histo2 = new TH1F("histo2","s",50,0.,50.);
histo1->SetMarkerStyle(21);
for (int i=0;i<500;i++) {
float p1=r.Gaus(10,2);
histo1->Fill(p1);
}
histo1->Draw("");
c1->SaveAs("c1.gif");
histo2->SetMarkerStyle(21);
for (int i=0;i<500;i++) {
particle[i].value1 = i*i;
particle[i].number = i;
}
for (int i=0; i<500;i++) {
float p2= particle[i].value1;
histo2->Fill(p2);
}
histo2->Draw("");
c2->SaveAs("c2.gif");
}
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
3/07/2016
Struct Practice:
added to code from HW in last semester
#include "TCanvas.h"
#include <TRandom.h>
void roottest() {
TCanvas *c1 = new TCanvas("c1","demo",200,10,700,500);
TCanvas *c2 = new TCanvas("c2","demo2",200,10,700,500);
c1->SetFillColor(42);
c2->SetFillColor(42);
TRandom r;
gRandom->SetSeed();
struct practice {
int number;
float value1;
float value2;
} particle[500];
TH1F *histo1 = new TH1F("histo1","s",50,0.,50.);
TH1F *histo2 = new TH1F("histo2","s",50,0.,50.);
histo1->SetMarkerStyle(21);
for (int i=0;i<500;i++) {
float p1=r.Gaus(10,2);
histo1->Fill(p1);
}
histo1->Draw("");
c1->SaveAs("c1.gif");
histo2->SetMarkerStyle(21);
for (int i=0;i<500;i++) {
particle[i].value1 = i*i;
particle[i].number = i;
}
for (int i=0; i<500;i++) {
float p2= particle[i].value1;
histo2->Fill(p2);
}
histo2->Draw("");
c2->SaveAs("c2.gif");
}
Works :) To-do: add to jet clustering code
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
3/19/2016
Goal: Double check formulas for new particle
#define MyClass_cxx
#include "MyClass.h"
#include <TH2.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <TMath.h>
void MyClass::Loop()
{
if (fChain == 0) return;
Long64_t nentries = fChain->GetEntriesFast();
Long64_t nbytes = 0, nb = 0;
for (Long64_t jentry=0; jentry<nentries;jentry++) {
Long64_t ientry = LoadTree(jentry);
if (ientry < 0) break;
nb = fChain->GetEntry(jentry); nbytes += nb;
// if (Cut(ientry) < 0) continue;
}
struct evaluatejet {
int number;
float phip;
float etap;
float ptp;
float massp;
} jet[nentries];
float phii,phij,etai,etaj,pti,ptj,massi,massj;
Double_t R,dij,diB,djB,mind, combp, combpt, thetai, thetaj;
TBranch *jetp = tree->Branch("pt",&pt,"pt/F");
tree->SetBranchAddress("jetptp",&pt);
tree->SetBranchAddress("jetetap",&eta);
tree->SetBranchAddress("jetphip",&eta);
tree->SetBranchAddress("jetmassp",&eta);
TH1F *jetphip = new TH1F("jetphip","phi",-4,0.,4);
TH1F *jeteta = new TH1F("jeteta","eta", -4,0.,4);
TH1F *jetptp = new TH1F("jetptp","pt",0,0.,500);
TH1F *jetp = new TH1F("jetp","p",0,0,500);
for (Long64_t k=0;k<nentries;k++) {
jet[k].number = k;
jet[k].phip = phi->GetEntry(k);
jet[k].etap = eta->GetEntry(k);
jet[k].ptp = pt->GetEntry(k);
jet[k].massp = mass->GetEntry(k);
}
int stoploop =nentries;
// while (jetempty==false){//only evaluate whe our original strcut is none\
mpy??
for (Long64_t i=0;i<stoploop;i++) {
for (Long64_t j=i+1; j<stoploop;j++){
phii= jet[i].phip;
phij= jet[j].phip;
etai= jet[i].etap;
etaj= jet[j].etap;
pti= jet[i].ptp;
ptj= jet[j].ptp;
massi=jet[i].massp;
massj=jet[j].massp;
R=TMath::Sqrt((phii-phij)^2+(etai-etaj)^2);
dij=TMath::(R^2)*min(pti^(-2),ptj^(-2));
diB=TMath::(pti)^(-2);
djB=TMath::(ptj)^(-2);
mind=TMath::Min(dij,diB,djB);
//if the min is i with beam:
if (mind==diB){
jetp->Fill(i));
jetphip->Fill(jet[i].phip);
jetptp->Fill(jet[i].ptp);
jetetap->Fill(jet[i].etap);
jetmassp->Fill(jet[i].massp);
//Get rid of particle from struct
for (Long64_t k=i;k<stoploop;k++){
jet[k].phip=jet[k+1].phip;
jet[k].etap=jet[k+1].etap;
jet[k].ptp=jet[k+1].ptp;
jet[k].massp=jet[k+1].massp;
}
stoploop = stoploop-1;
//if the min is j with beam
if (mind==djB){
jetp->Fill(j));
jetphip->Fill(jet[j].phip);
jetptp->Fill(jet[j].ptp);
jetetap->Fill(jet[j].etap);
jetmassp->Fill(jet[j].massp);
//Get rid of particle from struct
for (Long64_t k=j;k<stoploop;k++){
jet[k].phip=jet[k+1].phip;
jet[k].etap=jet[k+1].etap;
jet[k].ptp=jet[k+1].ptp;
jet[k].massp=jet[k+1].massp;
}
stoploop = stoploop-1;
}
//if the min is distance between particles
if (mind==dij){
//make the ith particle the combined particle
thetai=TMath::2*(ATan(E(-etai)));
thetaj=TMath::2*(ATan(E(-etaj)));
ppi=TMath::pti/Sin(thetai);
ppj=TMath::ptj/Sin(thetaj);
combp=TMath::Sqrt((pti*Cos(phii)+ptj*Cos(phij))^2+(pti*Sin(phii)+pt\
j*Sin(phij))^2+(ppi*Cos(thetai)+ppj*Cos(thetaj))^2);
combpx=TMath::ppi*Sin(thetai)*Cos(phii)+ptj*Sin(thetaj)*Cos(phij);
combpy=TMath::ppi*Sin(thetai)*Cos(phii)+ptj*Sin(thetaj)*Sin(phij);
combpt=TMath::Sqrt(combpx^2+combpy^2);
Add method to constantly change the i value for which the outermost loop stops.
Current error message:
root [0] .L MyClass.C
Error: Missing closing brace for the block opened around line 82.
Error: Unexpected end of file (G__exec_statement()) MyClass.C:189:
*** Interpreter error recovered ***
root [1]
http://www-cdf.fnal.gov/physics/new/qcd/ue_escan/etaphi.html
To-do: Phi wrap solution to use arccos, arcsin??
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
3/21/2016
Last left off draft
int stoploop =nentries;
// while (jetempty==false){//only evaluate whe our original strcut is nonempy??
for (Long64_t i=0;i<stoploop;i++){
for (Long64_t j=i+1; j<stoploop;j++){//start j=i accounts for all particles??
phii= jet[i].phip;
phij= jet[j].phip;
etai= jet[i].etap;
etaj= jet[j].etap;
pti= jet[i].ptp;
ptj= jet[j].ptp;
massi=jet[i].massp;
massj=jet[j].massp;
R=TMath::Sqrt((phii-phij)^2+(etai-etaj)^2); //ERROR: Tmath?
dij=TMath::(R^2)*min(pti^(-2),ptj^(-2));
diB=TMath::(pti)^(-2);
djB=TMath::(ptj)^(-2);
mind=TMath::Min(dij,diB,djB);
//if the min is i with beam:
if (mind==diB){
jetp->Fill(i));
jetphip->Fill(jet[i].phip);
jetptp->Fill(jet[i].ptp);
jetetap->Fill(jet[i].etap);
jetmassp->Fill(jet[i].massp);
//Get rid of particle from struct
for (Long64_t k=i;k<stoploop;k++){
jet[k].phip=jet[k+1].phip;
jet[k].etap=jet[k+1].etap;
jet[k].ptp=jet[k+1].ptp;
jet[k].massp=jet[k+1].massp;
}
stoploop = stoploop-1;
//jet[i].phip=[];
//jet[i].etap=[];
//jet[i].ptp=[];
//Change i?
}
//if the min is j with beam
if (mind==djB){
jetp->Fill(j));
jetphip->Fill(jet[j].phip);
jetptp->Fill(jet[j].ptp);
jetetap->Fill(jet[j].etap);
jetmassp->Fill(jet[j].massp);
//Get rid of particle from struct
for (Long64_t k=j;k<stoploop;k++){
jet[k].phip=jet[k+1].phip;
jet[k].etap=jet[k+1].etap;
jet[k].ptp=jet[k+1].ptp;
jet[k].massp=jet[k+1].massp;
}
stoploop = stoploop-1;
// jet[j].phip=[];
// jet[j].etap=[];
// jet[j].ptp=[];
}
//if the min is distance between particles
if (mind==dij){
//make the ith particle the combined particle
thetai=TMath::2*(ATan(E(-etai)));
thetaj=TMath::2*(ATan(E(-etaj)));
ppi=TMath::pti/Sin(thetai);
ppj=TMath::ptj/Sin(thetaj);
combp=TMath::Sqrt((pti*Cos(phii)+ptj*Cos(phij))^2+(pti*Sin(phii)+ptj*Sin(phij))^2+(ppi*Cos(thetai)+ppj*Cos(thetaj))^2);
combpx=TMath::ppi*Sin(thetai)*Cos(phii)+ptj*Sin(thetaj)*Cos(phij);
combpy=TMath::ppi*Sin(thetai)*Cos(phii)+ptj*Sin(thetaj)*Sin(phij);
combpt=TMath::Sqrt(combpx^2+combpy^2);
combtheta=TMath::ASin(combpt/combp);
combeta=TMath::-LogE(Tan(combtheta/2);
jet[i].ptp=combpt;
jet[i].massp=TMath::massi+massj;
jet[i].etap=combeta;
jet[i].phip=TMath::ASin(combpx/combpt);
//shift everything down from the emptied jth spot
for (Long64_t k=j;k<stoploop;k++){
jet[k].phip=jet[k+1].phip;
jet[k].etap=jet[k+1].etap;
jet[k].ptp=jet[k+1].ptp;
jet[k].massp=jet[k+1].massp;
}
stoploop = stoploop-1;
}
//jet[i].phip=[];
//jet[j].phip=[];
//jet[i].ptp=[];
//jet[j].ptp=[];
//jet[i].etap=[];
//jet[j].etap=[];
//add a new combined particle in the ith spot to be evaluated with the other particles
}//for j
Moving a file back after a pull (same file name will automatically replace)
http://www.cplusplus.com/reference/list/list/list/
Edit on github → git pull when first back into gittest , then mv MyClass.C to my jetcluster directory to be able to run in root.
(leanred shortcuts)
Find and replace
Ome shortcut c-s
C- space, c-w
C-r in root prompt, then start typing a string you can find the last command
To comment out large sections of code: /* */
ERROR fixes:
TMath not necessary… use regular c++ codes
“Entry from header file error! When trying to load everything above Loop()
(entires not used just means none of my for loops have been excuted?)
James’ code works :) For next time consider:
Angle betwween farthest particles in a jet, what are the particle, depend on energy?? Typical number of jets with pt above some number
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
3/31/2016
Talk : hadronic shower v electronmagic(rgular, symmertic)
Chevsh ..light
Fermi bubble http://phys.org/news/2014-08-extensive-analysis-fermi-defy-explanation.html
In November 2010, it was announced two gamma-ray and X-ray bubbles were detected around Earth's galaxy, the Milky Way.[39] The bubbles, named Fermi Bubbles, extend about 25 thousand light years distant above and below the center of the galaxy.[39] The galaxy's diffuse gamma-ray fog hampered prior observations, but the discovery team led by D. Finkbeiner, building on research by G. Dobler, worked around this problem.[39]
X-ray/gamma-ray bubbles of Earth's Galaxy, the Milky Way. (Art)
Using data from NASA's Fermi Gamma-ray Space Telescope, scientists have discovered a gigantic, mysterious structure in our galaxy. This never-before-seen feature looks like a pair of bubbles extending above and below our galaxy's center.
Dark matter (mass vs light)
(see Eno group notes)
Anisotropy: definition from wiki ?? Anisotropy /ˌænaɪˈsɒtrəpi/ is the property of being directionally dependent, as opposed to isotropy, which implies identical properties in all directions. It can be defined as a difference, when measured along different axes, in a material's physical or mechanical properties (absorbance, refractive index, conductivity, tensile strength, etc.) An example of anisotropy is the light coming through a polarizer. Another is wood, which is easier to split along its grain than against it.
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/01/2016
Goals: Either try to fix my code to create graphs from there, or pull working code and try to understand variable named there.
Genereal outline of code:
For each event (nbytes, nb...generated via “MyClass”){
Create an array of particles in the event{
For each particle{
For each other particle{
Calulate pt, phi, eta, mass
di,j=min(pTi-2,pTj-2)Rij2R2 compare to diB=pTi-2
…
If diB min {
Erase particle fill histo}
If djB min{
‘’’’}
If dij min{
Erase particles
Add combined particle //does order for this matter}
}
}
}
}
Current errors in my code:
Accidentally left out a pushback line: Error: illegal pointer to class object jet[k] 0x0 10143 MyClass.C:101:
*** Interpreter error recovered ***
/home/momokanw/PhysHonr269l/CMSSW_5_3_30/jetclusteringexercise/./MyClass.C:101:34: error: 'class std::vector<evaluatejet>' has no member named 'phip'
Things to graph/study
Angle between farthest particles in a jet,
Before added to a jet note the new phi value and what are the particle ,
depend on energy??
Plot the energies of each jet particle filled in on histogram with
From literature
Typical number of jets with pt above some number
http://www.pa.msu.edu/~huston/tev4lhc/hadonization_tev4lhc.pdf
To-do
Add a log scale plot
How many jets above 50 GeV distrbution
X axis is number of particles, y axis is number of jets
Fixes found on Wednesday Meeting
Phi Wrap-
http://www.cplusplus.com/reference/cmath/atan2/
.______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/09/2016
Goal: Add a log scale plot, How many jets above 50 GeV distribution (X axis is number of particles, y axis is number of jets), Angle between farthest particles in a jet, Plot the energies of each jet particle filled in on histogram with
Does root use C++ 11?? yes
Log scale
https://root.cern.ch/phpBB3/viewtopic.php?t=5472
TPad *p1 = (TPad *)(c1->cd(1)) ;
p1->SetLogy();
How many jets above 50 GeV?
Phi Angles
With each comparison we want (is i/j=min phi, but everytime two particles are comboned we want to calculate the difference between the two particles (phii-phij) then see if its greater than our “widestphi” of either particle)
Scatter plot (Energy vs widestphi): https://root.cern.ch/phpBB3/viewtopic.php?t=3994
Simply create a TGraph object
Pt number of particles
CODE: SELECT ALL
TGraph *g = new TGraph(n,x,y); //where x , y are 2 arrays of n points
and draw this graph with option "p"
CODE: SELECT ALL
g->Draw("p");
ERRORS
Myclass.C:285:72: error: 'Particle' was not declared in this scope
g++: error: /home/momokanw/PhysHonr269l/CMSSW_5_3_30/jetclusteringexercise/Jet-Clustering/Myclass_C_ACLiC_dict.o: No such file or directory
Dark energy
Two down qaurks two dark quarks
Glu
Down quark vs dark quark jets
Gluon radiation (lower pt)
We also want to run the events and make histos along the way
**from “Emerging Jets paper Model a and model b have different lifetimes
***we wanted to look at number of jets, not actual pT value**** fix error, email graph
Particle ID’s :)
Pythia has its own jetcluster finder aSlowJet//power , radius, min jetpt, just stable particeles?, mass assumed for particles (pion), then aslowjet.analyze
pythia.mode(Main…) reading from card file.cmnd (modelA),
Compare jets from down quarks to dark quarks (pythia goes and numbers daughters sequentially)
To figure out how to discern various dark ve down (qv<- v means hidden valley= dark)
Sometimes to debug you for to PYTHIA event listing. Pt spectrum will be different but what else (# of particles depend on jet pt?? So do things as a function of pt, avg number of particles in jet vs pt,...)
Overlaying two plots/histograms (normalized to unit area)
FIX ERROR in pt 1000? Two high?
Creating graph of widest phi
struct AllParticles
{
float pt;
float phi;
float eta;
float mass;
float energy;
float widestphi;
int wphifirst;
int wphisecond;
};
//Create Vectors of Struct type
vector <AllParticles> Particles;
vector <AllParticles> Jets;
vector <AllParticles> HighEnergyJets;
vector <AllParticles> OriginalParticles;
______________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/12/2016
Goal: New wphi,
Widestphi, vs energy
Send email about mix up (pt expected, the number of jets with certain pt, eta of jets with certain pt, literature says?)
Give outline for graphs plan for
Fixed widest phi calculation: insert code
Output: check
Now to add scatter plot
Simply create a TGraph object
Pt number of particles
TGraph *g = new TGraph(n,x,y); //where x , y are 2 arrays of n points, here I chose x=
http://www.cplusplus.com/doc/tutorial/arrays/
and draw this graph with option "p"
g->Draw("p");
ERROR?...”p” not working “AC*”
Or maybe http://www.phys.ufl.edu/~acosta/root_guide.pdf
//Scatter Plots
TGraph *g = new TGraph(scattern,jetptarray,energyarray);
https://root.cern.ch/doc/master/classTGraph.html
Line 264
And why clear after every event??
TGraph *g = new TGraph(scattern,jetptarray,energyarray);
int * result = new int[size1 + size2];
copy(arr1, arr1 + size1, result);
copy(arr2, arr2 + size2, result + size1);
http://stackoverflow.com/questions/12791266/c-concatenate-two-int-arrays-into-one-larger-array
http://www.cplusplus.com/reference/array/array/size/
ERROR:
After changing the range and moving Tgraph to after the arrays are made...
To get rid of lines???
...now for multigraph (to overlay plots)???
https://root.cern.ch/root/roottalk/roottalk98/2253.html
.______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/14/2016
Speaker-
Dirac solutions (relativity and quantum emerge), Barbar experiment (rate of oscillation, ratio), (accelerator (linear tungston filament, linear, …)
How much NP is allowed?(new physis, higher energy new physics has less impact on SM borrow money example) 1000 TeV!!!<-> c=1 (but more complex…?) impact of SUSY parameter space…
Lepton universality is challenged! (B mesons decay ito charm meson (cd) vs
Also, hardware upgrades (radiation damage) (replacing tracking system for better adjustment to the quickly occurring collisions
Goal:
Notes
Notes
.______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/19/2016
Goal: Fix Scatter Plots, look at dark energy code
Scatter plot try TH2F- from darken code “hpTdqdq71” is filled as Fill(x,y)
TH2F *name = new TH2F(“name”,”Title”, 500,0.,1000.,500,0.,1000.);
Try with QCD code:
Impact parameter
Properties of jets dark jet vs QCD jets
Pythia xprod, yporod, pt → impact parameter
TO-DO
Pythia prod point, phi pt
Compare the jetcluster to DOWN QUARK jets ( “slow jet algorithm”) different range of pt’s jets with high pt have more tracks )
Geant- goes through the particle interactions to match tracks (geometry) then since we are using simulators, we know exactly which particles did create the signals
Pt multiplicity impact parameter , see how these change with mass of mediator(4900001), lifetime of pion (4900113?)
Link to CMS pretty plots
Overlay plots !!
Ctrl-s to search
“.back()? Add the last added particle
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/21/2016
Goal
use pythia to understand better the characteristics of jets: how do their properties depend on the initial parton that created the jet (u,d,c,s,b,gluon) and the jet energy. Things to consider might be the particle multiplicity in the jet, the size of the jet in eta-phi space, the impact parameter of the particles in the jet, the types of particles in the jet. How do different jet clustering algorithms affect jet properties?
Calculate mutiplicity of jet, size of the jets in eta phi-space
Widestphi?-- something else in eta-phi space(cone radius? http://home.thep.lu.se/Pythia/pythia82html/EventAnalysis.html )?
Closest approach?
Model A
First copy section form tracking code, then replace genparticle with dq1…?
px = (*pt)[wh] * cos ( (*phi)[wh] );
py = (*pt)[wh] * sin ( (*phi)[wh] );
pz = (*pt)[wh] * sinh( (*eta)[wh] )
.
______________________________________________________________________________________________________________________________________________________________________________________________________________________
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/22/2016
Goal: figure out final plots of least approach, apply to QCD,
Figure out
Impact parameter:hd0HV
From junk.cmnd
! 1) Settings used in the main program.
Main:numberOfEvents = 1000 ! number of events to generate
! 2) Settings related to output in init(), next() and stat().
Init:showChangedSettings = on ! list changed settings
Init:showChangedParticleData = off ! list changed particle data
Next:numberCount = 100 ! print message every n events
Next:numberShowInfo = 5 ! print event information n times
Next:numberShowProcess = 5 ! print process record n times
Next:numberShowEvent = 5 ! print event record n times
! Detector geometry
ParticleDecays:xyMax = 30000 ! in mm/c
ParticleDecays:zMax = 30000 ! in mm/c
ParticleDecays:limitCylinder = on ! yes
! Process selection
HiddenValley:gg2DvDvbar = on ! gg fusion
HiddenValley:qqbar2DvDvbar = on ! qqbar fusion
! Settings for running coupling
HiddenValley:alphaHVrun = on ! Let it run
HiddenValley:Ngauge = 3 ! Number of dark QCD colours
HiddenValley:nfl = 7 ! # flavours used for the running!
HiddenValley:FSR = on
HiddenValley:fragment = on
! Mediator settings
HiddenValley:spinFv = 0 ! Spin of bi-fundamental res.
4900001:m0 = 1000 ! Mass of bi-fundamental resonance
4900001:mWidth = 10 ! Width of bi-fundamental resonance
! The following is required due to a bug in v8183, fixed in 8185 and later
4900001:isResonance = on
4900001:mayDecay = on
4900001:0:bRatio = 1
4900001:0:meMode = 102
! Model settings
HiddenValley:LambdaHV=10
HiddenValley:pTminFSR = 11.
! Settings for the dark sector - hadrons etc. Model A
4900101:m0 = 10 ! dark quark mass = LambdaHV
4900111:m0 = 5 ! dark scalar (pion) mass
4900111:tau0 = 150 ! dark scalar (pion) lifetime (in mm)
4900113:m0 = 20 ! dark vector (rho) mass
! Settings for dark meson decays. Best don?t mess with these
4900111:0:all on 1.0 102 1 -1 ! dark pion decay to down quarks
4900113:0:all on 0.999 102 4900111 4900111 ! dark vector to dark pions 99.9%
4900113:addchannel on 0.001 102 1 -1 ! dark vector to down quarks 0.1%
modelA:
! 1) Settings used in the main program.
Main:numberOfEvents = 1000 ! number of events to generate
! 2) Settings related to output in init(), next() and stat().
Init:showChangedSettings = on ! list changed settings
Init:showChangedParticleData = off ! list changed particle data
Next:numberCount = 100 ! print message every n events
Next:numberShowInfo = 2 ! print event information n times
Next:numberShowProcess = 2 ! print process record n times
Next:numberShowEvent = 2 ! print event record n times
! Detector geometry
ParticleDecays:xyMax = 30000 ! in mm/c
ParticleDecays:zMax = 30000 ! in mm/c
ParticleDecays:limitCylinder = on ! yes
! Process selection
HiddenValley:gg2DvDvbar = on ! gg fusion
HiddenValley:qqbar2DvDvbar = on ! qqbar fusion
! Settings for running coupling
HiddenValley:alphaHVrun = on ! Let it run
HiddenValley:Ngauge = 3 ! Number of dark QCD colours
HiddenValley:nfl = 7 ! # flavours used for the running!
HiddenValley:FSR = on
HiddenValley:fragment = on
! Mediator settings
HiddenValley:spinFv = 0 ! Spin of bi-fundamental res.
4900001:m0 = 1000 ! Mass of bi-fundamental resonance
4900001:mWidth = 10 ! Width of bi-fundamental resonance
! The following is required due to a bug in v8183, fixed in 8185 and later
4900001:isResonance = on
4900001:mayDecay = on
4900001:0:bRatio = 1
4900001:0:meMode = 102
! Model settings
HiddenValley:LambdaHV=10.
HiddenValley:pTminFSR = 11.
! Settings for the dark sector - hadrons etc. Model A
4900101:m0 = 10 ! dark quark mass = LambdaHV
4900111:m0 = 5 ! dark scalar (pion) mass
4900111:tau0 = 150 ! dark scalar (pion) lifetime (in mm)
4900113:m0 = 20 ! dark vector (rho) mass
! Settings for dark meson decays. Best don?t mess with these
4900111:0:all on 1.0 102 1 -1 ! dark pion decay to down quarks
4900113:0:all on 0.999 102 4900111 4900111 ! dark vector to dark pions 99.9%
4900113:addchannel on 0.001 102 1 -1 ! dark vector to down quarks 0.1%
Yields the same graphs as above
Model B
To find stable daughters of dark Pions/regular QCD , we want to loop over all stable particles and select those which have R<0.4 of a dark quark/down quark respectively
Then compare impact parameters (add to line 242?)
Given a particle event[i] in an event iEvent, to look at it’s daughters we want the main particle’s (event[i]’s) # of it’s first and last daughter particle(event[i].daughter2()-event[i].daughter1()?)
Therefore we want creation location of daughter particles of the dark pion
To make sure I understand the Should I lok at all HV particles and calculate the distcance of clostest approach of all stable daughter particles (
if pythia.event[i].id==darkquark id
Rdq = pythia.event[i].xProd()
daughter2-daughter1
is not stable //dark pion would be a not stable daughter of the dark quarks
count number of such not stable daughters
daughter2-daughter1
is stable
if sqrt(xprod^2+yProd^2)-xProd<0.4
(fill closest approach)
______________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
4/28/2016
Talk-
Probability density bates thm
-cut-based
-multivariable nna
-convolution? to get a 1-d variable y:RDR(discrimination function)
Neyman Pearson
Fisher’s linear discriminant (no correlation between variables)
(Projected-likelihood (Bayes))
Artificial Neural network
…
Decision tree (machine-learned cuts)
______________________________________________________________________________________________________________________________________________________________________________________________________________________
.
Mayowa Omokanwaye
PHYSHONR 269L, Spring 2016
Logbook
5/03/2016
Goal: Clean up some plots.
Cone Radius? (http://home.thep.lu.se/Pythia/pythia82html/EventAnalysis.html )
Altering the dark pion lifetime in Model A
Higher lifetime (350 mm for pion)
highe r lifetime (500 mm for pion)
Altering the dark pion lifetime in Model B
We also checked that these numbers make sense considering the theory of the cross section. Looking at the multiplicity of particles within each of the jets. There is no stark differences within the particle multiplicity other than sheer number size (see Figure 8). In fact the number of dark pions generated...
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
References
https://help.github.com/articles/
Root manual
https://root.cern.ch/doc/v606/classTTree.html
ftp://root.cern.ch/root/doc/ROOTUsersGuideHTML/ch12s21.html
Pythia manual
http://home.thep.lu.se/~torbjorn/pythia81html/Welcome.html
http://home.thep.lu.se/~torbjorn/pythia81html/ParticleProperties.html
http://home.thep.lu.se/Pythia/pythia82php/HiddenValleyProcesses.php?filepath=files/
http://pdg.lbl.gov/2002/montecarlorpp.pdf
http://home.thep.lu.se/Pythia/pythia82php/HiddenValleyProcesses.php?filepath=files/
“A Brief Introduction to Pythia 8.2” Torbj¨orn Sj¨ostrand, Stephen Mrenna, Peter Skands
http://home.thep.lu.se/~torbjorn/pythia8/pythia8100.pdf
https://sites.google.com/site/honr268neno/potential-projects
https://sites.google.com/a/physics.umd.edu/physhonr268n/exercises#TOC-Root-Exercises
Githubs
https://github.com/mayowao/RP1/blob/master/Myclass.C
https://github.com/saraheno/darkgen
https://github.com/saraheno/tracks/blob/master/SCETracks/plugins/SCETracks.cc