PhysicalVolumeInfoCollection: Difference between revisions
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 | * Mu2eG4/src/Mu2eG4_module.cc creates PhysicalVolumeHelper, fills at begin run, 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 | * 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:22, 17 August 2017
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 PhysicalVolumeHelper, fills at begin run, 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