Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 // Pekka Kaitaniemi, CEA and Helsinki Institute of Physics
28 // Davide Mancusi, CEA
29 // Alain Boudard, CEA
30 // Sylvie Leray, CEA
31 // Joseph Cugnon, University of Liege
32 //
33 #define INCLXX_IN_GEANT4_MODE 1
34 
35 #include "globals.hh"
36 
37 #ifndef G4INCLConfig_hh
38 #define G4INCLConfig_hh 1
39 
40 #include "G4INCLParticleSpecies.hh"
41 #include "G4INCLConfigEnums.hh"
43 #include <iostream>
44 #include <string>
45 #include <sstream>
46 
47 namespace G4INCL {
48 
56  class Config {
57  public:
59  Config();
60 
66 
73  Config(G4int argc, char *argv[], G4bool isFullRun);
74 
76  ~Config();
77 
79  void init();
80 
82  std::string summary();
83 
85  G4int getVerbosity() const { return verbosity; }
86 
88  std::string const &getCalculationTitle() const { return title; }
89 
91  std::string const &getOutputFileRoot() const { return outputFileRoot; }
92 
94  G4int getNumberOfShots() const { return nShots; }
95 
97  G4bool isNaturalTarget() const { return naturalTarget; }
98 
104  G4int getTargetA() const { return targetSpecies.theA; }
105 
107  G4int getTargetZ() const { return targetSpecies.theZ; }
108 
110  void setTargetA(G4int A) { targetSpecies.theA = A; }
111 
113  void setTargetZ(G4int Z) { targetSpecies.theZ = Z; }
114 
116  ParticleType getProjectileType() const { return projectileSpecies.theType; }
117 
119  ParticleSpecies getProjectileSpecies() const { return projectileSpecies; }
120 
122  void setProjectileSpecies(ParticleSpecies const &ps) { projectileSpecies=ps; }
123 
125  G4float getProjectileKineticEnergy() const { return projectileKineticEnergy; }
126 
128  void setProjectileKineticEnergy(G4float const kinE) { projectileKineticEnergy=kinE; }
129 
131  G4int getVerboseEvent() const { return verboseEvent; }
132 
134  static std::string const getVersionID();
135 
137  SeedVector const getRandomSeeds() const {
138  SeedVector s;
139  s.push_back(randomSeed1);
140  s.push_back(randomSeed2);
141  return s;
142  }
143 
145  PauliType getPauliType() const { return pauliType; }
146 
148  G4bool getCDPP() const { return CDPP; }
149 
151  G4bool getPionPotential() const { return pionPotential; }
152 
154  CoulombType getCoulombType() const { return coulombType; }
155 
157  PotentialType getPotentialType() const { return potentialType; }
158 
160  void setPotentialType(PotentialType type) { potentialType = type; }
161 
163  void setPionPotential(const G4bool pionPot) { pionPotential = pionPot; }
164 
166  LocalEnergyType getLocalEnergyBBType() const { return localEnergyBBType; }
167 
169  LocalEnergyType getLocalEnergyPiType() const { return localEnergyPiType; }
170 
172  void setLocalEnergyBBType(const LocalEnergyType t) { localEnergyBBType=t; }
173 
175  void setLocalEnergyPiType(const LocalEnergyType t) { localEnergyPiType=t; }
176 
178  std::string const &getLogFileName() const { return logFileName; }
179 
181  DeExcitationType getDeExcitationType() const { return deExcitationType; }
182 
184  ClusterAlgorithmType getClusterAlgorithm() const { return clusterAlgorithmType; }
185 
187  G4int getClusterMaxMass() const { return clusterMaxMass; }
188 
190  void setClusterMaxMass(const G4int m){ clusterMaxMass=m; }
191 
193  G4bool getBackToSpectator() const { return backToSpectator; }
194 
196  G4bool getUseRealMasses() const { return useRealMasses; }
197 
199  void setUseRealMasses(G4bool use) { useRealMasses = use; }
200 
202  std::string const echo() const;
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 
225  G4double getImpactParameter() const { return impactParameter; }
226 
228  SeparationEnergyType getSeparationEnergyType() const { return separationEnergyType; }
229 
230  private:
231  G4int verbosity;
232  std::string inputFileName;
233  std::string title;
234  std::string outputFileRoot;
235  std::string logFileName;
236 
237  G4int nShots;
238 
239  std::string targetString;
240  ParticleSpecies targetSpecies;
241  G4bool naturalTarget;
242 
243  std::string projectileString;
244  ParticleSpecies projectileSpecies;
245  G4float projectileKineticEnergy;
246 
247  G4int verboseEvent;
248 
249  G4int randomSeed1, randomSeed2;
250 
251  std::string pauliString;
252  PauliType pauliType;
253  G4bool CDPP;
254 
255  std::string coulombString;
256  CoulombType coulombType;
257 
258  std::string potentialString;
259  PotentialType potentialType;
260  G4bool pionPotential;
261 
262  std::string localEnergyBBString;
263  LocalEnergyType localEnergyBBType;
264 
265  std::string localEnergyPiString;
266  LocalEnergyType localEnergyPiType;
267 
268  std::string deExcitationString;
269  DeExcitationType deExcitationType;
270 #ifdef INCL_DEEXCITATION_ABLAXX
271  std::string ablav3pCxxDataFilePath;
272 #endif
273 #ifdef INCL_DEEXCITATION_ABLA07
274  std::string abla07DataFilePath;
275 #endif
276 #ifdef INCL_DEEXCITATION_GEMINIXX
277  std::string geminixxDataFilePath;
278 #endif
279  std::string INCLXXDataFilePath;
280 
281  std::string clusterAlgorithmString;
282  ClusterAlgorithmType clusterAlgorithmType;
283 
284  G4int clusterMaxMass;
285 
286  G4bool backToSpectator;
287 
288  G4bool useRealMasses;
289 
290  G4double impactParameter;
291 
292  std::string separationEnergyString;
293  SeparationEnergyType separationEnergyType;
294 
295  };
296 
297 }
298 
299 #endif