2/9 - 2/15
Met with Dr. Agashe and with Sungwoo Hong. Received directions on how to download and get started with Madgraph, and learned the basics of their research.
They are investigating the viability of a model of physics which incorporates a finite, compact fourth spatial dimension into the familiar dimensions of spacetime. The fact that this dimension is compact causes particles to have quantized momenta, which causes distinct energy levels of particles to appear (related to 1/L. We talked about this effect potentially producing a higher-energy Z or W boson, and how we would distinguish between this higher-energy boson and its more commonly observed counterparts.
It sounds like we are going to use Madgraph to run analyses on well-known channels of Standard Model interactions just to familiarize ourselves with the process. After successfully doing this twice, we will move into the collisions where the higher-energy bosons are produced.
2/16 - 2/23
Met with Sungwoo, got madgraph to work on the cluster. Some notes on problems we encountered and how we solved them:
Error message when trying to set up madgraph that mentions lack of a Fortran compiler
Make sure madgraph is entirely contained in the CMSSW_X_Y_Z directory
Make sure to run cmsenv in this directory before running madgraph
Can't open .lhe.gz files
.lhe.gz files are actually compressed. Unzip them with the following command:
zcat {gz file} > {new file name}
Now, the file should be a .lhe file and can be opened with emacs or vi
Can't open html files
When you first connect to hepcms.umd.edu, use the tags -X and -Y like this:
ssh -X -Y hon-antonacci@hepcms.umd.edu
Then, to view the file, try firefox `pwd`/{file name}
Note that those are backticks surrounding pwd, not apostrophes
Vi is hard, and it is the default editor for madgraph cards
There are actually two modes in vi. In one mode, you can move around the text and type commands, but cannot simply type into the text like you might assume you can. The other mode is called insertion mode, and it allows you to edit text directly.
Vi automatically starts in command mode. To switch from command to insertion mode, simply enter i
To switch back to command mode, press the escape key
The only commands you really need to know are
:q for quit (don't forget the colon)
:q! for quit without saving
vi supposedly won't let you quit without saving if you've made changes and use :q, but I haven't tested this
:w for write to file (save)
:qw for write and quit
Alternatively, you can change the default editor to emacs in the mg5_configuration.txt file in the input directory
Below this point, things are arranged by topic and not date
General usage of madgraph:
cd to MG5_aMC_v2_5_2, cmsenv and setenv, ./bin/mg5_aMC
See link 3 below
If using a model beyond or besides the standard model, use import model <new model name>
Use generate and add process to select which processes to generate, define multiparticle if necessary
Create an output file (output <filename>)
If you have already created a file and specified these fields, you can skip these first few things. Setting an output file that already exists will delete that file and replace it with new data.
If running interactively, do launch <filename>. If planning to run on condor, exit madgraph and do not launch anything. The following steps are for interactive runs only. You probably shouldn't run something interactively if you plan on generating more than a few thousand events.
Specify what to run
For some reason, it says that we do not have an analysis tool interfaced to madgraph
Then, it will allow you to make edits to cards. Here I have summarized what lies in each:
Param_card: Information for decay, Yukawa, standard model inputs, and mass
Run_card: Number of unweighted events, the random seed, beam polarization, and lots of cut options
You can adjust how many events are generated here near the top. The cut options are useful for slimming data before trying to analyze it. This is important when using programs like mathematica, which has a maximum of about 1 million events.
Now, there should be a run_01 file in the Events folder of the file you launched
You can view every generated event at the parton level by opening the unweighted_events.lhe.gz file in here
Each event starts with a marker <event> and ends with a similar marker
Each particle gets its own row
For a full description of what these numbers mean, see below
Also, if you go to the HTML file in the file you launched, you can open info.html to see Feynman diagrams
What those numbers mean
(I didn't make this image, see source below)
PDG codes tell us what type of particle the row represents. A full list of PDG codes are available at link 5 below
Status is -1 for an initial particle, 1 for a particle, and 2 for an intermediate resonance
Parents displays source of particle, where the number is the row number (from top) of the parent particle
0 represents an initial particle
4-vector, mass, and spin are self-explanatory
I also haven't seen the top line in any of my events yet, so I assume the person who produced this diagram was doing something special
Using Condor with Madgraph
Create the output folder interactively, but be careful not to launch it
Create an sh file that will be run by Condor. Here is a simple example.
You also need to create a jdl file which tells Condor what to run and where to output information about the process. One of my jdl files is included in the above simple example. The link also addresses an error that frequently came up.
Mathematica
We used Wolfram Mathematica 11.0 Student Edition, provided through Terpware, to apply cuts to data
Useful functions provided in this file by Sungwoo Hong
After loading events, we determined weights based on cross-sections and luminosity
Created text files that stored variables and weights, which could then be graphed
Use these graphs to determine appropriate cuts
My final version, used for p p > KK gluon > j j j, can be found here
I added the ability to count how many events would survive cuts before actually creating the files to store the data, as the file creation and upkeep is the part which takes longest for the code.
It became necessary to generate more relevant data in madgraph in order to actually be able to draw conclusions from analysis. This is due to speed and data size limitations in madgraph.
Setting preselection cuts in Madgraph
In the run card for a process, set cut_decays to true (around line 106)
This extends the cuts to decay products, which is important for good analysis
Beneath this is a plethora of values, which the user can set to whatever is needed to shave away unnecessary background
IMPORTANT: Any cuts applied here must be reapplied in data analysis (for us, in madgraph). In fact, they should be reapplied a bit stronger than they were applied in madgraph. So, in designing madgraph cuts, it is best to aim a bit less strict than the actual intended cutoff.
These take a bit longer to complete, so it is usually good to know how many events will be needed instead of guessing. One method we found was to generate only 100 or 1,000 events with a desired set of madgraph cuts, then use the cross-section to determine the approximate number needed to keep a 1-to-1 relationship between simulated events and hypothetical events. We calculated approximate number needed by
N = <cross-section> * <Luminosity>
We used a luminosity of 300 fb-1 for KK gluon processes and 3000 fb-1 for KK photon processes
Specifics of our work
Processes used:
P P > AKK (KK photon) > a j j
With background P P > a j j
P P > GKK (KK gluon) > j a a
With background P P > j a a
P P > GKK > j j j
With background P P > j j j
Background events are generated with the standard model, signal events are generated with the new model above the event in the above list. There are actually more background processes, but these are the most prominent ones. For instance, photons and jets can be misidentified as one another, more jets may appear, or fewer jets may appear.
In the end, we are looking to get a significance of 5 sigma. Significance is calculated by:
<signal events> / SQRT( <signal events> + <background events> )
We obtained sigma values of 5 for GKK > j a a, about 2.1 for AKK > a j j, and about 3.7 for GKK > j j j. To see the cuts and sigma values the original group got, go to the paper at the bottom (source 6).
Note that it is good to generate more events if any set of cuts eliminates nearly all of the background. Even if each event's weight is brought to less than 1, there may be variance unaccounted for.
Our final paper can be found here (to be updated once the journal thing works out).
----------------------------------------------------------------------------------
Overview of extra-dimensional related theory
Kaluza-Klein was one of the first models to propose an extra dimension to help explain the hierarchy problem
Hierarchy problem here refers to the discrepancy in strength between gravity and the weak force, which is a problem because of the concept of naturalness
This extra dimension is a dimension of space. Why haven't we noticed it?
It is a compact and tiny dimension
How does this solve the hierarchy problem?
Gravitational fields would need to spread in 3 dimensions on small scales rather than in two, diminishing our estimates of the gravitational constant.
So, although gravity is weaker in effect, it is actually more natural when this handicap is accounted for.
How can it be proven?
The compact extra dimension predicts distinct momentum levels of particles due to the particle-in-a-box model
These higher momentum particles are KK particles, and they are, to some extent, what we are searching for in our project
But, the Kaluza-Klein model is far from perfect, and has many problems
For instance, it hugely overestimates the electron mass
A few models in between...
Randall-Sundrum model emerges
A "braneworld" theory that places four-dimensional branes in a five-dimensional anti-deSitter bulk.
We are working with an extension of RS 1, the version with two branes, in which all of our familiar particles are bound to one of the branes.
In our extension, we add an intermediate brane (3 branes total). Main motivations:
it brings the KK particles into a more reasonable range for detection (~3 TeV vs ~10 TeV)
it helps explain the origins of flavor struture
----------------------------------------------------------------------------------
All errors encountered and how to fix them
First, check the 2/16 - 2/23 entry above.
root: [fail 5 times]
Just wait for a while and try again. This error lasted for a few hours when I was trying to submit a job to Condor while Condor had over 3000 jobs to run in its queue. Perhaps it had something to do with this.
requires lhapdf to be on sum... Do not run Pythia6
I don't actually remember the exact text of this one, but it is similar to this message, which would be printed in the condor.out file. This error can be easily fixed by using the second sh layout that I provided in my link above ("Here is a simple example").
A job disappears and reappears from the condor queue
This just sort of happens. Supposedly a recent update caused it, so maybe it will be fixed soon.
Mathematica quirks
Every time a function is edited, it has to be run with shift + enter. It will not warn the user if they are accidentally still using an old version of a function because they forgot to do this.
Variables can lurk as well. If I set a variable x = 3, then later I replace this line with y = 5, it will not warn me about the uses of the old variable x in the code, and it will run normally with x still being equal to 3. Once mathematica is stopped and restarted, however, x will appear as an uninitialized variable.
All of the old functions that you want to use have to be initialized if mathematica is ended and run again.
Variable types seem almost nonexistent in mathematica. You just sort of give a variable a value, string of characters, or a list of anything, and it just... figures it out.
----------------------------------------------------------------------------------
Nifty shell tricks
Adding an & character after the last argument of a command (separated from the argument with a space), the command will run in the background. That is, it will allow you to continue to use the command line while it runs. Very useful for using the separate-window emacs while still searching through files.
If a process needs to be killed, use ps to find its process ID, then kill followed by that ID. If you have too many processes running, you will run out of processes and potentially get stuck.
The command tail -f can be used on a file that is being written to to see its progress in real time. It works for watching the progress of condor output text files, text files appended to in mathematica, and whatever else.
The command ln -s can be used to create a symbolic directory in the current directory. It uses two arguments, ln -s <full path to destination> <name of symbolic directory>. Essentially, it seems to create a directory in your present working directory with the name corresponding to the second argument, but when you attempt to cd to it, it will place you into the location specified in the first argument. This is useful for when switching between two highly disconnected locations is necessary and frequent. If you use cd .. after using a symbolic directory, however, you will still go to the present working directory's parent directory, not back to where you came from. So, it is usually wise to create another symbolic directory at the destination that points back to the original location.
----------------------------------------------------------------------------------
Group: John Nolan, David Creegan, John Martyn
(although at some point David and John M. will be splitting off)
Goal: Find cuts that yield 5 < S / sqrt(S + B) where S is the number of signal events that survive the cuts, and B is the number of background events that survive the cuts
1: Madgraph download: http://madgraph.phys.ucl.ac.be/
2: Setting up madgraph: https://twiki.cern.ch/twiki/bin/view/CMSPublic/MadgraphTutorial
3: General madgraph syntax: http://www.niu.edu/spmartin/madgraph/madsyntax.html
4: Manual: https://arxiv.org/abs/1106.0522
5: Particle PDG codes: http://pdg.lbl.gov/2006/reviews/montecarlorpp.pdf
6: Phenomenology paper on the research: https://arxiv.org/pdf/1612.00047.pdf
7: Theoretical paper on the research: https://arxiv.org/pdf/1608.00526.pdf
8: Collider physics paper: https://arxiv.org/pdf/hep-ph/0508097.pdf
9: LHCO file layout: http://madgraph.phys.ucl.ac.be/Manual/lhco.html
Source for "what those numbers mean" image: http://hep.ps.uci.edu/~wclhc07/PeskinIrvine.pdf
What I have used for all of this
Wolfram Mathematica 11.0 Student Edition
MadGraph 5 v2.5.2 and the corresponding versions of Delphes, Pythia, and PGS that madgraph automatically selected when instructed to download these
CMSSW_8_1_0 *** It seems that only a small window of CMSSW versions work with madgraph. 8_4_0 doesn't work, 8_0_0 was iffy, but 8_1_0 and special versions of 8_0 worked fine ***
mobaXterm (terminal for windows)
Useful aliases (put into .cshrc folder)
Something that changes the working directory to the madgraph folder and sets the environment
(for example, mine was 'cd ~/DATA/CMSSW_8_1_0/ && setenv SCRAM_ARCH slc6_amd64_gcc530 && cmsenv && cd MG5_aMC_v2_5_2')