Difference between revisions of "PhysicalVolumeInfoCollection"

From Mu2eWiki
Jump to navigation Jump to search
Line 16: Line 16:
 
* PhysicalVolumeInfo - a volume number and text name of the volume
 
* PhysicalVolumeInfo - a volume number and text name of the volume
 
* PhysicalVolumeInfoCollection - a vector of PhysicalVolumeInfo
 
* PhysicalVolumeInfoCollection - a vector of PhysicalVolumeInfo
* PhysicalVolumeInfoSingleStage - a [[CetMapVector|cet::map_vector]] of PhysicalVolumeInfo, only the PVI that are used by SimParticles
+
* PhysicalVolumeInfoSingleStage - a [[CetMapVector|cet::map_vector]] of PhysicalVolumeInfo, only the PVI that are used by SimParticles. The map_vecotr index is a volume number.
 
* PhysicalVolumeInfoMultiCollection - a vector of PhysicalVolumeInfoSingleStage
 
* PhysicalVolumeInfoMultiCollection - a vector of PhysicalVolumeInfoSingleStage
  

Revision as of 22:50, 2 March 2018

Expert.jpeg 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. The map_vecotr index is a volume number.
  • 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.

  • Mu2eG4/src/Mu2eG4_module.cc creates PhysicalVolumeHelper, fills with all volumes at begin run from geant PhysicalVolumeStore, creates PhysicalVolumeInfoMultiCollection in beginSubRun - copies existing, adds new from PhysicalVolumeHelper for current stage
  • CompressPhysicalVolumes_module.cc filters the PVIC to a PVISS, saving only PVI used on SimParticles