- SuSpect Interface: It's a Mathematica notebook which works like an interface to the SUSY spectrum calculator SuSpect. It takes the mSUGRA paramaters and call SuSpect to compute the sparticle spectrum and display it as a plot.
- SLHA compatible PGS: I modified the PGS4 - Olympics program and added a command line option to input SLHA files.
- Parvicursor: This one is a data analysis software similar to ChRoot and Chameleon for analyzing lhco files generated by PGS. It has an easy to use intuitive syntax.
- Standard Model at the LHC: Well I didn't really do anything for this one other than running PGS and waiting for the result. But since it takes a long time to generate this (order of months on a single computer), I thought it can be useful for anybody who needs it.
SuSpect Interface
You need to have SuSpect and Mathematica 6 installed to be able to run this. Here is what you need to do assuming you have both of the programs: - Download suspect_interface.zip to your computer and unzip it.
- Move the file "template.in" to your SuSpect directory.
- Open the Mathematica notebook and change the path in the SetDirectory command to your SuSpect directory.
And that's it, you are ready to go. You can now play with the mSUGRA parameters and see the result. It may take a couple of seconds for SuSpect to compute the spectrum depending on your computer's speed. The information section of the SuSpect SLHA output is also displayed below the spectrum plot. So if SuSpect has any trouble generating the spectrum you will know. Note that not all the error/warning messages are so important. Check out the SuSpect tutorial for more info.
Finally, I have actually only tried this Mathematica notebook on Linux so I am not sure if it works on any other operating system. I would appreciate any comment on that.
SLHA compatible PGS
Here is the modified PGS4 (actually only the "olympics" program is modified). This modified version can input SLHA files by using the the command line option "--slha filename" and it has the pythia 6.4.18 linked. To see all the options just run the "olympics" program without any command line argument.
Parvicursor
The latest version: Parvicursor 1.21 (Nov 7, 2008)
How to Install and Run
- Parvicursor is based on ROOT, so you first need to download and install the ROOT package. You can download the binaries of the latest Pro (production) version from here.
- Run ROOT from the Parvicursor directory.
- Run the command ".x parvicursor.C" (no quotes) to load the necessary files.
The last command is actually going to compile the Parvicursor and create the object files. If you get any warning messages, just ignore them. You shouldn't get any error messages.
If you want to do some trial-error, you can run Parvicursor in an interactive mode by using the C++ interpreter available in the ROOT package. If you want to loop over multiple lhco files, get some signatures for each of your model and save those values into a file, you can combine Parvicursor commands with C++ commands and run everything as a single command. This is actually useful for the type of analysis (parameter space scan) most people do nowadays.
PGS4 doesn't apply an isolation cut on muons and unlike ChRoot and Chameleon, Parvicursor doesn't do that at the startup. If you want to place an isolation cut, you can use the cleaning script which can be found in the PGS/CLEAN directory before loading the data into Parvicursor. It is very fast and easy to use.
A Basic Example
Coming soon!
Physics Objects
You can use the followings as PhysicsObjects. Note that the Parvicursor is case sensitive and doesn't generate any error message if you make a typo.
-
Photon -
Electron, ElectronMinus, ElectronPlus -
Muon, MuonMinus, MuonPlus -
Tau, TauMinus, TauPlus -
EMLepton, EMLeptonMinus, EMLeptonPlus -
Lepton, LeptonMinus, LeptonPlus -
Jet, NonBJet, BJet -
MissingPT, Visible, Any NumOf(PhysicsObject obj): number of 'obj' in an event.
NumOf(PhysicsObject obj1, PhysicsObject obj2): number of 'obj1', 'obj2' pairs in an event.
NumOf(PhysicsObject obj1, PhysicsObject obj2, PhysicsObject obj3): number of 'obj1', 'obj2', 'obj3' triples in an event.PT(PhysicsObject obj, int n=1, int m=1): returns sum of the PT's of nth to n+(m-1)th hardest 'obj' in an event. Without the last two arguments it basically returns the PT of the hardest 'obj'. With one extra argument it returns PT of the nth hardest 'obj'.TranSph(PhysicsObject obj): returns transverse sphericity of 'obj' in an event.EffMass(PhysicsObject obj): returns effective mass of 'obj' in an event.InvMass(PhysicsObject obj, int n=1): returns invariant mass of n hardest 'obj' in an event.
InvMass(PhysicsObject obj1, int n1, int m1, PhysicsObject obj2, int n2, int m2): returns invariant mass of n1th to n1+(m1-1)th 'obj1' and n2th to n2+(m2-1)th 'obj2'.Is(PhysicsObject object): returns 1 if the track matches the object, 0 otherwise.Get(int column): returns the value at the column in a track.SetMissingPTCUT(float cut): sets a missing energy cut. This is useful for big files. You can set it before importing an lhco file to filter out low missing energy events to reduce the memory usage and increase the speed.ImportData(FString path): reads an lhco file located at "path". If you need to import more than one file you need to call the function for each lhco file.ImportData(FString path, int min, int max): this one reads multiple lhco files which have an integer number in their path. In the string "path", you can have a * which will be replaced by integers changing from min to max and all of the corresponding lhco data will be read into the memory.ExportData(int subset, FString path): exports any subset as a new lhco file.ImportSpectrum(FString path): reads a file located at "path" containing SLHA spectrum information. By default, pythia only outputs SLHA type spectrum information on screen. You can save the screen output into a file and then read it by using this function.PrintSpectrum(): prints the spectrum on the screen read by the ImportSpectrum function.MassOf(FString particle): returns mass of the "particle".MassOfLSQ(): returns the mass of the lightest squark.LSP(int n=1): returns the name of the nth lightest supersymmetric particle.mSP(): returns an integer according to sparticle mass pattern given in arXiv:0802.4085.ImportTotalCrossSection(FString path): reads the total SUSY cross section from a log file.GetTotalCrossSection(): returns the total SUSY cross section. You need to first call the previous function to read the value from the log file into the memory. You may want to use this function to scale the count rates and the histograms if you work with an lhco file of constant number of events instead of constant integrated luminosity.NewSubset(FString name, int n=1): creates n new empty subsets with the "name".AddEvents(int subseti, int subsetf, FString criteria): adds all the events satisfying the "criteria" from "subseti" to "subsetf". If an event satisfying the criteria is contained in both of the subsets with different tracks, the final event will be a union of the both sets of tracks.RemoveEvents(int subset, FString criteria): removes all the events from "subset" satisfying the "criteria".AddTracks(int subseti, int subsetf, FString criteria): adds all the tracks from "subseti" to "subsetf" satisfying the "criteria".RemoveTracks(int subset, FString criteria): removes all the tracks from "subset" satisfying the "criteria".RemoveTrackPairs(int subset, FString criteria): removes all the track pairs from "subset" satisfying the "criteria". (Experimental)PrintSubsetList(): prints a short information about the subsets.PrintEvent(int subset, int n): prints the nth event from "subset" on the screen.GetNumberOfEvents(int subset): returns the number of events contained in "subset".CreateHistogram(int subset, FString title, FString function, float min, float max, int nbin, int color=2): creates a histogram with the "color" using the "subset" and the function from "min" to "max" in "nbins".CreateHistogram(int histogram1, int histogram2, float c1, float c2): creates the histogram c1*histogram1 + c2*histogram2.GetPointer(int histogram): returns the pointer to "histogram". You can use this pointer to run ROOT functions on the histogram. Check out the ROOT's manual to learn about everything you can do on the histograms.DrawHistogram(int histogram): draws the "histogram" on the screen.DrawHistogram(int histogram1, int histogram2): draws "histogram1" and "histogram2" on the same canvas.GetNBins(int histogram): returns the number of bins used in the "histogram".GetNHistograms(): returns the number of histograms.GetBinValues(int histogram, int i): returns the height of the ith bin in the "histogram".GetQuantiles(int histogram, int nquantiles, double *quantiles, double *errors): fills the arrays "quantiles" and "errors" with the quantile boundary values and the estimated errors.FindPeak(int histogram): finds the position of the peak of the "histogram".FindMean(int histogram): calculates the mean of the "histogram".FindMeanError(int histogram): calculates the error in the mean of the "histogram".FindRMS(int histogram): calculates RMS of the "histogram".FindRMSError(int histogram): calculates the error in RMS of the "histogram".FindSkewness(int histogram): calculates the skewness of the "histogram".FindKurtosis(int histogram): calculates the kurtosis of the "histogram".PrintHistogramList(): prints a short information about the histograms.
An EMLepton is either an Electron or a Muon. A Lepton may also be a Tau. "Visible" is any of the tracks except the missing energy, "Any" is really anything.
Criterion Functions
If a function contains a default value for one or more of its arguments you can call the function without using those arguments, the default values will be used in that case.
Operators
Here is the list of the avaliable operators. You can always combine stuff by using the paranthesis.
| Arithmetic | + | - | * | / | ^ | |
| Logic | ! | & | | | || | ||
| Comparison | = | != | > | >= | < | <= |
Commands
Here is the list of all the functions. If a function contains a default value for one or more of its arguments you can call the function without using those arguments, the default values will be used in that case.
Data
Subsets
Histograms
Scripts
One nice thing about ROOT that you can use scripts to run multiple commands at once. So Instead of typing the commands everytime you do your analysis, you can save them in a file (by the way copying and pasting also works) and then run the file as a Parvicursor (hence ROOT) script. You can check out ROOT's manual to learn more about this.
Standard Model at the LHC
The following files all together give you the SM at 5 fb-1 at the LHC with the missing energy cut of 100 GeV. Note that these are quite big zip files (713 Mb when unzipped).
bbbar.lhco.zip (5.6 Mb)
dijets.lhco.zip (27.4 Mb)
drellyan.lhco.zip (2.8 Mb)
singlew.lhco.zip (99.6 Mb)
singlez.lhco.zip (4.0 Mb)
ttbar.lhco.zip (34.2 Mb)
wwleptonic.lhco.zip (1.5 Mb)
zwleptonic.lhco.zip (66.9 Kb)
zzleptonic.lhco.zip (2.2 Kb)