Tutorial 2019 June: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
 
(33 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''This is a page is under development: please do not use!
'''This is a page is under development, please check back frequently for updates and corrections.'''
'''
Starting page for the June 2019 Mu2e Tutorials


== Post Tutorial Survey ==
If you attended the tutorial day, or have worked through the exercises on your own,please fill the
[https://docs.google.com/forms/d/e/1FAIpQLSeuLJ9W6y8dENVWlf3t5b9yj8F-47k5VY4LxbYhpnK8fFvSTA/viewform?vc=0&c=0&w=1&usp=mail_form_link Post-Tutorial Survey], which will help us improve the tutorial.


== Introduction ==
== Introduction ==
Line 10: Line 12:


The tutorials will be held at the University of Minnesota as part of the June 2019 Mu2e Collaboration meeting, please
The tutorials will be held at the University of Minnesota as part of the June 2019 Mu2e Collaboration meeting, please
see [https://mu2e-docdbcert.fnal.gov/cgi-bin/cert/ShowDocument?docid=25980 | doc 25980 ] for the agenda.  
see [https://mu2e-docdbcert.fnal.gov/cgi-bin/cert/ShowDocument?docid=25980 doc 25980 ] for the agenda.  
Because of limited connectivity and latency from UMn, we will not work with computing resources specific to
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.
Fermilab in these tutorials.  Those topics will be covered in a later set of tutorials that will be held at FNAL.
Line 23: Line 25:
To participate in the tutorials you must bring your own laptop computer.  Mac, Windows, and Linux based computers
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.
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 the following install at least 1 week before the tutorial, so that you can get
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 [https://mu2e-hnews.fnal.gov/HyperNews/Mu2e/get/HELPBug.html Mu2e Computing Help Hypernews].
help if you have problems.  Please post your problems to the [https://mu2e-hnews.fnal.gov/HyperNews/Mu2e/get/HELPBug.html Mu2e Computing Help Hypernews].


We will use a docker container to provide all participants with a uniform computing environment.  Your laptop
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
must have enough free disk space to allow downloading and installing [[Docker]] and the [[Docker]] container, which
together occupy about 30 GBytes.  Once loaded and started, the docker container will create a virtual machine on your computer which emulates one of the
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 spaceYour 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
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 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 [[ Docker | 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 <span id="LatestVersion">tutorial_1-03</span>.  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.


To download the tutorial docker container you must first install docker itself on your computerInstructions for that
Start an interactive Docker session using this image, for example,
are given [[ Docker | here ]]. Docker itself occupies ~20 GBytes of space.  Once docker is installed, you must download the container for the the tutorial.  The instructions below are '''PROVISIONAL''' and will be updated before the tutorial, use these only to test.
> 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-03
see the [[ Docker | 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.


Pull in the docker image; this requires ~6GBytes of space
 
* docker pull mu2e/user:tutorial_1-00
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 [https://mu2e-hnews.fnal.gov/HyperNews/Mu2e/get/HELPBug.html 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.
 
 
'''UPDATE'''
To run the event display (running art exercise 10) and some of the later tutorials, you need the following fix:
first, copy over the fix file:
<nowiki>
  [root@25530e452a09 home]# scp 'your_user_name'@mu2egpvm04.fnal.gov:/mu2e/app/Tutorials_2019/fix.sh ./
[root@25530e452a09 home]# source fix.sh
</nowiki>


== Prerequisites ==
== Prerequisites ==
Line 48: Line 84:
material you are skipping.  You should review the material of any tutorial you plan to skip.
material you are skipping.  You should review the material of any tutorial you plan to skip.


== Sessions ==
An additional reference that may interest you is the
[https://art.fnal.gov/wp-content/uploads/2016/03/art-workbook-v0_91.pdf *art* workbook ], which has a tutorial starting at a very basic level about using the ''art'' framework.  This workbook is based on an older version of art so there are differences in details but the big picture ideas are unchanged.
 
== Sessions Agenda ==
The tutorial is divided into sessions, each with its own leader(s).  Each session will cover a broad topic,
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.
with exercises progressing from introductory to expert.  Noone is expected to finish all the exercises.
Line 55: Line 94:
A template for a new tutorial session can be found [[Tutorial_Session_Template | here]].
A template for a new tutorial session can be found [[Tutorial_Session_Template | here]].
Guidelines for tutorial session and exercise preparation can be found [[ #Instructions for Session Leaders | below]].
Guidelines for tutorial session and exercise preparation can be found [[ #Instructions for Session Leaders | 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).
Below is the linked list of sessions with their associated leader(s).


{|
{|
| Overview of the Mu2e Experiment || Sarah Demers
| 8:00 - 9:00 || [https://mu2e-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=26914 Mu2e Physics and Detector Overview] || Sarah Demers
|-
|-
| [[ Mu2e_Offline_Tutorial | Working with Mu2e Offline ]] || Ray Culbertson, Rob Kutschke
| 9:00 - 9:10 || [https://mu2e-docdbcert.fnal.gov/cgi-bin/cert/ShowDocument?docid=26908 Tutorial Welcome] || David Brown
|-  
|-  
| [[ Running_Art_Tutorial | Running an 'art' job in Mu2e Offline ]] || Richie Bonventre, Ralf Ehrlich, Rob Kutschke
| 9:10 - 10:00 ||  [[ Mu2e_Offline_Tutorial | Working with Mu2e Offline ]] || Ray Culbertson, Rob Kutschke
|-
| 10:00 - 10:30 || Break ||
|-
|-
| [[ Basic_ROOT_Tutorial_Collaboration_Meeting_Jun2019 | Using Root ]] || Sophie Middleton, Richie Bonventre
| 10:30 - 11:30 || [[ Running_Art_Tutorial | Running an 'art' job in Mu2e Offline ]] || Richie Bonventre, Ralf Ehrlich, Rob Kutschke
|-
|-
| [[ STNtuple_Tutorial_Session | Using STNtuple for analysis ]]|| Giani Pezzullo, Pasha Murat
| 11:30 - 12:00 || [[ Basic_ROOT_Tutorial_Collaboration_Meeting_Jun2019 | Using Root ]] || Sophie Middleton, Richie Bonventre
|-
|-
| [[TrkAna_Tutorial_Session | Using TrkAna for analysis ]] || Andy Edmonds, Dave Brown
| 12:00 - 13:30 || Lunch ||
|-
| 13:30 - 14:30 || [[ STNtuple_Tutorial_Session | Using STNtuple for analysis ]]|| Giani Pezzullo, Pasha Murat
|-
|-
| [[ Module_Writing_Tutorial | Writing an Offline art module ]] || Andy Edmonds, ..
| 14:30 - 15:30 || [[TrkAna_Tutorial_Session | Using TrkAna for analysis ]] || Andy Edmonds, Dave Brown
|-
|-
| [[ Data_and_Processing_Tutorial | Data Structures and Processing Sequences ]] || Rob Kutschke, Dave Brown, ...
| 15:30 - 16:00 || Break ||
|-
| 16:00 - 17:00 || [[ Module_Writing_Tutorial | Writing an Offline art module ]] || Andy Edmonds, ..
|-
| 17:00 - 18:00 || [[ Data_and_Processing_Tutorial | Data structures and processing sequences ]] || Rob Kutschke, Dave Brown, ...
|-
| 18:00 - 20:00 || [https://home.fnal.gov/~kutschke/TownHallBrewery.pdf Map] || Meet at Town Hall Brewery
|}
|}


== Agenda ==
=== 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
|}


== Exercises ==
List of exercises (or links to exercises) ...
== Instructions for Session Leaders ==
== Instructions for Session Leaders ==
Please read all of the instructions below before starting to plan your session!
Please read all of the instructions below before starting to plan your session!
Line 90: Line 151:


* Most tutorial sessions will be 1 hour long
* Most tutorial sessions will be 1 hour long
* Each session will have a page on this wiki.  Rob and Dave will tell you where to find the page for your session.
* Each session has a page on this wiki (see above).
* At the tutorial, each session leader will give a short introductory presentation that gives an overview of the ideas introduced by the exercises.  Keeping it under 5 minutes is great and under 10 minutes is OK.  
* 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.  
* This introductory information should also be present near the top of the wiki page.  If you can give the presentation using the wiki, that's better than using slides.
** 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.
* The introductory material should contain a list of prerequisites and co-requisites, which may include other tutorials or suggested reading.
* Each session should list and link prerequisites and co-requisites, which may include other tutorials, docDB notes, or other suggested reading.
* Following the presentation, the session leader will direct the students to a series of exercises that they can work on.
* 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.
** 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.
* 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.
* 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.
* 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.
* 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.
* To the extent possible, the session leaders should design wiki pages and exercises so that people can work at their own pace both during and after the tutorial day.
* When planning your time budget, remember that it may take 5 to 10 minutes for people to get started on the first exercise.
* When planning your time budget, remember that it may take 5 to 10 minutes for people to get started on the first exercise.

Latest revision as of 15:57, 25 June 2019

This is a page is under development, please check back frequently for updates and corrections.

Post Tutorial Survey

If you attended the tutorial day, or have worked through the exercises on your own,please fill the Post-Tutorial Survey, which will help us improve the tutorial.

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-03. 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-03

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.


UPDATE To run the event display (running art exercise 10) and some of the later tutorials, you need the following fix: first, copy over the fix file:

 [root@25530e452a09 home]# scp 'your_user_name'@mu2egpvm04.fnal.gov:/mu2e/app/Tutorials_2019/fix.sh ./
 [root@25530e452a09 home]# source fix.sh
 

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.

An additional reference that may interest you is the *art* workbook , which has a tutorial starting at a very basic level about using the art framework. This workbook is based on an older version of art so there are differences in details but the big picture ideas are unchanged.

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 Mu2e Physics and Detector Overview 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, ...
18:00 - 20:00 Map Meet at Town Hall Brewery

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.