Various useful links for getting started on (co-op) Track Trigger work
Introductory material
Computing-related pointers
Overview
Here are some things that you will need:
- A terminal window
- Basic unix/linux skills to navigate
- Basic python / C++ skills
Getting a terminal window
We will need to use a shell to connect to computing resources (like CERN's computing cluster called lxplus). If you have a linux machine or Mac OS X, this comes for free - just open a "Terminal" window. If you have a Windows computer, see below for installing shell.
If you have Windows computer, install linux bash shell. Google is probably your friend here, but see e.g. this article:
https://www.laptopmag.com/articles/use-bash-shell-windows-10
Tutorials on using linux / unix
- This has both introductory material and a bit more advanced usage. Start for now only with "Unix / Linux for Beginners":
https://www.tutorialspoint.com/unix/index.htm
- Additional tutorials for reference:
https://linuxjourney.com/lesson/the-shell
https://linuxsurvival.com/linux-tutorial-introduction/
Tutorials on Python / C++
Good python tutorial:
https://python.swaroopch.com/
Setting up (Mac OS X) computer for working
Install XQuartz:
https://www.xquartz.org/
Install XCode:
https://root.cern/install/dependencies/#macos
Set up a text editor, there are many many out there. I (Louise) use Aquamacs (
https://aquamacs.org/
).
Install ROOT and cernbox (as linked below).
CMS experiment and physics introduction
CMS experiment:
https://www.youtube.com/watch?v=S99d9BQmGB0
More on CMS detector (and the links on the right sidebar):
https://cms.cern/detector
More on CMS physics (and the links on the right sidebar):
https://cms.cern/physics
Overview particle physics lectures
These are some nice lectures from the "CERN summer student" program that are publicly available. In particular these ones is a good introduction:
- One series (3 lectures) on "particle world":
1/3:
https://indico.cern.ch/event/709526/
2/3:
https://indico.cern.ch/event/709530/
3/3:
https://indico.cern.ch/event/709532/
- First lecture on "detectors":
https://indico.cern.ch/event/716456/
- Another series (3 lectures) on "from raw data to physics results":
1/3:
https://indico.cern.ch/event/716505/
2/3:
https://indico.cern.ch/event/716506/
3/3:
https://indico.cern.ch/event/716508/
- Series (3 lectures) on "Introduction to Electronics, DAQ and Trigger Technology":
1/3:
https://indico.cern.ch/event/190068/
2/3:
https://indico.cern.ch/event/190069/
3/3:
https://indico.cern.ch/event/190070/
CERN computing accounts & general useful links
CMS computing workbook has a ton of details (in particular go through chapter 1):
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBook
ROOT (for data analysis, making figures, etc.), recommend installing it locally on your computer (
https://root.cern/install/
).
Basic tutorial about ROOT:
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookBasicROOT
Full site about ROOT:
https://root.cern.ch/
Obtaining a grid certificate:
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookStartingGrid#BasicGrid
Password-less login:
http://linux.web.cern.ch/linux/docs/kerberos-access.shtml
Linux commands:
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookBasicLinux
cernbox (CERN's version of dropbox):
http://cernbox.cern.ch
https://cernbox.docs.cern.ch/
Documentation on triggers and track trigger system
Looong document describing in all its detail the upgraded L1 trigger system, use this as a reference. Suggest to read:
- First part of introduction section, section 1.1 "Physics motivations and CMS Phase-2 trigger upgrade"
- Section 2.1 about the L1 tracking "Track finder primitives"
http://cds.cern.ch/record/2714892
Detailed overview article about "track triggers":
https://www.annualreviews.org/doi/abs/10.1146/annurev-nucl-020420-093547
L1 tracking software stuff
The first time to set up all the software, use this
Set up CMS software release:
cmsrel CMSSW_12_6_0_pre5
cd CMSSW_12_6_0_pre5/src/
cmsenv
Check out some additional code specific to the L1 tracking:
git cms-checkout-topic -u cms-L1TK:L1TK-dev-12_6_0_pre5
Compile the code:
scram b -j 8
Go to the "test" directory where we will execute (run) the code:
cd L1Trigger/TrackFindingTracklet/test/
Finally, run the L1 tracking:
(1)
If you have requested and set up the grid certificate (using voms-proxy-init --voms cms), skip directly to (2) below.
If you do
not yet have a grid certificate, open L1TrackNtupleMaker_cfg.py (using emacs, vi, or your preferred editor), change around L16 from geometry D88 to D76, and then change to use a locally available input data file instead of reading from the grid. Specifically, change around L82 to:
inputMC = ["file:/eos/cms/store/user/skinnari/L1TK/TTbar_D49/00260a30-734a-4a3a-a4b0-f836ce5502c6.root"]
(2) To run the tracking, execute the following command:
cmsRun L1TrackNtupleMaker_cfg.py
You can browse the python script that you are running in github
here
.
==> This will process 100 events from a Monte Carlo simulated sample of top quark pair production, with an average of 200 "pileup" interactions. Creates an output file called "TTbar_PU200_D49.root" that you can directly open in ROOT:
root -l TTbar_PU200_D88.root
Once you have set up the software the first time, use this
Set up CMS software release:
cd CMSSW_12_6_0_pre5/src/
cmsenv
To set up the grid certificate (once you have this), also do:
voms-proxy-init --voms cms
IF you have made changes to any of the C++ code, then you need to recompile the code, otherwise it is not necessary:
scram b -j 8
Go to the "test" directory and run the L1 tracking:
cd L1Trigger/TrackFindingTracklet/test/
cmsRun L1TrackNtupleMaker_cfg.py
Make histograms
The ROOT ntuple that is created has three sets of different
branches:
- "tp_" : these are properties (pt - transverse momentum, eta - pseudorapidity, phi - azimuthal angle, etc...) of the true trajectories left by charged particles in the tracker detector (TrackingParticles in CMSSW lingo)
- "matchtrk_" : these are properties of the reconstructed L1 tracks (i.e. the tracks that are found by the L1 tracking algorithm) that are matched to the true tracks. There is a 1-to-1 correspondence between the tp_ branches and the matchtrk_ branches.
- i.e. the "tp_" and "matchtrk_" are vectors that for each event has length = number of tracking particles in the event.
- "trk_" : these are properties of all reconstructed L1 tracks (i.e. the tracks that are found by the L1 tracking algorithm) in the event.
- i.e. the "trk_" are vectors that for each event has length = number of L1 tracks in the event.
To make histograms from the ROOT ntuple files, you can use the L1TrackNtuplePlot.C script. You can look at the plotting script in github
here
.
To run it in ROOT, the first time (only) -- create the following output directory (this is where the histograms will be saved):
mkdir TrkPlots
Then open ROOT:
root -l
... and run as follows (assuming that the root file is called TTbar_PU200_D88.root, otherwise change the name accordingly):
.L L1TrackNtuplePlot.C++
L1TrackNtuplePlot("TTbar_PU200_D88")
This will create histograms showing the efficiency to find L1 tracks, as well as the resolution of the measured track parameters.
A mini-version of the above plotting script, which only contains the skeleton for how to read and access information from the ntuples (useful if you want to play around with making new plots yourself) is attached
here.
Hardware (TIF) stuff
To be added...
--
LouiseSkinnari - 2020-02-21