PhysicalVolumeInfoCollection: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 21: Line 21:
The PhysicalVolumeInfoMultiCollection is needed because different stages of a simulation might use completely different geometries, which have different numbers for the volumes.
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 PhysicalVolumeInfoMultiCollection in beginSubRun - copies existing, adds new from PhysicalVolumeHelper
* CompressPhysicalVolumes_module.cc filters the PVIC to a PVISS, saving only PVI used on SimParticles


[[Category:Computing]]
[[Category:Computing]]
[[Category:Code]]
[[Category:Code]]

Revision as of 15:20, 17 August 2017

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
  • 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 PhysicalVolumeInfoMultiCollection in beginSubRun - copies existing, adds new from PhysicalVolumeHelper
  • CompressPhysicalVolumes_module.cc filters the PVIC to a PVISS, saving only PVI used on SimParticles