Tutorial 2019 June
This is a page is under development, please check back frequently for updates and corrections.
Introduction
These wiki-based Computing and Software tutorials are the first Mu2e tutorials in four years. In these, we will cover how to work with the most up-to-date tools and datasets, including last year's Mock Data Challenge (MDC2018), which production is only recently finished.
The tutorials will be held at the University of Minnesota as part of the June 2019 Mu2e Collaboration meeting, please see doc 25980 for the agenda. Because of limited connectivity and latency from UMn, we will not work with computing resources specific to Fermilab in these tutorials. Those topics will be covered in a later set of tutorials that will be held at FNAL.
The topics presented in these tutorials were selected based on a survey of Mu2e members interests and prior knowledge, the results of which can be found here.
Because of limited staffing, we will hold the tutorials in a single room. To cover the wide range of prior knowledge indicated by the survey, the tutorials will be mostly self-paced.
Before your arrive in Minnesota
To participate in the tutorials you must bring your own laptop computer. Mac, Windows, and Linux based computers are in principle all supported, but you must prepare your computer in advance according to the following instructions. We recommend that you try to perform all the following at least 1 week before the tutorial, so that you can get help if you have problems. Please post your problems to the Mu2e Computing Help Hypernews.
We will use a Docker container to provide all participants with a uniform computing environment. Your laptop must have enough free disk space to allow downloading and installing Docker and the Docker container, which together occupy about 20 GBytes. Do not try to install Docker and the container unless you have at least 25-30 GBytes of free space on your computer. You will need to cleanup your disk if you don't have enough space. Your computer must support (native) x-windows graphics and a command-line terminal. To test start a terminal window, and run:
> xev
That should pop up a small window that you can click in. To close it, return scope to the terminal window and type
^C (ie control-c)
Once loaded and started, the Docker container will create a virtual machine on your computer which emulates one of the MU2EGPVM machines at Fermilab. Most, but not all, of the functionality you would have on a MU2EGPVM login session will be available to you from the Docker image.
To download the tutorial Docker container you must first install Docker itself on your computer. Instructions for that are given here .
Once you have installed Docker you will need to pull in the tutorial Docker image. From inside your terminal window run:
> docker pull mu2e/user:tutorial_1-xx (where xx is a version number)
We are currently using tutorial_1-02. The version number will increase as we update/add content. Please check back here frequent for updates. The first pull will take the longest, subsequent pulls will only affect added/updated content.
Start an interactive Docker session using this image, for example,
> export ip=`ifconfig en0 | grep inet | awk '$1=="inet" {print $2}'` (you may need to tweak this..) > docker run --rm -v /Users:/Users -it -e DISPLAY=$ip:0 mu2e/user:tutorial_1-02
see the docker instructions wiki pages for some details and links. Please familiarize yourself with the effect of "--rm" and the difference between container disk space (like /home), which may be temorary, and, in this example, a mounted local disk /User.
Follow the startup messages instructions to configure your environment.
To test that everything is working, please run the following from inside the running Docker container:
[root@25530e452a09 home]# source /setupmu2e-art.sh [root@25530e452a09 home]# source /Offline/v7_4_1/SLF6/prof/Offline/setup.sh [root@25530e452a09 home]# root -l $ROOTSYS/tutorials/graphs/splines_test.C (then .q) [root@25530e452a09 home]# mu2e -c /Offline/v7_4_1/SLF6/prof/Offline/Analyses/test/genReco.fcl --nevts 10
If these run successfully you are ready for the tutorials. If you have problems please post to Mu2e Computing Help Hypernews. To exit your Docker shell, just type:
[root@25530e452a09 home]# exit
That will return you to your native operating system shell.
Prerequisites
The tutorials assume a basic understanding of the Mu2e detector and the science goals of the Mu2e experiment. If these aren't familiar to you, please plan on attending the overview lecture.
The Mu2e tutorials assume a basic understanding of C++ and coding in general. If you are unfamiliar with C++ you should take an online tutorial, or have started a self-paced class before the Mu2e tutorials.
The tutorial exercises build on each other, so do not plan to skip exercises unless you already feel comfortable with the material you are skipping. You should review the material of any tutorial you plan to skip.
Sessions Agenda
The tutorial is divided into sessions, each with its own leader(s). Each session will cover a broad topic, with exercises progressing from introductory to expert. Noone is expected to finish all the exercises. The session leaders will indicate appropriate starting points in the exercise list depending on the experience level of the attendee. A template for a new tutorial session can be found here. Guidelines for tutorial session and exercise preparation can be found below.
The tutorial sessions will be held in room 'N' building 'Y' at the University of Minnesota.
Below is the linked list of sessions with their associated leader(s).
8:00 - 9:00 | Overview of the Mu2e Experiment | Sarah Demers |
9:00 - 9:10 | Tutorial Welcome | David Brown |
9:10 - 10:00 | Working with Mu2e Offline | Ray Culbertson, Rob Kutschke |
10:00 - 10:30 | Break | |
10:30 - 11:30 | Running an 'art' job in Mu2e Offline | Richie Bonventre, Ralf Ehrlich, Rob Kutschke |
11:30 - 12:00 | Using Root | Sophie Middleton, Richie Bonventre |
12:00 - 13:30 | Lunch | |
13:30 - 14:30 | Using STNtuple for analysis | Giani Pezzullo, Pasha Murat |
14:30 - 15:30 | Using TrkAna for analysis | Andy Edmonds, Dave Brown |
15:30 - 16:00 | Break | |
16:00 - 17:00 | Writing an Offline art module | Andy Edmonds, .. |
17:00 - 18:00 | Data structures and processing sequences | Rob Kutschke, Dave Brown, ... |
Zoom Information
The Overview session, and only that session, will be available for people to attend via zoom:
https://fnal.zoom.us/j/6308405645 |
ID: 630-840-5645 |
Telephone (US Toll): (+1 646 558 8656) or (+1 408 638 0968) |
International numbers: https://fnal.zoom.us/zoomconference?m=Axn1aFasUv2kNB0ss1ckBlhpidS4DVmA |
Instructions for Session Leaders
Please read all of the instructions below before starting to plan your session!
An important goal for this tutorial is that the attendees will spend most of their time working on exercises, not listening to us talk. We expect that the people attending this tutorial will have a broad spectrum of computing skills, HEP experience and familiarity with Mu2e. To address this we would like each session to contain many exercises that we can order from beginner level to advanced level. We do not expect every attendee to do every exercise in the allotted time; instead we expect that each attendee will decide to work on the exercises that make sense given their prior experience and their interests. We expect that many people will get started on exercises during the tutorial day and will complete more exercises at a later date.
We hope that most sessions will fit into the following plan; the only exception to this is the first session, which is a lecture overview.
- Most tutorial sessions will be 1 hour long
- Each session has a page on this wiki (see above).
- Each session leader should give a short introductory overview of the ideas introduced by the exercises. Keeping it under 5 minutes is great and under 10 minutes is OK.
- Introductory information should also be present on the session wiki page. If you can give the presentation using the wiki, that's better than using slides.
- Each session should list and link prerequisites and co-requisites, which may include other tutorials, docDB notes, or other suggested reading.
- The bulk of the session time should be spent on attendees performing exercises.
- The instructions for the exercises should be on the wiki page for the session.
- Exercises involving running root or mu2e should be performed inside the docker container
- Exercises should be developed on mu2egpvm* machines, and (eventually) tested under docker
- Materials for the exercises, like fcl scripts and data files, will need to be loaded into the docker container
- Materials should be put in the Tutorials/June2019/'YourSession' directory. Tutorials will be parallel to Offline in the docker container.
- Common data files will be under Tutorials/June2019/data
- Provide both inputs and example outputs from every exercise
- It is OK for exercises to use results from previous exercises
- Design exercises so people can work at their own pace both during and after the tutorial day.
- While people are working on exercises, the session leader and helpers should walk the room to help people who are stuck or have questions.
- The instructions should contain links to supporting and/or reference material that the attendees will find useful.
- While the attendees are working on the exercises, the session leaders and helpers will circulate among the attendees to answer questions.
- If a question comes up frequently the session leader or designate can give a short presentation about that question.
- In some sessions, it might make sense for the session leader to devote that last 5 or 10 minutes of the session to presenting his/her answer to some of the exercises.
- When planning your time budget, remember that it may take 5 to 10 minutes for people to get started on the first exercise.