PhysicalVolumeInfoCollection: Difference between revisions
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
volume in which the particle was born and the other describes the volume in which | volume in which the particle was born and the other describes the volume in which | ||
the particle stopped. | the particle stopped. | ||
SimParticle volume number is the index in PhysicalVolumeHelper | |||
StepPointMC's record only the copy number for the volume. | |||
The components are: | The components are: | ||
* PhysicalVolumeInfo - a volume | * PhysicalVolumeInfo - a volume text name and material name. It also contains the copy number for volumes which are repeated, such as crystals. | ||
* 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. The | * PhysicalVolumeInfoSingleStage - a [[CetMapVector|cet::map_vector]] of PhysicalVolumeInfo, only the PVI that are used by SimParticles. The map_vector index is a counter over the geant volume store. | ||
* PhysicalVolumeInfoMultiCollection - a vector of PhysicalVolumeInfoSingleStage | * 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. | The PhysicalVolumeInfoMultiCollection is needed because different stages of a simulation might use completely different geometries, which have different numbers for the volumes. | ||
* Mu2eG4/src/PhysicalVolumeHelper holds full list of volumes, list of PV's for a single stage, converts geant track to an index in the volume list | * Mu2eG4/src/PhysicalVolumeHelper holds full list of volumes as geant pointers, list of PV's for a single stage, converts geant track to an index in the volume list | ||
* 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 | * 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 | * CompressPhysicalVolumes_module.cc filters the PVIC to a PVISS, saving only PVI used on SimParticles |
Revision as of 20:29, 6 March 2018
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.
SimParticle volume number is the index in PhysicalVolumeHelper StepPointMC's record only the copy number for the volume.
The components are:
- PhysicalVolumeInfo - a volume text name and material name. It also contains the copy number for volumes which are repeated, such as crystals.
- PhysicalVolumeInfoCollection - a vector of PhysicalVolumeInfo
- PhysicalVolumeInfoSingleStage - a cet::map_vector of PhysicalVolumeInfo, only the PVI that are used by SimParticles. The map_vector index is a counter over the geant volume store.
- 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/PhysicalVolumeHelper holds full list of volumes as geant pointers, list of PV's for a single stage, converts geant track to an index in the volume list
- 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