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:

  1. A terminal window
  2. Basic unix/linux skills to navigate
  3. 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

Topic attachments
I Attachment History Action Size Date Who Comment
C source code filec MiniPlot.C r1 manage 13.1 K 2021-05-10 - 17:21 LouiseSkinnari example (mini) plotting script for making plots from the ntuples
Edit | Attach | Watch | Print version | History: r12 < r11 < r10 < r9 < r8 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r12 - 2023-01-18 - LouiseSkinnari
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback