Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CexmcSimpleProductionModelDataStore.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 /*
27  * ============================================================================
28  *
29  * Filename: CexmcSimpleProductionModelDataStore.cc
30  *
31  * Description: serialization helper for production model data
32  *
33  * Version: 1.0
34  * Created: 02.01.2010 14:56:53
35  * Revision: none
36  * Compiler: gcc
37  *
38  * Author: Alexey Radkov (),
39  * Company: PNPI
40  *
41  * ============================================================================
42  */
43 
44 #ifdef CEXMC_USE_PERSISTENCY
45 
46 #include <G4ParticleTable.hh>
49 #include "CexmcException.hh"
50 
51 
52 CexmcSimpleProductionModelDataStore::CexmcSimpleProductionModelDataStore()
53 {
54 }
55 
56 
57 CexmcSimpleProductionModelDataStore::CexmcSimpleProductionModelDataStore(
58  const CexmcProductionModelData & pmData )
59 {
60  incidentParticleSCM = pmData.incidentParticleSCM;
61  incidentParticleLAB = pmData.incidentParticleLAB;
62  nucleusParticleSCM = pmData.nucleusParticleSCM;
63  nucleusParticleLAB = pmData.nucleusParticleLAB;
64  outputParticleSCM = pmData.outputParticleSCM;
65  outputParticleLAB = pmData.outputParticleLAB;
66  nucleusOutputParticleSCM = pmData.nucleusOutputParticleSCM;
67  nucleusOutputParticleLAB = pmData.nucleusOutputParticleLAB;
68  incidentParticle = pmData.incidentParticle->GetPDGEncoding();
69  nucleusParticle = pmData.nucleusParticle->GetPDGEncoding();
70  outputParticle = pmData.outputParticle->GetPDGEncoding();
71  nucleusOutputParticle = pmData.nucleusOutputParticle->GetPDGEncoding();
72 }
73 
74 
75 CexmcSimpleProductionModelDataStore::operator CexmcProductionModelData() const
76 {
77  G4ParticleDefinition * incidentParticleDefinition(
78  G4ParticleTable::GetParticleTable()->FindParticle(
79  incidentParticle ) );
80  if ( ! incidentParticleDefinition )
82  G4ParticleDefinition * nucleusParticleDefinition(
83  G4ParticleTable::GetParticleTable()->FindParticle(
84  nucleusParticle ) );
85  if ( ! nucleusParticleDefinition )
87  G4ParticleDefinition * outputParticleDefinition(
88  G4ParticleTable::GetParticleTable()->FindParticle(
89  outputParticle ) );
90  if ( ! outputParticleDefinition )
92  G4ParticleDefinition * nucleusOutputParticleDefinition(
93  G4ParticleTable::GetParticleTable()->FindParticle(
94  nucleusOutputParticle ) );
95  if ( ! nucleusOutputParticleDefinition )
97 
98  return CexmcProductionModelData( incidentParticleSCM, incidentParticleLAB,
99  nucleusParticleSCM, nucleusParticleLAB,
100  outputParticleSCM, outputParticleLAB,
101  nucleusOutputParticleSCM, nucleusOutputParticleLAB,
102  incidentParticleDefinition, nucleusParticleDefinition,
103  outputParticleDefinition, nucleusOutputParticleDefinition );
104 }
105 
106 #endif
107 
const G4ParticleDefinition * nucleusParticle
const G4ParticleDefinition * incidentParticle
const G4ParticleDefinition * outputParticle
static G4ParticleTable * GetParticleTable()
const G4ParticleDefinition * nucleusOutputParticle