Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // INCL++ intra-nuclear cascade model 26 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H 30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland 31 // Sylvie Leray, CEA-Saclay, France 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 34 #define INCLXX_IN_GEANT4_MODE 1 35 35 36 #include "globals.hh" 36 #include "globals.hh" 37 37 38 #include "G4INCLParticleType.hh" 38 #include "G4INCLParticleType.hh" 39 #include "G4INCLConfig.hh" 39 #include "G4INCLConfig.hh" 40 #include "G4INCLParticleSpecies.hh" 40 #include "G4INCLParticleSpecies.hh" 41 #include "G4INCLParticleTable.hh" 41 #include "G4INCLParticleTable.hh" 42 42 43 namespace G4INCL { 43 namespace G4INCL { 44 44 45 Config::Config() { 45 Config::Config() { 46 init(); 46 init(); 47 } 47 } 48 48 49 Config::~Config() {} 49 Config::~Config() {} 50 50 51 void Config::init() { 51 void Config::init() { 52 verbosity = 1; 52 verbosity = 1; 53 logFileName = "-"; 53 logFileName = "-"; 54 inputFileName = ""; 54 inputFileName = ""; 55 title = "INCL default run title"; 55 title = "INCL default run title"; 56 nShots = 1000; 56 nShots = 1000; 57 naturalTarget = false; 57 naturalTarget = false; 58 projectileString = "proton"; 58 projectileString = "proton"; 59 projectileSpecies = G4INCL::Proton; 59 projectileSpecies = G4INCL::Proton; 60 projectileKineticEnergy = 1000.0; 60 projectileKineticEnergy = 1000.0; 61 verboseEvent = -1; 61 verboseEvent = -1; 62 randomSeeds = ""; 62 randomSeeds = ""; 63 randomSeedVector.push_back(666); 63 randomSeedVector.push_back(666); 64 randomSeedVector.push_back(777); 64 randomSeedVector.push_back(777); 65 randomSeedVector.push_back(1234); 65 randomSeedVector.push_back(1234); 66 pauliString = "strict-statistical"; 66 pauliString = "strict-statistical"; 67 pauliType = StrictStatisticalPauli; 67 pauliType = StrictStatisticalPauli; 68 CDPP = true; 68 CDPP = true; 69 coulombString = "non-relativistic"; 69 coulombString = "non-relativistic"; 70 coulombType = NonRelativisticCoulomb; 70 coulombType = NonRelativisticCoulomb; 71 potentialString = "isospin-energy"; 71 potentialString = "isospin-energy"; 72 potentialType = IsospinEnergyPotential; 72 potentialType = IsospinEnergyPotential; 73 pionPotential = true; 73 pionPotential = true; 74 localEnergyBBString = "first-collision"; 74 localEnergyBBString = "first-collision"; 75 localEnergyBBType = FirstCollisionLocalEne 75 localEnergyBBType = FirstCollisionLocalEnergy; 76 localEnergyPiString = "first-collision"; 76 localEnergyPiString = "first-collision"; 77 localEnergyPiType = FirstCollisionLocalEne 77 localEnergyPiType = FirstCollisionLocalEnergy; 78 deExcitationString = "none"; 78 deExcitationString = "none"; 79 deExcitationType = DeExcitationNone; 79 deExcitationType = DeExcitationNone; 80 clusterAlgorithmString = "intercomparison" 80 clusterAlgorithmString = "intercomparison"; 81 clusterAlgorithmType = IntercomparisonClus 81 clusterAlgorithmType = IntercomparisonClusterAlgorithm; 82 clusterMaxMass = 8; 82 clusterMaxMass = 8; 83 backToSpectator = true; 83 backToSpectator = true; 84 useRealMasses = true; 84 useRealMasses = true; 85 impactParameter = -1.; 85 impactParameter = -1.; 86 separationEnergyString = "INCL"; 86 separationEnergyString = "INCL"; 87 separationEnergyType = INCLSeparationEnerg 87 separationEnergyType = INCLSeparationEnergy; 88 fermiMomentumString = "constant"; 88 fermiMomentumString = "constant"; 89 fermiMomentumType = ConstantFermiMomentum; 89 fermiMomentumType = ConstantFermiMomentum; 90 fermiMomentum = -1.; 90 fermiMomentum = -1.; 91 cutNN = 1910.; 91 cutNN = 1910.; 92 #ifdef INCL_DEEXCITATION_FERMI_BREAKUP 92 #ifdef INCL_DEEXCITATION_FERMI_BREAKUP 93 maxMassFermiBreakUp = 16; 93 maxMassFermiBreakUp = 16; 94 maxChargeFermiBreakUp = 8; 94 maxChargeFermiBreakUp = 8; 95 #endif 95 #endif 96 rpCorrelationCoefficient = 0.98; 96 rpCorrelationCoefficient = 0.98; 97 rpCorrelationCoefficientProton = 0.5; 97 rpCorrelationCoefficientProton = 0.5; 98 rpCorrelationCoefficientNeutron = 0.73; 98 rpCorrelationCoefficientNeutron = 0.73; 99 neutronSkin = 0.; 99 neutronSkin = 0.; 100 neutronHalo = 0.; 100 neutronHalo = 0.; 101 refraction=false; 101 refraction=false; 102 phaseSpaceGenerator = "Raubold-Lynch"; 102 phaseSpaceGenerator = "Raubold-Lynch"; 103 phaseSpaceGeneratorType = RauboldLynchType 103 phaseSpaceGeneratorType = RauboldLynchType; 104 cascadeAction = "default"; 104 cascadeAction = "default"; 105 cascadeActionType = DefaultActionType; 105 cascadeActionType = DefaultActionType; 106 randomNumberGenerator = "Ranecu"; 106 randomNumberGenerator = "Ranecu"; 107 rngType = RanecuType; 107 rngType = RanecuType; 108 autosaveFrequency = 10000; 108 autosaveFrequency = 10000; 109 maxNumberMultipions = -1; 109 maxNumberMultipions = -1; 110 crossSectionsString = "antiparticles"; << 110 crossSectionsString = "strangeness"; 111 crossSectionsType = AntiparticlesCrossSect << 111 crossSectionsType = StrangenessCrossSections; 112 hadronizationTime = 0.; 112 hadronizationTime = 0.; 113 #ifdef INCL_ROOT_USE 113 #ifdef INCL_ROOT_USE 114 conciseROOTTree = false; 114 conciseROOTTree = false; 115 #endif 115 #endif 116 inverseKinematics = false; 116 inverseKinematics = false; 117 decayTimeThreshold = 1.e-20; 117 decayTimeThreshold = 1.e-20; 118 bias = 1.; 118 bias = 1.; 119 atrestThreshold = 200.; << 120 } 119 } 121 120 122 std::string Config::summary() { 121 std::string Config::summary() { 123 std::stringstream message; 122 std::stringstream message; 124 message << "INCL++ version " << getVersion 123 message << "INCL++ version " << getVersionString() << '\n'; 125 if(projectileSpecies.theType != Composite) 124 if(projectileSpecies.theType != Composite) 126 message << "Projectile: " << ParticleTab 125 message << "Projectile: " << ParticleTable::getName(projectileSpecies) << '\n'; 127 else 126 else 128 message << "Projectile: composite, A=" < 127 message << "Projectile: composite, A=" << projectileSpecies.theA << ", Z=" << projectileSpecies.theZ << ", S=" << projectileSpecies.theS << '\n'; 129 message << " energy = " << projectileKine 128 message << " energy = " << projectileKineticEnergy << '\n'; 130 if(targetSpecies.theA>0) 129 if(targetSpecies.theA>0) 131 message << "Target: A = " << targetSpeci 130 message << "Target: A = " << targetSpecies.theA << " Z = " << targetSpecies.theZ << " S = " << targetSpecies.theS << '\n'; 132 else 131 else 133 message << "Target: natural isotopic com 132 message << "Target: natural isotopic composition, Z = " << targetSpecies.theZ << '\n'; 134 message << "Number of requested shots = " 133 message << "Number of requested shots = " << nShots << '\n'; 135 return message.str(); 134 return message.str(); 136 } 135 } 137 136 138 } 137 } 139 138