Mu2e Home
Aug 2012 Software Workshop

When: 9:00 AM Monday August 13 to Noon Friday August 17, 2012

Where: Fermilab Large Training Room  (map)

Table of Contents


The summer 2012 Mu2e Software workshop will be held at Fermilab during the week of Monday August 13, 2012. The workshop will start at 9:00 AM on Monday August 13 and will conclude at noon on Friday August 17. The plan is to work 9:00 AM to 5:30 PM each day with lunch from 12:00 to 1:30; on Monday lunch will start at 11:45 to accomodate a conflicting meeting. Participants will work through a series of workbook style exercises, with the software team available to answer questions and to give short presentations. Dave Brown will give a series of lectures on tracking and Kalman filters, with exercises mixed in. Marc Paterno from Fermilab CD will give a presentation on standards and practices.

The workshop will be held in Large Training Room in the Training Center (map). Please bring your own laptop, a pencil and a pad of paper; see below for some checks to perform before you arrive to make sure that your laptop is properly configured. This room has tables at which 30 can work comfortably; we will make sure that there is power for laptops at each table and that the room has enough network horsepower, both connections and bandwidth. This room does not have video capability. There are no plans for remote connections.

There is a list of people registered to attend. If you expected to find your name on the list and it is not there, please send email to me (kutschke at fnal dot gov). If you are on the list and your plans have changed, please let me know so that we can make room for others.

Draft Schedule

To Bring With You

  1. You need to bring your own laptop. Before you arrive, follow the instructions below to verify that you can access the Mu2e interactive machines.
  2. Bring a pad of paper and pencil, which will be needed during the tracking exercises.

Before You Arrive

  1. Make sure that you have a Fermilab Visitor ID and kerberos prinicpal. In the "Affiliation" pull-down menu, select "E-973 (Mu2e Muon to Electron Conversion"; the Fermilab contact person should be Bob Bernstein.
  2. Get a Service account and Service password.
  3. Apply for an FNALU account. Log in to the Service Desk. Click on "Accounts" followed then click on "FNALU Account".
  4. Request mu2e accounts. To do this, send email to Lynn Garren and myself ( garren at fnal dot gov and kutschke at fnal dot gov ). In the email tell us your Fermilab kerberos principal.
  5. Verify that you can log in to and Follow the instructions for logging in to the Fermilab interactive machines.
  6. Verify that you can start an xterm and have the display appear on your laptop. If you have trouble with this, check again the instructions for logging in to the Fermilab interactive machines.
  7. Verify that you can run a root session and display a histogram on your laptop.
  8. Verify that you can check out files from the Mu2e cvs repository. See the instructions for using the Mu2e cvs repository. You might also want to view the Mu2e cvs cheat sheet.
  9. Verify that you can display G4 graphics on your laptop.
  10. Know the basic outline of the Mu2e experiment.

The Workbook, Tracking Exercises and Presentations

I have prepared a Workbook that contains some of the exercises that we will work on during the workshop.

Other material presented at the workshop:

On Tuesday morning:

  1. cd to your working directory and source the two setup scripts.
  2. cvs update -PdA Ex03
  3. cvs update -PdA Ex04
  4. cvs update -PdA Ex05
  5. cvs update -PdA Ex06
  6. cd ..
  7. cvs co Workbook/Ex07
  8. cd Workbook

The previous Ex06 is now Ex07. A new Ex06 has been introduced.

I have also changed the files in /grid/fermiapp/mu2e/DataFiles/ExampleDataFiles/Workbook/. The previous versions are in the subdirectory old2.

On Wednesday morning:

  1. cd to your working Workbook directory and source the two setup scripts.
  2. cd ..
  3. cvs co Workbook/Ex01/
  4. cvs co Workbook/Ex02/
  5. cvs co Workbook/Ex02/ex02Answer.fcl
  6. cvs co Workbook/Ex06/
  7. cvs co Workbook/InputFiles
  8. cvs co Workbook/Ex08
  9. cd Workbook
The module Ex01Answer shows how to access the run and event parts of an art:;EventID object. The moudle Ex06Answer shows how to print out the positions of each foil. Check these out. Make appropriate fcl files and run these modules.

Part 2 of Wednesday:

  1. cd to your working Workbook directory and source the two setup scripts.
  2. cd ..
  3. cvs co Workbook/Ex02/
  4. cvs co Workbook/Ex02/ex02Answer.fcl
  5. cvs co Workbook/InputFiles
  6. cd Workbook

On Friday morning:

  1. cd to your working Workbook directory and source the two setup scripts.
  2. cd ..
  3. cvs co Workbook/Ex11
  4. cvs co Workbook/InputFiles/mixing_01.fcl
  5. cd Workbook

Working Notes

A preliminary guess at the list of topics includes:

  1. How to read information from already existing Mu2e event-data files. What information is available in these files: understand both the physics content and the technology for accessing it. This will include both MC information and reconstructed information; it will include both beamline focused information and detector focused information.
  2. How to make your own histograms, ntuples, TTrees.
  3. How to access geometry, conditions and global constants, such as the particle data table.
  4. How to run jobs to do the standard simulation and reconstruction chains.
  5. How to make run-time modifications to the simulation and reconstruction jobs: change event generators, modify the geometry, modify the details of event mixing, modify the behaviour of G4, etc.
  6. Depending on demand and time availability we may also cover things such as:
  7. No linkage loops
If there are other topics you would like addd to the list, please send email to Rob Kutschke.

Other notes

  1. Include grid examples; make sure we have migrated to jobsub by then.
  2. Root tutorial? Can we just point them at the info on the root web site or is it important to break some bad habits before we do?
  3. Can we define a c++ basics for work ahead of time?
  4. Make sure that the working room has enough network.
  5. Presumes that you understand some computer language and understand the ideas of what is a variable, branching, looping, pointers.
  6. Once we know who is participating we will learn the level at which we need to target the workshop.
  7. Do we need the wiki running by then?
  8. Do we want to change the exercises to use input tags?
  9. Coding practices: required and suggested.
  10. Do we want to teach to C++11? Should code be converted first?
  11. Get rid of geometry oddities first: 12000, 10200, superfluous 3904.
  12. Tell people never to use the randomized dots representation of a TH2.


  1. Introductory series: use a preexisting data file of single track conversion electron events. All Analyser modules.
    1. Print number of reco tracks:
      1. Change number of events to do; .fcl and command line.
      2. Change name of the input file; .fcl and command line.
      3. Start at event 5.
      4. Skip n events.
    2. Histogram number of reco tracks.
      1. Introduce TFileService.
      2. Change name of histogram file; .fcl and command line.
    3. Histogram momentum spectrum of reco tracks.
    4. Apply cuts on reco tracks and make serveral histograms.
    5. Introduce parameter sets to modify cuts at run time.
      1. You can make a copy of the pset but do not save a pointer or reference.
    6. Histograms of StrawHits and CaloCrystalHits.
    7. Get list of all data products in an event. Describe 4 part product id.
    8. Write a filter module to write out selected event.
    9. Read back the selected events.
  2. Beamline studies series
  3. art/fhicl exercises
    1. Illustrate paths.
    2. tracer, cpu time, memory leak
  4. MC Series
    1. Run single conversion electron MC. Make input file for first examples and rerun on the new input file.
    2. Exercise: Modify the geometry somehow.
    3. Exercise: Modify the conditions data
    4. Make one of the mixin files.
    5. Run the MC/Reco chain
    6. Run the POT MC to make file(s) of particles entering the DS.
    7. Run the extinction monitor MC.
  5. Advanced series
    1. Chaining jobs

Where do we introduce:

  1. Parameter set can contain another parameter set and we can extract it as a parameter set.
  2. Example of building an object from a parameter set.
  3. Prolog and notation to override values in a .fcl file.
  4. How to find source for framework, fhicl, ...

Fermilab at Work ]  [ Mu2e Home ]  [ Mu2e @ Work ]  [ Mu2e DocDB ]  [ Mu2e Search ]

For web related questions:
For content related questions:
This file last modified Wednesday, 12-Aug-2015 21:13:09 CDT
Security, Privacy, Legal Fermi National Accelerator Laboratory