Changeset 1007 for trunk/source/processes/hadronic/models/cascade/cascade
- Timestamp:
- Apr 20, 2009, 5:54:05 PM (15 years ago)
- Location:
- trunk/source/processes/hadronic/models/cascade/cascade
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh
r962 r1007 45 45 G4int is); 46 46 47 void printCrossSections();48 49 47 std::pair<G4int, G4double> getPositionInEnergyScaleEMS(G4double e); 50 48 -
trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh
r967 r1007 25 25 // 26 26 // $Id: G4CascadeMomentum.hh,v 1.1 2008/09/22 10:06:32 gcosmo Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // -
trunk/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh
r962 r1007 46 46 G4InuclParticle* target); 47 47 48 G4bool HighEnergyFlag() const {49 return high_energy;50 }51 52 48 private: 53 49 50 // G4CascadeKplusPChannel kpp; 51 // G4CascadeKplusNChannel kpn; 52 // G4CascadeKzeroPChannel k0p; 53 // G4CascadeKzeroNChannel k0n; 54 // G4CascadeKminusPChannel kmp; 55 // G4CascadeKminusNChannel kmn; 56 // G4CascadeKzeroBarPChannel k0bp; 57 // G4CascadeKzeroBarNChannel k0bn; 58 // G4CascadeLambdaPChannel lp; 59 // G4CascadeLambdaNChannel ln; 60 // G4CascadeSigmaPlusPChannel spp; 61 // G4CascadeSigmaPlusNChannel spn; 62 // G4CascadeSigmaZeroPChannel s0p; 63 // G4CascadeSigmaZeroNChannel s0n; 64 // G4CascadeSigmaMinusPChannel smp; 65 // G4CascadeSigmaMinusNChannel smn; 66 // G4CascadeXiZeroPChannel x0p; 67 // G4CascadeXiZeroNChannel x0n; 68 // G4CascadeXiMinusPChannel xmp; 69 // G4CascadeXiMinusNChannel xmn; 70 54 71 G4int verboseLevel; 55 mutable G4bool high_energy; // Flag indicates beginning of string-like behavior 56 57 G4int generateMultiplicity(G4int is, G4double ekin) const; 72 G4int generateMultiplicity(G4int is, 73 G4double ekin) const; 58 74 59 75 void collide(G4InuclElementaryParticle* bullet, -
trunk/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh
r962 r1007 133 133 G4CascadParticle initializeCascad(G4InuclElementaryParticle* particle); 134 134 135 std::pair<std::vector<G4CascadParticle>, std::vector<G4InuclElementaryParticle> > 136 initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target); 135 std::pair<std::vector<G4CascadParticle>, std::vector<G4InuclElementaryParticle> > initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target); 137 136 138 137 std::pair<G4int, G4int> getTypesOfNucleonsInvolved() const { 139 138 return std::pair<G4int, G4int>(current_nucl1, current_nucl2); 140 139 }; 141 142 140 G4bool worthToPropagate(const G4CascadParticle& cparticle) const; 143 141 … … 145 143 G4int zone) const; 146 144 147 G4bool highEnergyInteraction() const { 148 return high_energy_interaction; 149 } 150 151 private: 152 153 G4int verboseLevel; 154 G4bool high_energy_interaction; 155 145 private: 146 G4int verboseLevel; 156 147 G4bool passFermi(const std::vector<G4InuclElementaryParticle>& particles, 157 148 G4int zone); -
trunk/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc
r962 r1007 113 113 } 114 114 115 // was 0.2 since the beginning 116 const G4double corr_fac = 1.0; 115 const G4double corr_fac = 0.2; 117 116 G4double csec = 0.0; 118 117 … … 177 176 178 177 return std::pair<G4int, G4double>(ik, sk); 179 }180 181 void182 G4CascadSpecialFunctions::printCrossSections()183 {184 const G4double ke[74] =185 {0.00, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10,186 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.25,187 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80,188 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15, 1.20, 1.25, 1.30, 1.35,189 1.40, 1.45, 1.50, 1.55, 1.60, 1.65, 1.70, 1.75, 1.80, 1.85, 1.90,190 1.95, 2.00, 2.20, 2.40, 2.60, 2.80, 3.00, 4.00, 5.00, 6.00, 7.00,191 8.00, 9.00, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0};192 193 const G4String channel_names[7] = {"pp", "pn", "pi+p", "nn", "pi-p", "pi+n", "pi0p"};194 195 G4cout << " Kinetic energies in GeV " << G4endl;196 for (G4int i = 0; i < 12; i++) {197 G4int istart = i*6;198 G4int istop = istart + 6;199 for (G4int e = istart; e < istop; e++) G4cout << ke[e] << " " ;200 G4cout << G4endl;201 }202 G4cout << G4endl;203 204 for (G4int channel = 1; channel < 8; channel++) {205 G4cout << " Channel " << channel_names[channel-1] << G4endl;206 for (G4int i = 0; i < 12; i++) {207 G4int istart = i*6;208 G4int istop = istart + 6;209 for (G4int t = istart; t < istop; t++) G4cout << crossSection(ke[t], channel) << " " ;210 G4cout << G4endl;211 }212 G4cout << G4endl;213 }214 178 } 215 179 -
trunk/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc
r962 r1007 54 54 55 55 G4ElementaryParticleCollider::G4ElementaryParticleCollider() 56 : verboseLevel(1) , high_energy(false)56 : verboseLevel(1) 57 57 { 58 58 if (verboseLevel > 3) { 59 59 G4cout << " >>> G4ElementaryParticleCollider ctor " << G4endl; 60 61 printCrossSections();62 60 } 63 61 } … … 177 175 G4int 178 176 G4ElementaryParticleCollider::generateMultiplicity(G4int is, 179 G4double ekin) const 177 G4double ekin) const 180 178 { 181 179 if (verboseLevel > 3) { … … 379 377 G4double sl = inuclRndm(); 380 378 G4double ptot = 0.0; 381 mul = 5; 382 high_energy = true; 383 379 380 mul = 4; 384 381 for (G4int i = 0; i < 5; i++) { 385 382 ptot += sigm[i] / stot; … … 387 384 if (sl <= ptot) { 388 385 mul = i; 389 high_energy = false;390 386 break; 391 387 } … … 537 533 } else { // 2 -> many 538 534 539 if (high_energy) multiplicity = 6;540 541 535 if ( (is > 10 && is < 14) || (is > 14 && is < 63) ) { 542 536 particle_kinds = … … 704 698 }; 705 699 }; 706 700 }; 707 701 }; 708 702 … … 715 709 716 710 }; 717 } // 2->many711 }; 718 712 }; 719 713 … … 724 718 return particles; 725 719 } 726 727 720 728 721 std::vector<G4double> -
trunk/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc
r962 r1007 158 158 theElementaryParticleCollider); 159 159 if (verboseLevel > 2) { 160 G4cout << " New particles from G4NucleiModel::generateParticleFate " 161 << new_cascad_particles.size() << G4endl; 160 G4cout << " ew particles " << new_cascad_particles.size() << G4endl; 162 161 } 163 162 … … 219 218 } 220 219 221 } else if (model.highEnergyInteraction() ) { // high energy projectile-nucleon interaction 220 } else { // interaction 221 222 222 cascad_particles.pop_back(); 223 for (G4int i = 0; i < G4int(new_cascad_particles.size()); i++) { 224 // send secondaries straight to output - no further cascade 225 // for now, don't check for Coulomb barrier? 226 output_particles.push_back(new_cascad_particles[i].getParticle() ); 227 } 228 std::pair<G4int, G4int> holes = model.getTypesOfNucleonsInvolved(); 229 theExitonConfiguration.incrementHoles(holes.first); 230 if (holes.second > 0) theExitonConfiguration.incrementHoles(holes.second); 231 232 } else { // medium energy projectile-nucleon interaction 233 cascad_particles.pop_back(); 223 234 224 for (G4int i = 0; i < G4int(new_cascad_particles.size()); i++) 235 225 cascad_particles.push_back(new_cascad_particles[i]); 226 236 227 std::pair<G4int, G4int> holes = model.getTypesOfNucleonsInvolved(); 228 237 229 theExitonConfiguration.incrementHoles(holes.first); 230 238 231 if (holes.second > 0) theExitonConfiguration.incrementHoles(holes.second); 239 } 240 } 232 233 }; 234 }; 241 235 242 236 // Cascade is finished. Check if it's OK. -
trunk/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc
r962 r1007 54 54 55 55 G4NucleiModel::G4NucleiModel() 56 : verboseLevel(2) , high_energy_interaction(false){56 : verboseLevel(2) { 57 57 58 58 if (verboseLevel > 3) { … … 760 760 } 761 761 762 std::vector<G4CascadParticle> 763 G4NucleiModel::generateParticleFate(G4CascadParticle& cparticle, 764 G4ElementaryParticleCollider* theElementaryParticleCollider) { 762 std::vector<G4CascadParticle> G4NucleiModel::generateParticleFate(G4CascadParticle& cparticle, 763 G4ElementaryParticleCollider* theElementaryParticleCollider) { 765 764 766 765 if (verboseLevel > 3) { … … 814 813 815 814 G4CollisionOutput output = theElementaryParticleCollider->collide(&bullet, &target); 816 high_energy_interaction = theElementaryParticleCollider->HighEnergyFlag();817 815 818 816 if (verboseLevel > 2){
Note: See TracChangeset
for help on using the changeset viewer.