Geant4  10.01.p02
G4INCLConfig.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 
38 #ifndef G4INCLConfig_hh
39 #define G4INCLConfig_hh 1
40 
41 #include "G4INCLParticleSpecies.hh"
42 #include "G4INCLConfigEnums.hh"
44 #include <iostream>
45 #include <string>
46 #include <sstream>
47 // #include <cassert>
48 
49 class ConfigParser;
50 
51 namespace G4INCL {
52 
60  class Config {
61  public:
63  Config();
64 
66  ~Config();
67 
69  void init();
70 
72  std::string summary();
73 
75  G4int getVerbosity() const { return verbosity; }
76 
78  std::string const &getCalculationTitle() const { return title; }
79 
81  std::string const &getOutputFileRoot() const { return outputFileRoot; }
82 
84  G4int getNumberOfShots() const { return nShots; }
85 
87  G4bool isNaturalTarget() const { return naturalTarget; }
88 
94  G4int getTargetA() const { return targetSpecies.theA; }
95 
97  G4int getTargetZ() const { return targetSpecies.theZ; }
98 
101 
104 
107 
110 
113 
116 
119 
121  G4int getVerboseEvent() const { return verboseEvent; }
122 
124  static std::string const getVersionID();
125 
127  static std::string const getVersionHash();
128 
130  static std::string const getVersionString() {
131  std::stringstream ss;
132  ss << getVersionID() << "-" << getVersionHash();
133  return ss.str();
134  }
135 
138  return randomSeedVector;
139  }
140 
142  PauliType getPauliType() const { return pauliType; }
143 
145  G4bool getCDPP() const { return CDPP; }
146 
149 
152 
155 
158 
160  void setPionPotential(const G4bool pionPot) { pionPotential = pionPot; }
161 
164 
167 
170 
173 
175  std::string const &getLogFileName() const { return logFileName; }
176 
179 
181  std::string getDeExcitationString() const { return deExcitationString; }
182 
185 
188 
191 
194 
197 
199  void setUseRealMasses(G4bool use) { useRealMasses = use; }
200 
202  void setINCLXXDataFilePath(std::string const &s) { INCLXXDataFilePath=s; }
203 
204  std::string const &getINCLXXDataFilePath() const {
205  return INCLXXDataFilePath;
206  }
207 
208 #ifdef INCL_DEEXCITATION_ABLAXX
209  std::string const &getABLAv3pCxxDataFilePath() const {
210  return ablav3pCxxDataFilePath;
211  }
212 #endif
213 
214 #ifdef INCL_DEEXCITATION_ABLA07
215  std::string const &getABLA07DataFilePath() const {
216  return abla07DataFilePath;
217  }
218 #endif
219 #ifdef INCL_DEEXCITATION_GEMINIXX
220  std::string const &getGEMINIXXDataFilePath() const {
221  return geminixxDataFilePath;
222  }
223 #endif
224 
226 
229 
232 
235 
238 
240  void setFermiMomentum(const G4double p) { fermiMomentum = p; }
241 
242  G4double getCutNN() const { return cutNN; }
243 
244 #ifdef INCL_ROOT_USE
245  std::string const &getROOTSelectionString() const {
246  return rootSelectionString;
247  }
248 #endif
249 
250 #ifdef INCL_DEEXCITATION_FERMI_BREAKUP
251  G4int getMaxMassFermiBreakUp() const {
252  return maxMassFermiBreakUp;
253  }
254 
255  G4int getMaxChargeFermiBreakUp() const {
256  return maxChargeFermiBreakUp;
257  }
258 #endif
259 
262 // assert(t==Proton || t==Neutron);
264  }
265 
267  void setRPCorrelationCoefficient(const ParticleType t, const G4double corrCoeff) {
268 // assert(t==Proton || t==Neutron);
269  if(t==Proton)
271  else
273  }
274 
276  void setRPCorrelationCoefficient(const G4double corrCoeff) {
279  }
280 
282  G4double getNeutronSkin() const { return neutronSkin; }
283 
285  void setNeutronSkin(const G4double d) { neutronSkin=d; }
286 
288  G4double getNeutronHalo() const { return neutronHalo; }
289 
291  void setNeutronHalo(const G4double d) { neutronHalo=d; }
292 
294  G4bool getRefraction() const { return refraction; }
295 
297  void setRefraction(const G4bool r) { refraction = r; }
298 
300  RNGType getRNGType() const { return rngType; }
301 
303  void setRNGType(RNGType const r) { rngType=r; }
304 
307 
310 
313 
316 
318  unsigned int getAutosaveFrequency() const { return autosaveFrequency; }
319 
321  void setAutosaveFrequency(const unsigned int f) { autosaveFrequency=f; }
322 
325 
328 
329  private:
330 
332  std::string inputFileName;
333  std::string title;
334  std::string outputFileRoot;
335  std::string fileSuffix;
336  std::string logFileName;
337 
339 
340  std::string targetString;
343 
344  std::string projectileString;
347 
349 
350  std::string randomSeeds;
352 
353  std::string pauliString;
356 
357  std::string coulombString;
359 
360  std::string potentialString;
363 
364  std::string localEnergyBBString;
366 
367  std::string localEnergyPiString;
369 
372  std::string deExcitationString;
374 #ifdef INCL_DEEXCITATION_ABLAXX
375  std::string ablav3pCxxDataFilePath;
376 #endif
377 #ifdef INCL_DEEXCITATION_ABLA07
378  std::string abla07DataFilePath;
379 #endif
380 #ifdef INCL_DEEXCITATION_GEMINIXX
381  std::string geminixxDataFilePath;
382 #endif
383  std::string INCLXXDataFilePath;
384 
387 
389 
391 
393 
395 
398 
399  std::string fermiMomentumString;
401 
403 
405 
406 #ifdef INCL_ROOT_USE
407  std::string rootSelectionString;
408 #endif
409 
410 #ifdef INCL_DEEXCITATION_FERMI_BREAKUP
411  G4int maxMassFermiBreakUp;
412  G4int maxChargeFermiBreakUp;
413 #endif
414 
418 
421 
423 
426 
427  std::string phaseSpaceGenerator;
429 
430  unsigned int autosaveFrequency;
431 
432  std::string crossSectionsString;
434 
435  std::string cascadeAction;
437 
438  friend class ::ConfigParser;
439  };
440 
441 }
442 
443 #endif
DeExcitationType getDeExcitationType() const
Get the de-excitation model.
std::string fermiMomentumString
CascadeActionType getCascadeActionType() const
Get the cascade-action type.
The INCL configuration object.
Definition: G4INCLConfig.hh:60
ParticleType getProjectileType() const
Get the projectile type.
LocalEnergyType localEnergyPiType
PauliType pauliType
std::string separationEnergyString
std::string targetString
void setFermiMomentumType(FermiMomentumType const f)
Set the Fermi-momentum type.
void setProjectileSpecies(ParticleSpecies const &ps)
Set the projectile species.
ClusterAlgorithmType clusterAlgorithmType
std::string potentialString
void setRPCorrelationCoefficient(const G4double corrCoeff)
Set the r-p correlation coefficient.
std::string localEnergyBBString
PotentialType potentialType
FermiMomentumType fermiMomentumType
std::string deExcitationOptionDescription
G4double neutronSkin
G4int getTargetZ() const
Get the target charge number.
Definition: G4INCLConfig.hh:97
G4int getNumberOfShots() const
Get the number of shots.
Definition: G4INCLConfig.hh:84
G4double neutronHalo
G4double getNeutronSkin() const
Get the neutron-skin thickness.
std::string pauliString
std::string const & getINCLXXDataFilePath() const
G4int getVerboseEvent() const
Get the number of the verbose event.
void setProjectileKineticEnergy(G4double const kinE)
Set the projectile kinetic energy.
PhaseSpaceGeneratorType phaseSpaceGeneratorType
G4int getClusterMaxMass() const
Get the maximum mass for production of clusters.
G4double fermiMomentum
void setCascadeActionType(CascadeActionType const c)
Set the cascade-action type.
std::string localEnergyPiString
~Config()
Default destructor.
Definition: G4INCLConfig.cc:49
void setINCLXXDataFilePath(std::string const &s)
Set the INCLXX datafile path.
std::string clusterAlgorithmString
void setRPCorrelationCoefficient(const ParticleType t, const G4double corrCoeff)
Set the r-p correlation coefficient.
std::string phaseSpaceGenerator
std::string outputFileRoot
G4bool backToSpectator
G4bool isNaturalTarget() const
Natural targets.
Definition: G4INCLConfig.hh:87
G4double getFermiMomentum() const
Get the Fermi momentum.
int G4int
Definition: G4Types.hh:78
SeparationEnergyType getSeparationEnergyType() const
Get the separation-energy type.
CoulombType coulombType
std::string coulombString
void setLocalEnergyBBType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
G4int getVerbosity() const
Get the verbosity.
Definition: G4INCLConfig.hh:75
unsigned int autosaveFrequency
static const double s
Definition: G4SIunits.hh:150
G4double getImpactParameter() const
Random::SeedVector randomSeedVector
G4bool getCDPP() const
Do we want CDPP?
std::string cascadeAction
static std::string const getVersionString()
Get the INCL version string.
LocalEnergyType localEnergyBBType
void setNeutronHalo(const G4double d)
Set the neutron-skin additional diffuseness.
void setFermiMomentum(const G4double p)
Set the Fermi momentum.
void setTargetA(G4int A)
Set target mass number.
G4bool getBackToSpectator() const
Get back-to-spectator.
G4double rpCorrelationCoefficientProton
std::string deExcitationModelList
PauliType getPauliType() const
Get the Pauli-blocking algorithm.
void setRefraction(const G4bool r)
Set the refraction variable.
bool G4bool
Definition: G4Types.hh:79
G4int getTargetA() const
Get the target mass number.
Definition: G4INCLConfig.hh:94
void setLocalEnergyPiType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
G4bool getPionPotential() const
Do we want the pion potential?
G4double impactParameter
G4double rpCorrelationCoefficient
void setPhaseSpaceGeneratorType(PhaseSpaceGeneratorType const p)
Set the phase-space-generator type.
PhaseSpaceGeneratorType getPhaseSpaceGeneratorType() const
Get the phase-space-generator type.
ParticleSpecies targetSpecies
G4bool getUseRealMasses() const
Whether to use real masses.
static const G4double A[nN]
G4bool useRealMasses
G4double projectileKineticEnergy
void setAutosaveFrequency(const unsigned int f)
Set the autosave frequency.
Config()
Default constructor.
Definition: G4INCLConfig.cc:45
std::string deExcitationString
G4bool naturalTarget
CascadeActionType cascadeActionType
unsigned int getAutosaveFrequency() const
Get the autosave frequency.
std::string randomSeeds
RNGType getRNGType() const
Get the RNG type.
G4double getNeutronHalo() const
Get the neutron-halo size.
Random::SeedVector getRandomSeeds() const
Get the seeds for the random-number generator.
ClusterAlgorithmType getClusterAlgorithm() const
Get the clustering algorithm.
std::string title
void setRNGType(RNGType const r)
Set the RNG type.
FermiMomentumType getFermiMomentumType() const
Get the Fermi-momentum type.
std::string const & getLogFileName() const
Get the log file name.
PotentialType getPotentialType() const
Get the type of the potential for nucleons.
std::string getDeExcitationString() const
Get the de-excitation string.
static std::string const getVersionID()
Get the INCL version ID.
ParticleSpecies getProjectileSpecies() const
Get the projectile species.
void init()
Initialise the members.
Definition: G4INCLConfig.cc:51
void setPotentialType(PotentialType type)
Set the type of the potential for nucleons.
LocalEnergyType getLocalEnergyPiType() const
Get the type of local energy for pi-N and decay avatars.
LocalEnergyType getLocalEnergyBBType() const
Get the type of local energy for N-N avatars.
G4bool pionPotential
std::string fileSuffix
CoulombType getCoulombType() const
Get the Coulomb-distortion algorithm.
CrossSectionsType crossSectionsType
std::string const & getOutputFileRoot() const
Get the output file root.
Definition: G4INCLConfig.hh:81
std::string const & getCalculationTitle() const
Get the run title.
Definition: G4INCLConfig.hh:78
std::string summary()
Return a summary of the run configuration.
void setClusterMaxMass(const G4int m)
Set the maximum mass for production of clusters.
static const double m
Definition: G4SIunits.hh:110
std::string projectileString
G4double rpCorrelationCoefficientNeutron
std::string INCLXXDataFilePath
std::string randomNumberGenerator
void setPionPotential(const G4bool pionPot)
Set the type of the potential for nucleons.
void setUseRealMasses(G4bool use)
Set whether to use real masses.
std::string inputFileName
double G4double
Definition: G4Types.hh:76
DeExcitationType deExcitationType
void setNeutronSkin(const G4double d)
Set the neutron-skin thickness.
CrossSectionsType getCrossSectionsType() const
Get the Cross Section type.
G4double getProjectileKineticEnergy() const
Get the projectile kinetic energy.
void setCrossSectionsType(CrossSectionsType const c)
Set the Cross Section type.
SeparationEnergyType separationEnergyType
G4double getRPCorrelationCoefficient(const ParticleType t) const
Get the r-p correlation coefficient.
std::string logFileName
G4double getCutNN() const
std::string crossSectionsString
static std::string const getVersionHash()
Get the INCL version hash.
G4bool getRefraction() const
True if we should use refraction.
void setTargetZ(G4int Z)
Set target charge number.
ParticleSpecies projectileSpecies