Changeset 1055 for trunk/source/processes/hadronic/models/qmd/src
- Timestamp:
- May 28, 2009, 4:26:57 PM (15 years ago)
- Location:
- trunk/source/processes/hadronic/models/qmd/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/qmd/src/G4QMDCollision.cc
r962 r1055 28 28 // Add several required updating of Mean Filed 29 29 // Modified handling of absorption case by T. Koi 30 // 090126 Fix in absorption case by T. Koi 31 // 090331 Fix for gamma participant by T. Koi 30 32 // 31 33 #include "G4QMDCollision.hh" 32 #include "G4ParticleDefinition.hh"33 34 #include "G4Scatterer.hh" 34 35 #include "Randomize.hh" … … 260 261 G4double rmi = theSystem->GetParticipant( i )->GetMass(); 261 262 G4ParticleDefinition* pdi = theSystem->GetParticipant( i )->GetDefinition(); 263 //090331 gamma 264 if ( pdi->GetPDGMass() == 0.0 ) continue; 262 265 263 266 //std::cout << " p4i00 " << p4i << std::endl; … … 295 298 G4double rmj = theSystem->GetParticipant( j )->GetMass(); 296 299 G4ParticleDefinition* pdj = theSystem->GetParticipant( j )->GetDefinition(); 300 //090331 gamma 301 if ( pdj->GetPDGMass() == 0.0 ) continue; 297 302 298 303 G4double rr2 = theMeanField->GetRR2( i , j ); … … 332 337 G4double pidr = p4i.vect()*dr; 333 338 G4double pjdr = p4j.vect()*dr; 334 339 335 340 G4double aij = 1.0 - ( rmi*rmj /pij ) * ( rmi*rmj /pij ); 336 341 G4double bij = pidr / rmi - pjdr*rmi/pij; … … 660 665 else 661 666 { 662 if ( theMeanField->IsPauliBlocked ( i ) == false ) 667 //if ( theMeanField->IsPauliBlocked ( i ) == false ) 668 //090126 i-1 cause jth is erased 669 if ( theMeanField->IsPauliBlocked ( i-1 ) == false ) 663 670 { 664 671 //G4cout << "Absorption Happen " << theSystem->GetTotalNumberOfParticipant() << G4endl; -
trunk/source/processes/hadronic/models/qmd/src/G4QMDReaction.cc
r962 r1055 31 31 // UseFrag (chage criterion of a inelastic reaction) 32 32 // Fix bug in nucleon projectiles by T. Koi 33 // 090122 Be8 -> Alpha + Alpha 34 // 090331 Change member shenXS and genspaXS object to pointer 33 35 // 34 36 #include "G4QMDReaction.hh" … … 45 47 , frag ( false ) 46 48 { 49 50 //090331 51 shenXS = new G4IonsShenCrossSection(); 52 //genspaXS = new G4GeneralSpaceNNCrossSection(); 47 53 meanField = new G4QMDMeanField(); 48 54 collision = new G4QMDCollision(); … … 99 105 G4double aTemp = projectile.GetMaterial()->GetTemperature(); 100 106 101 //G4double xs_0 = shenXS.GetCrossSection ( proj_dp , targ_ele , aTemp ); 102 G4double xs_0 = genspaXS.GetCrossSection ( proj_dp , targ_ele , aTemp ); 107 //090331 108 G4double xs_0 = shenXS->GetCrossSection ( proj_dp , targ_ele , aTemp ); 109 //G4double xs_0 = genspaXS->GetCrossSection ( proj_dp , targ_ele , aTemp ); 103 110 G4double bmax_0 = std::sqrt( xs_0 / pi ); 104 111 //std::cout << "bmax_0 in fm (fermi) " << bmax_0/fermi << std::endl; … … 470 477 // Secondary from this nucleus (*it) 471 478 G4ParticleDefinition* pd = (*itt)->GetDefinition(); 479 472 480 G4LorentzVector p4 ( (*itt)->GetMomentum()/GeV , (*itt)->GetTotalEnergy()/GeV ); //in nucleus(*it) rest system 473 481 G4LorentzVector p4_CM = CLHEP::boostOf( p4 , -nucleus_p4CM.findBoostToCM() ); // Back to CM 474 482 G4LorentzVector p4_LAB = CLHEP::boostOf( p4_CM , boostBackToLAB ); // Back to LAB 475 483 476 G4DynamicParticle* dp = new G4DynamicParticle( pd , p4_LAB*GeV ); 477 theParticleChange.AddSecondary( dp ); 484 485 //090122 486 //theParticleChange.AddSecondary( dp ); 487 if ( !( pd->GetAtomicNumber() == 4 && pd->GetAtomicMass() == 8 ) ) 488 { 489 G4DynamicParticle* dp = new G4DynamicParticle( pd , p4_LAB*GeV ); 490 theParticleChange.AddSecondary( dp ); 491 } 492 else 493 { 494 //Be8 -> Alpha + Alpha + Q 495 G4ThreeVector randomized_direction( G4UniformRand() , G4UniformRand() , G4UniformRand() ); 496 randomized_direction = randomized_direction.unit(); 497 G4double q_decay = (*itt)->GetMass() - 2*G4Alpha::Alpha()->GetPDGMass(); 498 G4double p_decay = std::sqrt ( std::pow(G4Alpha::Alpha()->GetPDGMass()+q_decay/2,2) - std::pow(G4Alpha::Alpha()->GetPDGMass() , 2 ) ); 499 G4LorentzVector p4_a1 ( p_decay*randomized_direction , G4Alpha::Alpha()->GetPDGMass()+q_decay/2 ); //in Be8 rest system 500 501 G4LorentzVector p4_a1_Be8 = CLHEP::boostOf ( p4_a1/GeV , -p4.findBoostToCM() ); 502 G4LorentzVector p4_a1_CM = CLHEP::boostOf ( p4_a1_Be8 , -nucleus_p4CM.findBoostToCM() ); 503 G4LorentzVector p4_a1_LAB = CLHEP::boostOf ( p4_a1_CM , boostBackToLAB ); 504 505 G4LorentzVector p4_a2 ( -p_decay*randomized_direction , G4Alpha::Alpha()->GetPDGMass()+q_decay/2 ); //in Be8 rest system 506 507 G4LorentzVector p4_a2_Be8 = CLHEP::boostOf ( p4_a2/GeV , -p4.findBoostToCM() ); 508 G4LorentzVector p4_a2_CM = CLHEP::boostOf ( p4_a2_Be8 , -nucleus_p4CM.findBoostToCM() ); 509 G4LorentzVector p4_a2_LAB = CLHEP::boostOf ( p4_a2_CM , boostBackToLAB ); 510 511 G4DynamicParticle* dp1 = new G4DynamicParticle( G4Alpha::Alpha() , p4_a1_LAB*GeV ); 512 G4DynamicParticle* dp2 = new G4DynamicParticle( G4Alpha::Alpha() , p4_a2_LAB*GeV ); 513 theParticleChange.AddSecondary( dp1 ); 514 theParticleChange.AddSecondary( dp2 ); 515 } 516 //090122 478 517 479 518 /* … … 698 737 699 738 } 700
Note: See TracChangeset
for help on using the changeset viewer.