Commit 556133b1 authored by Andrea Tugores's avatar Andrea Tugores
Browse files

analysis info

parents 485b925e b18394e1
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<CENTER><img src="http://opendata.atlas.cern/DataAndTools/pictures/ATLASOD.gif" style="width:50%"></CENTER> <CENTER><img src="http://opendata.atlas.cern/DataAndTools/pictures/ATLASOD.gif" style="width:50%"></CENTER>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<CENTER><h1> Analysis Techniques used in Experimental Particle Physics</h1></CENTER> <CENTER><h1> Analysis Techniques used in Experimental Particle Physics</h1></CENTER>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<p style='text-align: justify;'> <p style='text-align: justify;'>
A set of pp collision data has been released by the ATLAS Collaboration to the public for educational purposes. The general aim of the 13 TeV ATLAS Open Data and tools released is to provide a straightforward interface to replicate the procedures used by high-energy-physics researchers and enable users to experience the analysis of particle physics data in educational environments. A set of pp collision data has been released by the ATLAS Collaboration to the public for educational purposes. The general aim of the 13 TeV ATLAS Open Data and tools released is to provide a straightforward interface to replicate the procedures used by high-energy-physics researchers and enable users to experience the analysis of particle physics data in educational environments.
</p> </p>
Let's take a current ATLAS Open Data sample and create histograms. Let's take a current ATLAS Open Data sample and create histograms.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Import some Python packages ### Import some Python packages
<p style='text-align: justify;'> <p style='text-align: justify;'>
The <strong>OS module</strong> in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system-dependent functionality.It is possible to automatically perform many operating system tasks. The OS module provides functions for creating and removing a directory (folder), fetching its contents, changing and identifying the current directory, etc. The <strong>OS module</strong> in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system-dependent functionality.It is possible to automatically perform many operating system tasks. The OS module provides functions for creating and removing a directory (folder), fetching its contents, changing and identifying the current directory, etc.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
The <strong>datetime module</strong> supplies classes for manipulating dates and times. These classes provide a number of functions to deal with dates, times and time intervals. Date and datetime are an object in Python, so when you manipulate them, you are actually manipulating objects and not string or timestamps. The <strong>datetime module</strong> supplies classes for manipulating dates and times. These classes provide a number of functions to deal with dates, times and time intervals. Date and datetime are an object in Python, so when you manipulate them, you are actually manipulating objects and not string or timestamps.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
With PyROOT, ROOT’s Python-C++ bindings, you can use <strong>ROOT</strong> from Python. PyROOT is HEP’s entrance to all C++ from Python, for example, for frameworks and their steering code. The PyROOT bindings are automatic and dynamic: no pre-generation of Python wrappers is necessary. With PyROOT you can access the full ROOT functionality from Python while benefiting from the performance of the ROOT C++ libraries. With PyROOT, ROOT’s Python-C++ bindings, you can use <strong>ROOT</strong> from Python. PyROOT is HEP’s entrance to all C++ from Python, for example, for frameworks and their steering code. The PyROOT bindings are automatic and dynamic: no pre-generation of Python wrappers is necessary. With PyROOT you can access the full ROOT functionality from Python while benefiting from the performance of the ROOT C++ libraries.
</p> </p>
**TMath** encapsulate most frequently used Math functions. The basic functions Min, Max, Abs and Sign are defined in TMathBase. **TMath** encapsulate most frequently used Math functions. The basic functions Min, Max, Abs and Sign are defined in TMathBase.
<p style='text-align: justify;'>
Finally, the <strong>pandas</strong> library is a Python library that serves as a tool for reading, writing and manipulating data in the form of DataFrames and Series objects. It will not be used to running or plotting the Analysis, but to read the ATLAS Open Data database with the descriptions of the analysis that can be done in this notebook.
</p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
import os import os
import datetime import datetime
import ROOT import ROOT
from ROOT import TMath from ROOT import TMath
import pandas as pd
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<p style='text-align: justify;'> <p style='text-align: justify;'>
One of the classes defined in the datetime module is datetime class. Its a combination of date and time along with the attributes year, month, day, hour, minute, second, microsecond, and tzinfo. We then used now() method to create a datetime object containing the current local date and time. One of the classes defined in the datetime module is datetime class. Its a combination of date and time along with the attributes year, month, day, hour, minute, second, microsecond, and tzinfo. We then used now() method to create a datetime object containing the current local date and time.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
starttime = datetime.datetime.now() starttime = datetime.datetime.now()
print(starttime) print(starttime)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>os.popen():</strong> This method opens a pipe to or from command. The return value can be read or written depending on whether mode is ‘r’ or ‘w’. The mode parameter is not required, if not provided, the default "r" is taken for the mode. <strong>os.popen():</strong> This method opens a pipe to or from command. The return value can be read or written depending on whether mode is ‘r’ or ‘w’. The mode parameter is not required, if not provided, the default "r" is taken for the mode.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('date').read() myCmd = os.popen('date').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Get the code the 13TeV analysis ## Get the code the 13TeV analysis
<p style='text-align: justify;'> <p style='text-align: justify;'>
Create folder named <strong>'atlas-data'</strong> where the information of twelve physics analysis examples inspired by the published results of ATLAS Collaboration will be cloned and stored to demonstrate the wide range of scenarios. The folder will be created and the data will be cloned only the first time the notebook is run. Create folder named <strong>'atlas-data'</strong> where the information of twelve physics analysis examples inspired by the published results of ATLAS Collaboration will be cloned and stored to demonstrate the wide range of scenarios. The folder will be created and the data will be cloned only the first time the notebook is run.
</p> </p>
Setting the path as a variable. To get the location of the current working directory <strong>os.getcwd()</strong> is used. Setting the path as a variable. To get the location of the current working directory <strong>os.getcwd()</strong> is used.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
directory = os.getcwd() directory = os.getcwd()
print(directory) print(directory)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>os.system(command)</strong> method execute the command (a string) in a subshell. This method is implemented by calling the Standard C function system. If command generates any output, it is sent to the interpreter standard output stream. Whenever this method is used then the respective shell of the Operating system is opened and the command is executed on it. The command parameter indicates which command to execute. <strong>os.system(command)</strong> method execute the command (a string) in a subshell. This method is implemented by calling the Standard C function system. If command generates any output, it is sent to the interpreter standard output stream. Whenever this method is used then the respective shell of the Operating system is opened and the command is executed on it. The command parameter indicates which command to execute.
</p> </p>
The <strong>mkdir</strong> command allows users to create or make new directories. mkdir stands for “make directory”. The <strong>mkdir</strong> command allows users to create or make new directories. mkdir stands for “make directory”.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
folder_demo = 'atlas-data' folder_demo = 'atlas-data'
if os.path.exists(directory+"/atlas-data"): if os.path.exists(directory+"/atlas-data"):
print("The folder exists") print("The folder exists")
else: else:
command = 'mkdir '+folder_demo command = 'mkdir '+folder_demo
os.system(command) os.system(command)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Show the contents in the current folder, and check your new folder is there. Show the contents in the current folder, and check your new folder is there.
Commands: Commands:
<p style='text-align: justify;'> <p style='text-align: justify;'>
'ls' with no option list files and directories in bare format where we won’t be able to view details like file types, size, modified date and time, permission and links etc. 'ls' with no option list files and directories in bare format where we won’t be able to view details like file types, size, modified date and time, permission and links etc.
</p> </p>
The command <strong>'ls lhrt'</strong> shows the last modified documents. The command <strong>'ls lhrt'</strong> shows the last modified documents.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('ls -lhrt').read() myCmd = os.popen('ls -lhrt').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Print the current path/location. Print the current path/location.
<p style='text-align: justify;'> <p style='text-align: justify;'>
The <strong>pwd</strong> command stands for print working directory. When invoked the command prints the complete path of the current working directory. The <strong>pwd</strong> command stands for print working directory. When invoked the command prints the complete path of the current working directory.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('pwd').read() myCmd = os.popen('pwd').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Get into the folder which we just created. Get into the folder which we just created.
Use the <strong>chdir</strong> command to change to another directory. The syntax is chdir followed by the name of the directory you want to go to. Use the <strong>chdir</strong> command to change to another directory. The syntax is chdir followed by the name of the directory you want to go to.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
os.chdir(folder_demo+"/") os.chdir(folder_demo+"/")
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Print the current path and check that you are really there. Print the current path and check that you are really there.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('pwd').read() myCmd = os.popen('pwd').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Setting the path as a variable. Setting the path as a variable.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
directory = os.getcwd() directory = os.getcwd()
print(directory) print(directory)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
#### Clone the analysis code #### Clone the analysis code
If it is the first time the notebook is run, the data is cloned. Otherwise, it warns that the data already exists. If it is the first time the notebook is run, the data is cloned. Otherwise, it warns that the data already exists.
The frameworks implement the protocols needed for reading the datasets, making an analysis selection, writing out histograms and plotting the results. The frameworks implement the protocols needed for reading the datasets, making an analysis selection, writing out histograms and plotting the results.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
if os.path.exists(directory+"/atlas-outreach-cpp-framework-13tev"): if os.path.exists(directory+"/atlas-outreach-cpp-framework-13tev"):
print("The repository exists") print("The repository exists")
else: else:
myCmd = os.popen('git clone https://github.com/atlas-outreach-data-tools/atlas-outreach-cpp-framework-13tev.git').read() myCmd = os.popen('git clone https://github.com/atlas-outreach-data-tools/atlas-outreach-cpp-framework-13tev.git').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Get into the folder which contains the analysis code. Get into the folder which contains the analysis code.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
os.chdir("atlas-outreach-cpp-framework-13tev/") os.chdir("atlas-outreach-cpp-framework-13tev/")
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Print the current path and check that you are really there. Print the current path and check that you are really there.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('pwd').read() myCmd = os.popen('pwd').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Let's see the time. Let's see the time.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('date').read() myCmd = os.popen('date').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Show the contents in the current folder. Show the contents in the current folder.
The framework consists of two main parts: The framework consists of two main parts:
<p style='text-align: justify;'> <p style='text-align: justify;'>
The analysis part, located within the <strong>Analysis directory</strong>: it performs the particular object selection and stores the output histograms. The analysis part, located within the <strong>Analysis directory</strong>: it performs the particular object selection and stores the output histograms.
The plotting part, located within the <strong>Plotting directory</strong>: it makes the final Data / Prediction plots. The plotting part, located within the <strong>Plotting directory</strong>: it makes the final Data / Prediction plots.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('ls -lhrt').read() myCmd = os.popen('ls -lhrt').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Setting the path as a variable. Setting the path as a variable.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
directory = os.getcwd() directory = os.getcwd()
print(directory) print(directory)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
**Output folders** **Output folders**
<p style='text-align: justify;'> <p style='text-align: justify;'>
Create the output folders where the analysis results will be stored. If it is the first time the notebook is run, the output folders will be created. Otherwise, they are reported to already exist. As all the output folders are created at the same time in the next two cells it is verified that they were created using any of the folders of the 12 data examples. Create the output folders where the analysis results will be stored. If it is the first time the notebook is run, the output folders will be created. Otherwise, they are reported to already exist. As all the output folders are created at the same time in the next two cells it is verified that they were created using any of the folders of the 12 data examples.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>echo</strong> command is used to display line of text/string that are passed as an argument . This is a built in command that is mostly used in shell scripts and batch files to output status text to the screen or a file. <strong>echo</strong> command is used to display line of text/string that are passed as an argument . This is a built in command that is mostly used in shell scripts and batch files to output status text to the screen or a file.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>"echo \"1\" | ./welcome.sh"</strong> : 1 indicates that you want to automatically create all output directories in the 12 analysis subfolders, if you put 0 instead you can delete content if necessary. <strong>"echo \"1\" | ./welcome.sh"</strong> : 1 indicates that you want to automatically create all output directories in the 12 analysis subfolders, if you put 0 instead you can delete content if necessary.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
if os.path.exists(directory+"/Analysis/ZBosonAnalysis/Output_ZBosonAnalysis"): if os.path.exists(directory+"/Analysis/ZBosonAnalysis/Output_ZBosonAnalysis"):
print("Folders exists") print("Folders exists")
else: else:
command1 = "echo \"1\" | ./welcome.sh" command1 = "echo \"1\" | ./welcome.sh"
os.system(command1) os.system(command1)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Check that the folders were created. Check that the folders were created.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('ls -lhrt Analysis/HZZAnalysis').read() myCmd = os.popen('ls -lhrt Analysis/HZZAnalysis').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Let's run an Analysis now ### Let's run an Analysis now
<p style='text-align: justify;'> <p style='text-align: justify;'>
The naming of the sub-folders follows a simple rule: "NNAnalysis", where NN can be WBoson, ZBoson, TTbar, SingleTop, WZDiBoson, ZZDiBoson, HZZ, HWW, Hyy, ZPrimeBoosted, ZTauTau and SUSY. The naming of the sub-folders follows a simple rule: "NNAnalysis", where NN can be WBoson, ZBoson, TTbar, SingleTop, WZDiBoson, ZZDiBoson, HZZ, HWW, Hyy, ZPrimeBoosted, ZTauTau and SUSY. After you enter your choice, you will see the description of the analysis that has been obtained from a pandas dataframe generated from a .csv file with the analysis information.
</p> </p>
### Select one analysis ### Select one analysis
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
analysis_df = pd.read_csv("notebooks-info/analysis_info.csv", sep="_").set_index("Analysis")
```
%% Cell type:code id: tags:
``` python
print("The options are:\n WBosonAnalysis\n ZBosonAnalysis\n TTbarAnalysis\n SingleTopAnalysis\n WZDiBosonAnalysis\n ZZDiBosonAnalysis\n HZZAnalysis\n HWWAnalysis\n ZTauTauAnalysis\n HyyAnalysis\n SUSYAnalysis\n ZPrimeBoostedAnalysis") print("The options are:\n WBosonAnalysis\n ZBosonAnalysis\n TTbarAnalysis\n SingleTopAnalysis\n WZDiBosonAnalysis\n ZZDiBosonAnalysis\n HZZAnalysis\n HWWAnalysis\n ZTauTauAnalysis\n HyyAnalysis\n SUSYAnalysis\n ZPrimeBoostedAnalysis")
``` ```
%% Output
The options are:
WBosonAnalysis
ZBosonAnalysis
TTbarAnalysis
SingleTopAnalysis
WZDiBosonAnalysis
ZZDiBosonAnalysis
HZZAnalysis
HWWAnalysis
ZTauTauAnalysis
HyyAnalysis
SUSYAnalysis
ZPrimeBoostedAnalysis
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
while True: while True:
analysis = input("Enter your choice: ") analysis = input("Enter your choice: ")
try: try:
os.chdir("Analysis/"+analysis) os.chdir("Analysis/"+analysis)
break break
except FileNotFoundError: except FileNotFoundError:
print("Analysis not found") print("Analysis not found")
``` ```
%% Cell type:code id: tags:
``` python
print(analysis_df["Description"].loc[f"{analysis}"])
```
%% Output
Higgs boson decay in the two-photon final state.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Print the current path/location. Print the current path/location.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('pwd').read() myCmd = os.popen('pwd').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('ls -lhrt').read() myCmd = os.popen('ls -lhrt').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Run the C++ code now ### Run the C++ code now
Please, note that we are writing the output in a log file. (This file can be inspected in real time in a terminal). Please, note that we are writing the output in a log file. (This file can be inspected in real time in a terminal).
<p style='text-align: justify;'> <p style='text-align: justify;'>
A bash script (run.sh), executed via a Linux/UNIX shell called source: helps you in running the analysis. The script has two options for the user to select how they want to enhance the analysis. A bash script (run.sh), executed via a Linux/UNIX shell called source: helps you in running the analysis. The script has two options for the user to select how they want to enhance the analysis.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
The first option will ask you: do you want to run over all the samples one-by-one, or to run over only data or only simulated samples? The latter options can help you to speed up the analysis, as you can run several samples in several terminals. The first option will ask you: do you want to run over all the samples one-by-one, or to run over only data or only simulated samples? The latter options can help you to speed up the analysis, as you can run several samples in several terminals.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
The second option will ask you: do you want to use the Parallel ROOT Facility (PROOF), a ROOT-integrated tool that enables the analysis of the input samples in parallel on a many-core machine? If your ROOT version has PROOF integrated, it will speed up the analysis by a factor of roughly 5. The second option will ask you: do you want to use the Parallel ROOT Facility (PROOF), a ROOT-integrated tool that enables the analysis of the input samples in parallel on a many-core machine? If your ROOT version has PROOF integrated, it will speed up the analysis by a factor of roughly 5.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
After you choose the options, the code will compile and create the needed ROOT shared libraries, and the analysis selection will begin: it will run over each input sample defined in main_NNAnalysis.C. After you choose the options, the code will compile and create the needed ROOT shared libraries, and the analysis selection will begin: it will run over each input sample defined in main_NNAnalysis.C.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>"echo \"0\n0\" | ./run.sh >log"</strong> : the first 0 indicates run all data and MC one after another. The second 0 indicates that you don't want to use PROOF. <strong>"echo \"0\n0\" | ./run.sh >log"</strong> : the first 0 indicates run all data and MC one after another. The second 0 indicates that you don't want to use PROOF.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
command4 = "echo \"0\n0\" | ./run.sh >log" command4 = "echo \"0\n0\" | ./run.sh >log"
os.system(command4) os.system(command4)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
#### Now the code is done (I hope you see a 0 as output ) #### Now the code is done (I hope you see a 0 as output )
Get into the Plotting folder. The plotting code is located in the Plotting folder. Get into the Plotting folder. The plotting code is located in the Plotting folder.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
os.chdir("../../Plotting/") os.chdir("../../Plotting/")
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Print the current path and check that you are really there. Print the current path and check that you are really there.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('pwd').read() myCmd = os.popen('pwd').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Let's run the Plotting code ### Let's run the Plotting code
### Select the right analysis ### Select the right analysis
#### The options are: #### The options are:
0 = WBosonAnalysis 0 = WBosonAnalysis
1 = ZBosonAnalysis 1 = ZBosonAnalysis
2 = TTbarAnalysis 2 = TTbarAnalysis
3 = SingleTopAnalysis 3 = SingleTopAnalysis
4 = WZDiBosonAnalysis 4 = WZDiBosonAnalysis
5 = ZZDiBosonAnalysis 5 = ZZDiBosonAnalysis
6 = HWWAnalysis 6 = HWWAnalysis
7 = HZZAnalysis 7 = HZZAnalysis
8 = ZTauTauAnalysis 8 = ZTauTauAnalysis
9 = HyyAnalysis 9 = HyyAnalysis
10 = SUSYAnalysis 10 = SUSYAnalysis
11 = ZPrimeBoostedAnalysis 11 = ZPrimeBoostedAnalysis
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Bash script (plotme.sh): helps you in running the plotting code. Bash script (plotme.sh): helps you in running the plotting code.
The script has two options for the user to select how they want to enhance the analysis. The script has two options for the user to select how they want to enhance the analysis.
<p style='text-align: justify;'> <p style='text-align: justify;'>
The first option will be: which analysis exactly out of the 12 you want to plot? The first option will be: which analysis exactly out of the 12 you want to plot?
The second option will ask you for the location of the Output_NNAnalysis directory that was created by running the Analysis code. The second option will ask you for the location of the Output_NNAnalysis directory that was created by running the Analysis code.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
After you choose the options, the code will compile and create the needed ROOT shared libraries, and the plotting will begin. If everything was successful, the code will create in the output directory (histograms) the corresponding plots defined in HistoList_ANALYSISNAME.txt. After you choose the options, the code will compile and create the needed ROOT shared libraries, and the plotting will begin. If everything was successful, the code will create in the output directory (histograms) the corresponding plots defined in HistoList_ANALYSISNAME.txt.
</p> </p>
<p style='text-align: justify;'> <p style='text-align: justify;'>
<strong>"echo \"9\n0\" | ./plotme.sh"</strong> : The first number indicates which of the 12 analyzes you want to use and the second, in this case, 0 indicates that the location of the directory is Output_NNAnalysis. <strong>"echo \"9\n0\" | ./plotme.sh"</strong> : The first number indicates which of the 12 analyzes you want to use and the second, in this case, 0 indicates that the location of the directory is Output_NNAnalysis.
</p> </p>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
while True: while True:
number = input('Choose your analysis. Enter a number: ') number = input('Choose your analysis. Enter a number: ')
try: try:
number = int(number) number = int(number)
if 0<= number <=9: if 0<= number <=9:
break break
else: else:
print("Valid range, please: 0-9.") print("Valid range, please: 0-9.")
except ValueError: except ValueError:
print("Try it again.") print("Try it again.")
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
command5 = f"echo \{number}\n0\ | ./plotme.sh" command5 = f"echo \"{number}\n0\" | ./plotme.sh"
os.system(command5) os.system(command5)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Show histograms created. Show histograms created.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('ls -lhrt histograms/*png').read() myCmd = os.popen('ls -lhrt histograms/*png').read()
print(myCmd) print(myCmd)
``` ```
%% Cell type:markdown id: tags:
Show explanation from the ATLAS Open Data 13 TeV Documentation.
%% Cell type:code id: tags:
``` python
print(analysis_df["Explanation"].loc[f"{analysis}"])
```
%% Output
The H → yy decay mode provides a very clear and distinctive signature of two isolated and highly energetic photons, and is one of the main channels studied at the LHC. Despite the small branching ratio, a reasonably large signal yield can be obtained thanks to the high photon reconstruction and identification efficiency at the ATLAS experiment. Furthermore, due to the excellent photon energy resolution of the ATLAS calorimeter, the signal manifests itself as a narrow peak in the diphoton invariant mass spectrum on top of a smoothly falling irreducible background from QCD production of two photons.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
myCmd = os.popen('date').read() myCmd = os.popen('date').read()
print(myCmd) print(myCmd)
endtime = datetime.datetime.now() endtime = datetime.datetime.now()
print("Analysis finished in % 2d min % 2d s" %(((endtime - starttime).seconds)/60,((endtime - starttime).seconds)%60)) print("Analysis finished in % 2d min % 2d s" %(((endtime - starttime).seconds)/60,((endtime - starttime).seconds)%60))
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Done! ### Done!
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
......
Analysis_Description_Explanation
WBosonAnalysis_W-boson production in the single-lepton final state._W-bosons are produced abundantly at the LHC and the measurements of the inclusive production cross section of the W bosons and of the asymmetry between the positively-charged and negatively-charged W-boson cross sections constitute important tests of the SM. In addition, W+jets processes are a significant background to studies of SM processes such as single-top production, top-quark pair production, as well as searches for the SM Higgs boson and for BSM physics.
ZBosonAnalysis_Z-boson production in the two-lepton final state._The study of Z-boson production in pp collisions provides a stringent test of perturbative QCD. In addition, the SM Z-boson process, often produced in association with one or more jets, is a significant background to searches for the SM Higgs boson and for physics beyond the SM.
TTbarAnalysis_Top-quark pair production in the single-lepton final state_"The top quark is the heaviest elementary particle in the SM, with a mass of around 172.5 GeV, which is close to the electroweak symmetry breaking scale. At the LHC, top quarks are primarily produced in quark–antiquark pairs (tt), and due to its large production cross section ( around 830 pb at 13 TeV), the LHC can be viewed as ""a top-quark factory"". Top quarks have a rich phenomenology which includes high-pTjets, b-jets, leptons and missing transverse momentum. Its understanding is crucial for studying rarer processes, given that tt production is a background to virtually all processes having leptons and multiple jets in their final states."
SingleTopAnalysis_Single-top-quark production in the single-lepton final state_"At hadron colliders, top quarks are predominantly produced in pairs via the flavour conserving strong interaction, but single top-quark production can occur via charged current electroweak processes involving a Wtb vertex.
In pp collisions, the t-channel exchange is the dominant production process of single top quarks: an exchange of a space-like W boson due to the interaction of a light quark with a b-quark produces a top quark and a forward light-quark (called the spectator quark) in the final state."
WZDiBosonAnalysis_WZ diboson production in the three-lepton final state._The study of the diboson production is an important part of the physics programme in hadron collisions as it represents an important test of the electroweak sector of the SM. In particular, the WZ diboson production arises from two vector bosons radiated by quarks or from the decay of a virtual W boson into a WZ pair, the latter of which involves a triple gauge coupling.
ZZDiBosonAnalysis_ZZ diboson production in the four-lepton final state._The study of ZZ diboson production in pp interactions at the LHC not only can be used as a test of the electroweak sector of the SM. The SM ZZ production can proceed via a SM Higgs boson propagator, although this contribution is suppressed in the region where both Z bosons are produced on-shell. Hence, non-resonant ZZ diboson production is an important background for searches of the SM Higgs boson with its subsequent decay to ZZ.
HWWAnalysis_Higgs boson production in the Higgs boson to WW bosons decay channel in the two-lepton final state._The H → WW decay branching ratio for the Higgs boson with a mass of 125 GeV is predicted to be 0.214 in the SM, and corresponds to the second-largest branching fraction after the dominant H → bb decay mode. The predicted Higgs-boson production cross sections via the dominant gluon–gluon fusion (ggF) and vector-boson fusion (VBF) times H → WW branching fraction are 10.4 pb and 0.81 pb for ggF and VBF, respectively. Reducing the numerous backgrounds contributing to this channel and accurately estimating the remainder is a major challenge in this analysis. The dominant background stems from non-resonant WW diboson production, while tt, single-top-quark and W+jets (with the jet misidentified as a lepton) events, as well as non-resonant WZ and ZZ processes contribute to the overall background.
HZZAnalysis_Higgs boson production in the Higgs boson to ZZ bosons decay channel in the four-lepton final state._"The search for the SM Higgs boson through the decay H → ZZ → 4l, where l = e or μ, represents the so called ""golden channel"" and leads to a narrow four-lepton invariant-mass peak on top a relatively smooth and small background, largely due to the excellent momentum resolution of the ATLAS detector. The Higgs-boson decay branching ratio to the four-lepton final state for the Higgs boson mass of 125 GeV is predicted to be 0.0124% in the SM, and the expected cross section times branching ratio for the process H → ZZ → 4l is 2.9 fb at 13 TeV. Hence, based on an integrated luminosity of the current ATLAS Open Data set of 10/fb, one expects a total of 29 events to have been produced in the four-lepton final state (before reconstruction and event selection)."
ZTauTauAnalysis_Z-boson production in the two-tau-lepton final state_"The τ-leptons play an important role in the physics programme of the LHC. They serve not only as a foundation to identify and precisely measure several SM production processes, but also are widely used in searches for new physics beyond the SM.
In the analysis a selection criteria is made in order to reconstruct the Z → ττ decays from a hadronically decaying τ-lepton, accompanied by a &tau-lepton that decays leptonically. The leptonic &tau-lepton decays are reconstructed as electrons and muons in the final state. The hadronic &tau-lepton decays produce a highly collimated jet in the detector consisting of an odd number of charged hadrons and possibly additional calorimetric energy deposits from neutral decay products."
HyyAnalysis_Higgs boson decay in the two-photon final state._The H → yy decay mode provides a very clear and distinctive signature of two isolated and highly energetic photons, and is one of the main channels studied at the LHC. Despite the small branching ratio, a reasonably large signal yield can be obtained thanks to the high photon reconstruction and identification efficiency at the ATLAS experiment. Furthermore, due to the excellent photon energy resolution of the ATLAS calorimeter, the signal manifests itself as a narrow peak in the diphoton invariant mass spectrum on top of a smoothly falling irreducible background from QCD production of two photons.
SUSYAnalysis_Search for supersymmetric particles in the two-lepton final state._"Supersymmetry (SUSY) is one of the most studied extensions of the SM. In its minimal form it predicts new fermionic (bosonic) partners of the fundamental SM bosons (fermions) and an additional Higgs doublet.
The focus in this analysis is on the search for direct production of pairs of sleptons, the superpartners of the SM leptons, where each slepton decays directly into the lightest neutralino and the corresponding lepton. A simplified benchmark model is chosen for this search, in which the mass of the slepton and the neutralino are the only free parameters. The predicted cross section for slepton production, each with a mass of 600 GeV, and neutralino mass of 300 GeV is 0.7 fb."
ZPrimeBoostedAnalysis_Search for BSM (Beyond the Standard Model) Z’ boson decay into top-quark pairs in the single-lepton boosted final state._"The searches for new physics phenomena at the LHC are constantly ongoing. As an example, with a mass close to the scale of electroweak symmetry breaking, the top quark, besides having a large coupling to the SM Higgs boson, is predicted to have large couplings to new particles hypothesised in many BSM models.
In the analysis, we focus on implementing the selection criteria of a search for new heavy particles that decay into top-quark pairs in events containing a single charged lepton, large-R jets and missing transverse momentum. A particular benchmark model chosen for this search produces a new gauge boson Z' with a mass of 1 TeV and width of 10 GeV that decays into a tt-pair."
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment