Geant4  10.02
G4INCLXXInterfaceStore.hh
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 // INCL++ intra-nuclear cascade model
27 // Alain Boudard, CEA-Saclay, France
28 // Joseph Cugnon, University of Liege, Belgium
29 // Jean-Christophe David, CEA-Saclay, France
30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
31 // Sylvie Leray, CEA-Saclay, France
32 // Davide Mancusi, CEA-Saclay, France
33 //
34 #define INCLXX_IN_GEANT4_MODE 1
35 
36 #include "globals.hh"
37 
45 #ifndef G4INCLXXINTERFACESTORE_HH_
46 #define G4INCLXXINTERFACESTORE_HH_
47 
48 #include "G4INCLXXInterface.hh"
49 #include "G4INCLCascade.hh"
50 #include "G4INCLVersion.hh"
51 #include "G4INCLConfig.hh"
52 #include <list>
53 #include <sstream>
54 
57 
65  public:
66 
69 
71  static void DeleteInstance();
72 
75 
77 
78  const std::string &getINCLXXVersionName();
79 
80 
81 
83  void SetAccurateProjectile(const G4bool b);
84 
86  void SetMaxClusterMass(const G4int aMass);
87 
89  void SetCascadeMinEnergyPerNucleon(const G4double anEnergy);
90 
92  void SetConservationTolerance(const G4double aTolerance);
93 
94 
95 
96 
103 
110 
113 
114 
115 
116 
118  G4int GetMaxProjMassINCL() const;
119 
120 
121 
122 
125 
126 
127 
128 
133  void EmitWarning(const G4String &message);
134 
139  void EmitBigWarning(const G4String &message) const;
140 
143 
145  void SetTally(G4INCLXXVInterfaceTally * const aTally);
146 
148  void SetINCLPhysics(const G4String &option);
149 
151  void UseAblaDeExcitation();
152 
153  private:
154 
161 
168 
170  void DeleteModel();
171 
173 
175 
180 
182 
184 
186 
189 
192 
193  std::string versionName;
194 };
195 
196 #endif // G4INCLXXINTERFACESTORE_HH_
const G4int maxWarnings
Maximum number of warnings.
The INCL configuration object.
Definition: G4INCLConfig.hh:60
void SetConservationTolerance(const G4double aTolerance)
Setter for conservationTolerance.
G4int GetMaxProjMassINCL() const
Getter for theMaxProjMassINCL.
G4double GetCascadeMinEnergyPerNucleon() const
Getter for cascadeMinEnergyPerNucleon.
void DeleteModel()
Delete the INCL model engine.
void UseAblaDeExcitation()
Set ABLA V3 to be the de-excitation model to be used with INCL++.
const std::string & getINCLXXVersionName()
#define G4ThreadLocal
Definition: tls.hh:89
void EmitBigWarning(const G4String &message) const
Emit a BIG warning to G4cout.
int G4int
Definition: G4Types.hh:78
void SetAccurateProjectile(const G4bool b)
Setter for accurateProjectile.
static G4INCLXXInterfaceStore * GetInstance()
Get the singleton instance.
Singleton class for configuring the INCL++ Geant4 interface.
G4INCL::INCL * GetINCLModel()
Get the cached INCL model engine.
bool G4bool
Definition: G4Types.hh:79
G4INCLXXVInterfaceTally * theTally
void SetCascadeMinEnergyPerNucleon(const G4double anEnergy)
Setter for cascadeMinEnergyPerNucleon.
void SetINCLPhysics(const G4String &option)
Set the INCL physics.
G4INCLXXInterfaceStore()
Private constructor.
void SetTally(G4INCLXXVInterfaceTally *const aTally)
Setter for the interface tally.
G4int nWarnings
Static warning counter.
G4bool GetAccurateProjectile() const
Getter for accurateProjectile.
G4double GetConservationTolerance() const
Getter for conservationTolerance.
void EmitWarning(const G4String &message)
Emit a warning to G4cout.
G4INCLXXInterfaceMessenger * theINCLXXInterfaceMessenger
double G4double
Definition: G4Types.hh:76
void SetMaxClusterMass(const G4int aMass)
Setter for the maximum cluster mass.
static G4ThreadLocal G4INCLXXInterfaceStore * theInstance
G4INCL::Config & GetINCLConfig()
Getter for theConfig.
G4INCLXXVInterfaceTally * GetTally() const
Getter for the interface tally.
static void DeleteInstance()
Delete the singleton instance.
~G4INCLXXInterfaceStore()
Private destructor.