Geant4-11
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
42#include "G4INCLConfigEnums.hh"
44#include <iostream>
45#include <string>
46#include <sstream>
47// #include <cassert>
48
49class ConfigParser;
50
51namespace 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
88
94 G4int getTargetA() const { return targetSpecies.theA; }
95
97 G4int getTargetZ() const { return targetSpecies.theZ; }
98
100 G4int getTargetS() const { return targetSpecies.theS; }
101
104
107
110
113
116
119
122
125
128
130 static std::string const getVersionID();
131
133 static std::string const getVersionHash();
134
136 static std::string const getVersionString() {
137 std::stringstream ss;
138 ss << getVersionID() << "-" << getVersionHash();
139 return ss.str();
140 }
141
144 return randomSeedVector;
145 }
146
148 PauliType getPauliType() const { return pauliType; }
149
151 G4bool getCDPP() const { return CDPP; }
152
155
158
161
164
167
169 void setPionPotential(const G4bool pionPot) { pionPotential = pionPot; }
170
173
176
179
182
184 std::string const &getLogFileName() const { return logFileName; }
185
188
190 std::string getDeExcitationString() const { return deExcitationString; }
191
194
197
200
202 void setClusterMaxMass(const G4int clm){ clusterMaxMass=clm; }
203
206
209
212
215
217 void setINCLXXDataFilePath(std::string const &path) { INCLXXDataFilePath=path; }
218
219 std::string const &getINCLXXDataFilePath() const {
220 return INCLXXDataFilePath;
221 }
222
223#ifdef INCL_DEEXCITATION_ABLAXX
224 std::string const &getABLAv3pCxxDataFilePath() const {
225 return ablav3pCxxDataFilePath;
226 }
227#endif
228
229#ifdef INCL_DEEXCITATION_ABLACXX
230 std::string const &getABLAXXDataFilePath() const {
231 return ablaxxDataFilePath;
232 }
233#endif
234
235#ifdef INCL_DEEXCITATION_ABLA07
236 std::string const &getABLA07DataFilePath() const {
237 return abla07DataFilePath;
238 }
239#endif
240#ifdef INCL_DEEXCITATION_GEMINIXX
241 std::string const &getGEMINIXXDataFilePath() const {
242 return geminixxDataFilePath;
243 }
244#endif
245
247
250
253
256
259
262
263 G4double getCutNN() const { return cutNN; }
264
265#ifdef INCL_ROOT_USE
266 std::string const &getROOTSelectionString() const {
267 return rootSelectionString;
268 }
269#endif
270
271#ifdef INCL_DEEXCITATION_FERMI_BREAKUP
272 G4int getMaxMassFermiBreakUp() const {
273 return maxMassFermiBreakUp;
274 }
275
276 G4int getMaxChargeFermiBreakUp() const {
277 return maxChargeFermiBreakUp;
278 }
279#endif
280
283// assert(t==Proton || t==Neutron);
285 }
286
288 void setRPCorrelationCoefficient(const ParticleType t, const G4double corrCoeff) {
289// assert(t==Proton || t==Neutron);
290 if(t==Proton)
292 else
294 }
295
297 void setRPCorrelationCoefficient(const G4double corrCoeff) {
300 }
301
304
307
310
313
315 G4bool getRefraction() const { return refraction; }
316
318 void setRefraction(const G4bool r) { refraction = r; }
319
321 RNGType getRNGType() const { return rngType; }
322
324 void setRNGType(RNGType const r) { rngType=r; }
325
328
331
334
337
339 unsigned int getAutosaveFrequency() const { return autosaveFrequency; }
340
342 void setAutosaveFrequency(const unsigned int f) { autosaveFrequency=f; }
343
346
349
352
355
358
361
362#ifdef INCL_ROOT_USE
363 G4bool getConciseROOTTree() const { return conciseROOTTree; }
364#endif
365
367
370
373
375 G4double getBias() const { return bias; }
376
377 private:
378
380 std::string inputFileName;
381 std::string title;
382 std::string outputFileRoot;
383 std::string fileSuffix;
384 std::string logFileName;
385
387
388 std::string targetString;
391
392 std::string projectileString;
395
397
398 std::string randomSeeds;
400
401 std::string pauliString;
404
405 std::string coulombString;
407
408 std::string potentialString;
411
414
417
422#ifdef INCL_DEEXCITATION_ABLAXX
423 std::string ablav3pCxxDataFilePath;
424#endif
425#ifdef INCL_DEEXCITATION_ABLACXX
426 std::string ablaxxDataFilePath;
427#endif
428#ifdef INCL_DEEXCITATION_ABLA07
429 std::string abla07DataFilePath;
430#endif
431#ifdef INCL_DEEXCITATION_GEMINIXX
432 std::string geminixxDataFilePath;
433#endif
435
438
440
442
444
446
449
452
454
456
458
459#ifdef INCL_ROOT_USE
460 std::string rootSelectionString;
461#endif
462
463#ifdef INCL_DEEXCITATION_FERMI_BREAKUP
464 G4int maxMassFermiBreakUp;
465 G4int maxChargeFermiBreakUp;
466#endif
467
471
474
476
479
482
483 unsigned int autosaveFrequency;
484
488
489 std::string cascadeAction;
491
493
494#ifdef INCL_ROOT_USE
495 G4bool conciseROOTTree;
496#endif
497
499
501
502 friend class ::ConfigParser;
503 };
504
505}
506
507#endif
G4double S(G4double temp)
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
const G4double A[17]
std::string crossSectionsString
G4double getNeutronHalo() const
Get the neutron-halo size.
std::string title
static std::string const getVersionString()
Get the INCL version string.
void setFermiMomentumType(FermiMomentumType const f)
Set the Fermi-momentum type.
FermiMomentumType fermiMomentumType
CrossSectionsType crossSectionsType
PauliType getPauliType() const
Get the Pauli-blocking algorithm.
void setClusterAlgorithm(ClusterAlgorithmType const c)
Set the clustering algorithm.
G4double impactParameter
G4bool getPionPotential() const
Do we want the pion potential?
FermiMomentumType getFermiMomentumType() const
Get the Fermi-momentum type.
void setClusterMaxMass(const G4int clm)
Set the maximum mass for production of clusters.
PotentialType getPotentialType() const
Get the type of the potential for nucleons.
static std::string const getVersionID()
Get the INCL version ID.
ParticleSpecies projectileSpecies
void setDecayTimeThreshold(const G4double t)
Set decay time threshold time.
G4double getImpactParameter() const
void setLocalEnergyPiType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
G4double fermiMomentum
void setBackToSpectator(const G4bool b)
Set back-to-spectator.
SeparationEnergyType getSeparationEnergyType() const
Get the separation-energy type.
CascadeActionType getCascadeActionType() const
Get the cascade-action type.
void setINCLXXDataFilePath(std::string const &path)
Set the INCLXX datafile path.
G4double getRPCorrelationCoefficient(const ParticleType t) const
Get the r-p correlation coefficient.
void setRNGType(RNGType const r)
Set the RNG type.
G4bool getRefraction() const
True if we should use refraction.
std::string const & getINCLXXDataFilePath() const
G4int getClusterMaxMass() const
Get the maximum mass for production of clusters.
G4bool naturalTarget
G4int getVerboseEvent() const
Get the number of the verbose event.
CoulombType coulombType
G4double neutronSkin
G4double decayTimeThreshold
SeparationEnergyType separationEnergyType
std::string fileSuffix
G4int maxNumberMultipions
std::string outputFileRoot
void setCoulombType(CoulombType const c)
Set the Coulomb-distortion algorithm.
G4int getTargetA() const
Get the target mass number.
Definition: G4INCLConfig.hh:94
std::string deExcitationModelList
G4double getDecayTimeThreshold() const
Get the decay time threshold time.
std::string inputFileName
std::string const & getCalculationTitle() const
Get the run title.
Definition: G4INCLConfig.hh:78
G4double getProjectileKineticEnergy() const
Get the projectile kinetic energy.
ParticleSpecies targetSpecies
G4int getVerbosity() const
Get the verbosity.
Definition: G4INCLConfig.hh:75
std::string deExcitationOptionDescription
G4double rpCorrelationCoefficientNeutron
std::string fermiMomentumString
void setTargetS(G4int S)
Set target strangess number.
CascadeActionType cascadeActionType
G4bool useRealMasses
std::string cascadeAction
void setRPCorrelationCoefficient(const ParticleType t, const G4double corrCoeff)
Set the r-p correlation coefficient.
G4int getMaxNumberMultipions() const
Get the maximum number of pions for multipion collisions.
std::string localEnergyBBString
std::string const & getLogFileName() const
Get the log file name.
unsigned int getAutosaveFrequency() const
Get the autosave frequency.
PhaseSpaceGeneratorType getPhaseSpaceGeneratorType() const
Get the phase-space-generator type.
void setCascadeActionType(CascadeActionType const c)
Set the cascade-action type.
std::string clusterAlgorithmString
DeExcitationType getDeExcitationType() const
Get the de-excitation model.
Random::SeedVector getRandomSeeds() const
Get the seeds for the random-number generator.
void setTargetA(G4int A)
Set target mass number.
G4double getHadronizationTime() const
Get the hadronization time.
ParticleSpecies getProjectileSpecies() const
Get the projectile species.
std::string localEnergyPiString
ClusterAlgorithmType getClusterAlgorithm() const
Get the clustering algorithm.
void setTargetZ(G4int Z)
Set target charge number.
std::string potentialString
void setPionPotential(const G4bool pionPot)
Set the type of the potential for nucleons.
PhaseSpaceGeneratorType phaseSpaceGeneratorType
~Config()
Default destructor.
Definition: G4INCLConfig.cc:49
void setNeutronHalo(const G4double d)
Set the neutron-halo size.
DeExcitationType deExcitationType
std::string randomNumberGenerator
void setPhaseSpaceGeneratorType(PhaseSpaceGeneratorType const p)
Set the phase-space-generator type.
void setPotentialType(PotentialType type)
Set the type of the potential for nucleons.
ClusterAlgorithmType clusterAlgorithmType
LocalEnergyType getLocalEnergyPiType() const
Get the type of local energy for pi-N and decay avatars.
G4double rpCorrelationCoefficientProton
void setProjectileSpecies(ParticleSpecies const &pars)
Set the projectile species.
G4bool getInverseKinematics() const
G4double rpCorrelationCoefficient
std::string logFileName
G4bool backToSpectator
void setCrossSectionsType(CrossSectionsType const c)
Set the Cross Section type.
std::string projectileString
G4bool isNaturalTarget() const
Natural targets.
Definition: G4INCLConfig.hh:87
PauliType pauliType
void setAutosaveFrequency(const unsigned int f)
Set the autosave frequency.
G4int getTargetS() const
Get the target strangess number.
G4bool getBackToSpectator() const
Get back-to-spectator.
std::string pauliString
void setProjectileKineticEnergy(G4double const kinE)
Set the projectile kinetic energy.
unsigned int autosaveFrequency
void setMaxNumberMultipions(const G4int n)
Set the maximum number of pions for multipion collisions.
Config()
Default constructor.
Definition: G4INCLConfig.cc:45
G4bool getCDPP() const
Do we want CDPP?
G4double getNeutronSkin() const
Get the neutron-skin thickness.
G4bool inverseKinematics
CrossSectionsType getCrossSectionsType() const
Get the Cross Section type.
void setHadronizationTime(const G4double t)
Set the hadronization time.
G4double getCutNN() const
G4double neutronHalo
std::string deExcitationString
LocalEnergyType localEnergyBBType
G4double getFermiMomentum() const
Get the Fermi momentum.
LocalEnergyType getLocalEnergyBBType() const
Get the type of local energy for N-N avatars.
G4double getBias() const
Get the bias.
std::string targetString
void setNeutronSkin(const G4double d)
Set the neutron-skin thickness.
Random::SeedVector randomSeedVector
std::string summary()
Return a summary of the run configuration.
PotentialType potentialType
void init()
Initialise the members.
Definition: G4INCLConfig.cc:51
std::string coulombString
LocalEnergyType localEnergyPiType
std::string phaseSpaceGenerator
void setFermiMomentum(const G4double p)
Set the Fermi momentum.
G4int getTargetZ() const
Get the target charge number.
Definition: G4INCLConfig.hh:97
void setLocalEnergyBBType(const LocalEnergyType t)
Set the type of local energy for N-N avatars.
G4double projectileKineticEnergy
std::string INCLXXDataFilePath
G4bool pionPotential
RNGType getRNGType() const
Get the RNG type.
G4double hadronizationTime
void setRefraction(const G4bool r)
Set the refraction variable.
void setUseRealMasses(G4bool use)
Set whether to use real masses.
ParticleType getProjectileType() const
Get the projectile type.
G4bool getUseRealMasses() const
Whether to use real masses.
CoulombType getCoulombType() const
Get the Coulomb-distortion algorithm.
G4int getNumberOfShots() const
Get the number of shots.
Definition: G4INCLConfig.hh:84
std::string getDeExcitationString() const
Get the de-excitation string.
std::string randomSeeds
std::string const & getOutputFileRoot() const
Get the output file root.
Definition: G4INCLConfig.hh:81
std::string separationEnergyString
void setRPCorrelationCoefficient(const G4double corrCoeff)
Set the r-p correlation coefficient.
static std::string const getVersionHash()
Get the INCL version hash.