PhysicalVolumeInfoCollection
This page page needs expert review!
Actually, the definition of a data product is slightly broader than this.
The art::Run
object is just an art::RunId
object plus a collection of data products;
similarly for the art::SubRun
object. An example of a data product in the Run record
is PhysicalVolumeInfoCollection. When we intialize Geant4, we do it
in the beginRun method of Mu2eG4/src/G4_plugin.cc
. At the end of Geant4
initialization we
create a std::vector
of all physical volumes known to G4 and we put this
information into the art::Run
object as a PhysicalVolumeInfoCollection.
The SimParticle class holds two indices into this collection; one describes the
volume in which the particle was born and the other describes the volume in which
the particle stopped.
The components are:
- PhysicalVolumeInfo - a volume number and text name of the volume
- PhysicalVolumeInfoCollection - a vector of PhysicalVolumeInfo
- PhysicalVolumeInfoSingleStage - a cet::map_vector of PhysicalVolumeInfo, only the PVI that are used by SimParticles
- PhysicalVolumeInfoMultiCollection - a vector of PhysicalVolumeInfoSingleStage
The PhysicalVolumeInfoMultiCollection is needed because different stages of a simulation might use completely different geometries, which have different numbers for the volumes.