ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCLConfig.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4INCLConfig.hh
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 
100  G4int getTargetS() const { return targetSpecies.theS; }
101 
104 
107 
110 
113 
116 
119 
122 
125 
127  G4int getVerboseEvent() const { return verboseEvent; }
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 
203 
206 
209 
212 
214  void setUseRealMasses(G4bool use) { useRealMasses = use; }
215 
217  void setINCLXXDataFilePath(std::string const &s) { INCLXXDataFilePath=s; }
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 
303  G4double getNeutronSkin() const { return neutronSkin; }
304 
307 
309  G4double getNeutronHalo() const { return neutronHalo; }
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 
412  std::string localEnergyBBString;
414 
415  std::string localEnergyPiString;
417 
420  std::string deExcitationString;
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
434  std::string INCLXXDataFilePath;
435 
438 
440 
442 
444 
446 
449 
450  std::string fermiMomentumString;
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 
480  std::string phaseSpaceGenerator;
482 
483  unsigned int autosaveFrequency;
484 
485  std::string crossSectionsString;
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