Offline Tutorial:Contents

From Daya Bay
Jump to navigation Jump to search

This topic gives the contents of the latest Daya Bay Offline Software Tutorial material. Past tutorials:

Location and Time

IHEP, room A511, Dec 14 & 15 8:30-17:00.

Agenda

Agenda in DocDb (day 1 and day 2) is definitive. Here are notes and guidance for teachers and students.

Session 1

The first session focusses on having the students immediatly use the existing software.

Login, Setup Environment (20 minutes, Qiumei Ma)

  • IHEP or personal laptop account access
  • Locating release
  • Initial setup
  • "dyb" and "dyb__" helpers
  • Login to lxslc.ihep.ac.cn

If you can not write to your home directory you will need an AFS token. Get one by doing:

klog
(enter password)
  • Release is at: /home/dyb/dybsw/NuWa/NuWa-trunk/

Set up your environment:

cd /home/dyb/dybsw/NuWa/NuWa-trunk/
source setup.sh         # or setup.csh if using csh
cd tutorial/TutorialRelease/cmt
source setup.sh         # or setup.csh if using csh
cd                      # go back to your home

Diving in: run some simulation and produce histograms (30 minutes, Dan)

  • Simulate a source in the AD
  • Histogram some quantities
  • Run a pre-setup job

Running nuwa.py and understanding configuration (1 hour, Brett)

  • Presentation
  • Anatomy of an offline job
  • running nuwa.py
  • 4 layers of configuration
  • Use tutorial/DybHelloWorld
  • Using units

Detector Description (30 minutes, Wei)

  • geometry, materials and structure
  • The big-four: LVolume, PVolume, DetectorElement and GeometryInfo
    • XML
    • C++
  • Navigation between the above.
  • visualization, validation
  • DetHelpers (PmtGeomInfoSvc, CoordSysSvc)

Generators and GenTools (30 minutes, Kim)

  • basic premise of GenTools
  • tour of existing tools
  • use of external generators
  • can use tutorial/SimHistsExample/share/genhists.py (could use an update)

Detector Simulation (30 minutes, Brett)

  • Presentation
  • connection to geometry
  • customizations
  • historian and unobserver (DocDB document#2129)
  • can use tutorial/SimHistsExample/share/simhists.py (could use an update)

Electronics Simulation (30 minutes, Dan)

  • available settings
  • some results
  • ...

Trigger Simulation and Readout (45 minutes, Brandon)

  • available settings
  • connection to real data
  • some results
  • ...

Calibration and Reconstruction (60 minutes, Liangjian)

  • description
  • configuration
  • some results
  • Students should run these stages on previously supplied/generated Readout level files.

Session 2

The second session focusses on understanding the underlying mechanism of the software.

CMT, packages and projects (30 minutes, Brandon)

  • Types of packages
  • Package vs. Project
  • How to make each
  • Using personal projects against a central NuWa release
  • Class work:
    • Create a personal project
    • Import a package (example from previous day)
    • Build and run it
    • Modify the C++
    • Build and run it

The Gaudi Framework (1 hour, ???)

  • Let's have more hands-on detail than Charles' last talk.
  • System of units! How to correctly use values with units.
  • What is a component, tour of types (alg, svc, tool)
  • What is an Interface, why use them? How to write and how to use them.
  • Tour of commonly used gaudi, lhcb and dybguadi components
  • Class work:
    • Add a tool to the package from lesson before
    • Call it from the algorithm

Working in Python (30 minutes, Brett)

  • Very basics of the Python language
    • syntax, modules, functions, classes
    • advantages of using ipython for an enhanced interactive experience
  • Configuration (configurable) vs. runtime (pure-Python alg) Python code
  • CMT package stuff needed to build dictionaries
  • Accessing Interfaces and normal classes from Python
  • Limitations, conventions

Unit tests and Trac (30 minutes, Simon Blyth)

  • What are unit tests
  • writing unit tests
  • running them
  • unit tests and trac
  • you and trac

Data distribution with SPADE (30 minutes, Simon Patton)

  • Features.
  • How it is setup and will run.
  • Naming conventions

Transient Data Model and File I/O (30 minutes, Brett)

  • GaudiObjDesc
  • HeaderObject, TemporalDataObject
  • Persistent objects and converters
  • Normal file output and input
  • Special cases - push-mix and pull input

Pull mode of simulation (30 minutes, Zhe or Brett)

  • Description of how it works
  • Configuration
  • Example with as many stages as are supported

Push mode of simulation (30 minutes, Meng)

  • Description of how it works
  • Configuration
  • Examples


Close-out/summary & what next? (1 hour, Meng or Craig)

  • Initial assessment of tutorial
  • Feedback and comments
  • Next?