The NOvA Offline Workbook¶
- Table of contents
- The NOvA Offline Workbook
- Setting Up Fermilab Computing Accounts
- Introduction to NOvASoft
- Introduction to ART and running ART modules
- Data Products and Reconstruction Objects
- Using Backtracker
- Using the Event Display
- CAF Basics
- Using CAFAna
- Database Basics
- Creating and Submitting Grid Jobs
- Other Assorted Tools and Documentation
Ramping up to be a highly functional nova offline software developer is a challenge. This page serves as a roadmap for mastering the skills required to use and develop the nova offline software codebase.
Update: In the time since these tutorials were posted, some aspects of the NOvA offline software have changed. If you find any of these instances, please document them in the appropriate section below. If you find a way to work around or correct the problem, please document that as well, prefacing your comment with " Update: ".
Update: New people start here http://nusoft.fnal.gov/nova/tutorials/tutorials.php. This link has all the most recent tutorial videos available.
Setting Up Fermilab Computing Accounts¶
Acquiring privileges to use Fermilab computing is a challenge in itself. The following pages can help guide you through the process:
- Introduction to Computing at Fermilab - Guide to Fermilab Computing from ServiceNow, i.e. Fermilab Computing * Fermilab Computing Access - Walkthrough on acquiring access specific to NOvA * FIFE (Fabric for the Intensity Frontier Experiments) redmine project
Introduction to NOvASoft¶
Working with NOvA code is a complicated menagerie of ART, FHiCL (or fcl, pronounced "fickle"), SoftRelTools, SVN and more. The learning curve is steep, but after a few years you start to understand the basics. The following pages can give you an introduction to using these systems.
- April 2014 Tutorial Video: NOvASoft and SVN * April 2014 Slides in DocDB: NOvASoft and SVN * Documentation FOR BEGINNERS * Computing Maintenance Usually the Third Thursday of each month * Using NOvASoft on the GPVM nodes * Installing a local copy of NOvASoft and the external products * Installing a local copy of a tagged release * NOvA Computing Do's and Don'ts * Devs SVN Repository Access
Introduction to ART and running ART modules¶
ART is the backbone of the nova offline reconstruction effort. It is a configurable framework that allows plug-and-play modules to be strung together to produce and analyze reconstructed data products.
- April 2014 Tutorial Video: ART Framework
* April 2014 Slides in DocDB: ART Framework
* *Update: The path on Slide 14 is no longer valid; however, equivalent files are available using ifdh_fetch
setup ifdhc ifdh_fetch fardet_genie_fhc_swap_none_1000_r00014902_s60_c000_S15-05-22_v1_20150427_170335_sim.pid.root* Using the Framework * ART Workbook * ART Tutorial * Editing Code * Using artmod * Using Associations * Adding a package to NOvASoft * Running Jobs (including how to use fhicl)
Additional ART documentation
(via the mu2e experiment, until the ART developers can write/distribute their own)
(Don't complain to mu2e or Rob Kutschke for NOvA-specific problems) ** Using FHICL quick start guide and formal spec mu2e notes ** Using Paths ** Using ART Services ** Native ART Services ** Possibly others under the art section here * Need to know what values were used from fhicl files to fill a
fhicl::ParameterSetpassed to a job module?
Data Products and Reconstruction Objects¶
Once you know about the ART framework, you might start to wonder how we use it. There are many modules and data products that NOvA uses. Evan Niner gave a tutorial in April 2014 about the ones used in NOvA reconstruction.
An ART service called BackTracker is a general purpose tool for accessing truth information from simulation.
- April 2014 Tutorial Video: BackTracker * April 2014 Slides in DocDB: BackTracker * Doxygen Class Index for Backtracker
Using the Event Display¶
The event display is a great tool for looking at individual data events. It is a root GUI that allows you to browser through events one at a time with the event information displayed in a meaningful way (arranged in the physical coordinates of the detector.) The link below will give you a basic tour through using the event display.
CAF stands for Common Analysis File. These files contain simple ROOT trees that summarize the offline reconstruction and PID processing. The following pages contain useful information about CAFs:
- CAF ROOT Macros and PyROOT - Information on how to interact with CAFs using ROOT * CAF Tree Structure and Variable Listing - Descriptions of the leaves and branches in CAF * April 2014 Tutorial Video: CAF * April 2014 Slides in DocDB: CAF * How to make an ART sandbox variable and put it into CAF * How to put a variable into CAF - Wiki
CAFAna is a framework designed for performing oscillation analysis using CAFs. Using it is not mandatory, but it has many tools that make life easy.
NOvA uses databases to store certain information, especially calibration and detector configurations.
Creating and Submitting Grid Jobs¶
- NOvA-specific information ** Running nova jobs on the Grid ** Submitting NOvA ART Jobs ** SAM Web Cookbook ** SAM Tutorial Video and Slides in DocDB * More general infromation from the computing division ** Getting Started on GPCF ** Using the JobSub Client
There a lot of common errors that we see recurring on the offline list frequently. The Trouble Shooting and Gotchas page is dedicated to these common failure modes.