For the last LHC Olympics round, Gordon Watts of UW made some basic code to read and process the sample data. I have adapted this code to linux, and made some necessary changes to read the data produced for the second round of the LHC olympics.
First, install ROOT.
If you have your root files somewhere other than
/usr/lib/root and /usr/include/root, you
should edit the Makefile to reflect where root is installed. You
should also make sure the ROOTSYS and
LD_LIBRARY_PATH reflect where root is installed:
export ROOTSYS=/usr/local/root
export LD_LIBRARY_PATH=/usr/local/root/lib
You can add these to your .login or .bashrc scripts.
Second, download my code. This is intended to run under linux. Once you have downloaded it, untar it and compile it:
tar xvzf root_lhc_olympics.tar.gz
make
make above will create two executables,
ConvertBlackBoxFile and SampleAnalysis.
After you have downloaded some data
from the official site (for instance, diboson_1005.dat.0.gz)
decompress it and convert it to a root file:
gzip -d diboson_1005.dat.0.gz
ConvertBlackBoxFile diboson_1005.dat.0 diboson_1005.root
This diboson_1005.root file now contains the events as
described in the OlympicEvent.h file. You can examine it
directly in root by running root diboson_1005.root and
creating a TBrowser object.
[mcelrath@lifshitz lhc_olympmics]$ root diboson_1005.root
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.04/00 20 September 2005 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************
FreeType Engine v2.1.9 used to render TrueType fonts.
Compiled on 22 September 2005 for linux with thread support.
CINT/ROOT C/C++ Interpreter version 5.16.2, July 14 2005
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TBrowser b;
(you should type TBrowser b; and hit enter). This will
open a new window. Click on "ROOT Files" and you should see
diboson_1005. This is nice, but rather useless if we want
to figure out what is in the file.
The goal here is to plot various quantities, combining the information
in the event to isolate physically interesting quantities. (But
remember -- there is no background in these files) A sample analysis
is in the file SampleAnalysis.C which plots the quantities
that you see if you examine the data file directly. Run the
SampleAnalysis program that is generated when you type
make, then run root plots.root and again
create a TBrowser object by typing TBrowser b;. Again
click on "ROOT Files" and "plots.root" and you will see these
histograms.
Most of these histograms are boring and it's almost impossible to learn
anything from them. I have added two histograms containing some
physics content: dijet_mas and dilep_mas
which are the invariant masses of all jet pairs and lepton pairs,
respectively. In these you can clearly see the W and Z peaks.
In order to construct more sophisticated variables from this data you will find the ROOT documentation helpful, in particular that for TLorentzVector and TH1F (the 1-dimensional histogram of Float values).
There exists another body of code to do these kinds of things using Mathematica. However I feel strongly that Mathematica is the wrong tool for this job, for the following reasons.