# art -c Ex07/ex07.fcl
# root -l ../art-workbook/artwb/Ex07/ex07.cint
Two ways to look at source code:
# less $ART_WORKBOOK_BASE_INC/artwb/MCDataProducts/GenParticle.h
# Or via online code browser: GenParticleCollection.h and GenParticle.h
# CLHEP a Class Library for HEP. "Home page":
# For CLHEP, find files at
# $CLHEP_INC/CLHEP/Vector/LorentzVector.h, $CLHEP_INC/CLHEP/Vector/LorentzVector.icc
# Weird conventions: file names do not match clsas names.
# Explain .icc convention; we do not recommend it (CLHEP is old).
# OR code browser: Hep3Vector.h HepLorentzVector
# Look at the printout and understand it.
The ordinal number ( index in the collection )
# Particle Data Group (pdg) id code of the particle ( see ex08 ). 333 is a Phi, and K-.
# Position at creation ( always (0,0,0) ).
# 4 Momentum at creation.
# Status code ( 0=particle was not decayed in the generator; 1= particle was decayed in generator). Meaning will be clear later.
# Indexing information for parent and for children. If not present then the word "none" appears.
# In the parent printout, for example "1:2 0". The 1:2 is a data product ID ( defined later - basically it says that parent is in the same GenParticleCollection as the child ) and the 0 is the index into the GenParticleCollection. So both particles 1 and 2 have a parent of 0,while 0 has no parent.
# In the child printout the same info is present but is formatted differently ( ooops ); the index is separated from the product Id by a dot (.) rather than whitespace.
# Both HepLorentzVector and Hep3Vector have a member function named mag. They do different things. On a Hep3Vector it returns the magnitude of the momentum. On a HepLorentzVector it returns the invariant mass. This does make sense in that it mimics that standard mathematical notation; but it is a common mistake to use the mag function expected to get a momentum and instead getting a mass.
# Run ex07Activity01.fcl
This breaks up a long one-liner in Ex07_module.cc into smaller steps. This might make it easier to understand. The const& are very important or else you make needless and wasteful copies.
# Also add a few new histograms to illustrate properties of CLHEP::Hep3Vector and CLHEP::HepLorentzVector
# Needed to add the header <cmath> to get the constant M_PI.
# root -l ../art-workbook/artwb/Ex07/ex07Activity01.cint
# art -c Ex07/ex07Activity02.fcl
Many different ways to write the same loop as was in Ex07_module.cc. We recommend the version in Ex07_module.cc but you will see the others.
Looping in many different ways
# Attributes of a GenParticle