G4INCLConfig.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // INCL++ intra-nuclear cascade model
00027 // Pekka Kaitaniemi, CEA and Helsinki Institute of Physics
00028 // Davide Mancusi, CEA
00029 // Alain Boudard, CEA
00030 // Sylvie Leray, CEA
00031 // Joseph Cugnon, University of Liege
00032 //
00033 #define INCLXX_IN_GEANT4_MODE 1
00034 
00035 #include "globals.hh"
00036 
00037 #ifndef G4INCLConfig_hh
00038 #define G4INCLConfig_hh 1
00039 
00040 #include "G4INCLParticleSpecies.hh"
00041 #include "G4INCLConfigEnums.hh"
00042 #include "G4INCLIRandomGenerator.hh"
00043 #include <iostream>
00044 #include <string>
00045 #include <sstream>
00046 
00047 namespace G4INCL {
00048 
00056   class Config {
00057   public:
00059     Config();
00060 
00065     Config(G4int, G4int, ParticleSpecies, G4double);
00066 
00073     Config(G4int argc, char *argv[], G4bool isFullRun);
00074 
00076     ~Config();
00077 
00079     void init();
00080 
00082     std::string summary();
00083 
00085     G4int getVerbosity() const { return verbosity; }
00086 
00088     std::string const &getCalculationTitle() const { return title; }
00089 
00091     std::string const &getOutputFileRoot() const { return outputFileRoot; }
00092 
00094     G4int getNumberOfShots() const { return nShots; }
00095 
00097     G4bool isNaturalTarget() const { return naturalTarget; }
00098 
00104     G4int getTargetA() const { return targetSpecies.theA; }
00105 
00107     G4int getTargetZ() const { return targetSpecies.theZ; }
00108 
00110     void setTargetA(G4int A) { targetSpecies.theA = A; }
00111 
00113     void setTargetZ(G4int Z) { targetSpecies.theZ = Z; }
00114 
00116     ParticleType getProjectileType() const { return projectileSpecies.theType; }
00117 
00119     ParticleSpecies getProjectileSpecies() const { return projectileSpecies; }
00120 
00122     void setProjectileSpecies(ParticleSpecies const &ps) { projectileSpecies=ps; }
00123 
00125     G4float getProjectileKineticEnergy() const { return projectileKineticEnergy; }
00126 
00128     void setProjectileKineticEnergy(G4float const kinE) { projectileKineticEnergy=kinE; }
00129 
00131     G4int getVerboseEvent() const { return verboseEvent; }
00132 
00134     static std::string const getVersionID();
00135 
00137     SeedVector const getRandomSeeds() const {
00138       SeedVector s;
00139       s.push_back(randomSeed1);
00140       s.push_back(randomSeed2);
00141       return s;
00142     }
00143 
00145     PauliType getPauliType() const { return pauliType; }
00146 
00148     G4bool getCDPP() const { return CDPP; }
00149 
00151     G4bool getPionPotential() const { return pionPotential; }
00152 
00154     CoulombType getCoulombType() const { return coulombType; }
00155 
00157     PotentialType getPotentialType() const { return potentialType; }
00158 
00160     void setPotentialType(PotentialType type) { potentialType = type; }
00161 
00163     void setPionPotential(const G4bool pionPot) { pionPotential = pionPot; }
00164 
00166     LocalEnergyType getLocalEnergyBBType() const { return localEnergyBBType; }
00167 
00169     LocalEnergyType getLocalEnergyPiType() const { return localEnergyPiType; }
00170 
00172     void setLocalEnergyBBType(const LocalEnergyType t) { localEnergyBBType=t; }
00173 
00175     void setLocalEnergyPiType(const LocalEnergyType t) { localEnergyPiType=t; }
00176 
00178     std::string const &getLogFileName() const { return logFileName; }
00179 
00181     DeExcitationType getDeExcitationType() const { return deExcitationType; }
00182 
00184     ClusterAlgorithmType getClusterAlgorithm() const { return clusterAlgorithmType; }
00185 
00187     G4int getClusterMaxMass() const { return clusterMaxMass; }
00188 
00190     void setClusterMaxMass(const G4int m){ clusterMaxMass=m; }
00191 
00193     G4bool getBackToSpectator() const { return backToSpectator; }
00194 
00196     G4bool getUseRealMasses() const { return useRealMasses; }
00197 
00199     void setUseRealMasses(G4bool use) { useRealMasses = use; }
00200 
00202     std::string const echo() const;
00203 
00204     std::string const &getINCLXXDataFilePath() const {
00205       return INCLXXDataFilePath;
00206     }
00207 
00208 #ifdef INCL_DEEXCITATION_ABLAXX
00209     std::string const &getABLAv3pCxxDataFilePath() const {
00210       return ablav3pCxxDataFilePath;
00211     }
00212 #endif
00213 
00214 #ifdef INCL_DEEXCITATION_ABLA07
00215     std::string const &getABLA07DataFilePath() const {
00216       return abla07DataFilePath;
00217     }
00218 #endif
00219 #ifdef INCL_DEEXCITATION_GEMINIXX
00220     std::string const &getGEMINIXXDataFilePath() const {
00221       return geminixxDataFilePath;
00222     }
00223 #endif
00224 
00225     G4double getImpactParameter() const { return impactParameter; }
00226 
00228     SeparationEnergyType getSeparationEnergyType() const { return separationEnergyType; }
00229 
00230   private:
00231     G4int verbosity;
00232     std::string inputFileName;
00233     std::string title;
00234     std::string outputFileRoot;
00235     std::string logFileName;
00236 
00237     G4int nShots;
00238 
00239     std::string targetString;
00240     ParticleSpecies targetSpecies;
00241     G4bool naturalTarget;
00242 
00243     std::string projectileString;
00244     ParticleSpecies projectileSpecies;
00245     G4float projectileKineticEnergy;
00246 
00247     G4int verboseEvent;
00248 
00249     G4int randomSeed1, randomSeed2;
00250 
00251     std::string pauliString;
00252     PauliType pauliType;
00253     G4bool CDPP;
00254 
00255     std::string coulombString;
00256     CoulombType coulombType;
00257 
00258     std::string potentialString;
00259     PotentialType potentialType;
00260     G4bool pionPotential;
00261 
00262     std::string localEnergyBBString;
00263     LocalEnergyType localEnergyBBType;
00264 
00265     std::string localEnergyPiString;
00266     LocalEnergyType localEnergyPiType;
00267 
00268     std::string deExcitationString;
00269     DeExcitationType deExcitationType;
00270 #ifdef INCL_DEEXCITATION_ABLAXX
00271     std::string ablav3pCxxDataFilePath;
00272 #endif
00273 #ifdef INCL_DEEXCITATION_ABLA07
00274     std::string abla07DataFilePath;
00275 #endif
00276 #ifdef INCL_DEEXCITATION_GEMINIXX
00277     std::string geminixxDataFilePath;
00278 #endif
00279     std::string INCLXXDataFilePath;
00280 
00281     std::string clusterAlgorithmString;
00282     ClusterAlgorithmType clusterAlgorithmType;
00283 
00284     G4int clusterMaxMass;
00285 
00286     G4bool backToSpectator;
00287 
00288     G4bool useRealMasses;
00289 
00290     G4double impactParameter;
00291 
00292     std::string separationEnergyString;
00293     SeparationEnergyType separationEnergyType;
00294 
00295   };
00296 
00297 }
00298 
00299 #endif

Generated on Mon May 27 17:48:34 2013 for Geant4 by  doxygen 1.4.7