Changeset 962 for trunk/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc
- Timestamp:
- Apr 6, 2009, 12:30:29 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc
r819 r962 28 28 // A prototype of the low energy neutron transport model. 29 29 // 30 //080612 Bug fix contribution from Benoit Pirard and Laurent Desorgher (Univ. Bern) #2,3 31 //080709 Bug fix Sampling Legendre expansion by T. Koi 32 // 30 33 #include "G4NeutronHPDiscreteTwoBody.hh" 31 34 #include "G4Gamma.hh" … … 92 95 if(theCoeff[it].GetRepresentation()==0) 93 96 { 97 //TK Legendre expansion 94 98 G4NeutronHPLegendreStore theStore(1); 95 99 theStore.SetCoeff(0, theCoeff); 96 100 theStore.SetManager(theManager); 97 cosTh = theStore.SampleMax(anEnergy); 101 //cosTh = theStore.SampleMax(anEnergy); 102 //080612TK contribution from Benoit Pirard and Laurent Desorgher (Univ. Bern) #3 103 cosTh = theStore.SampleDiscreteTwoBody(anEnergy); 98 104 } 99 105 else if(theCoeff[it].GetRepresentation()==12) // means LINLIN … … 136 142 if(theCoeff[it].GetRepresentation()==0) 137 143 { 144 //TK Legendre expansion 138 145 G4NeutronHPLegendreStore theStore(2); 139 146 theStore.SetCoeff(0, &(theCoeff[it-1])); … … 142 149 aManager.Init(theManager.GetScheme(it), 2); 143 150 theStore.SetManager(aManager); 144 cosTh = theStore.SampleMax(anEnergy); 151 //cosTh = theStore.SampleMax(anEnergy); 152 //080709 TKDB 153 cosTh = theStore.SampleDiscreteTwoBody(anEnergy); 145 154 } 146 155 else if(theCoeff[it].GetRepresentation()==12) // LINLIN … … 198 207 cosTh = theStore.Sample(); 199 208 } 200 else if(theCoeff[it].GetRepresentation()==14) 209 else if(theCoeff[it].GetRepresentation()==14) //TK LOG_LIN 201 210 { 202 211 G4NeutronHPVector theBuff1; … … 266 275 // now get the energy from kinematics and Q-value. 267 276 268 G4double restEnergy = anEnergy+GetQValue();277 //G4double restEnergy = anEnergy+GetQValue(); 269 278 270 279 // assumed to be in CMS @@@@@@@@@@@@@@@@@ 271 280 272 G4double residualMass = GetTarget()->GetMass() + GetNeutron()->GetMass() 273 - result->GetMass() - GetQValue(); 274 G4double kinE = restEnergy/(1+result->GetMass()/residualMass); // non relativistic @@ 281 //080612TK contribution from Benoit Pirard and Laurent Desorgher (Univ. Bern) #2 282 //G4double residualMass = GetTarget()->GetMass() + GetNeutron()->GetMass() 283 // - result->GetMass() - GetQValue(); 284 //G4double kinE = restEnergy/(1+result->GetMass()/residualMass); // non relativistic @@ 285 G4double A1 = GetTarget()->GetMass()/GetNeutron()->GetMass(); 286 G4double A1prim = result->GetMass()/GetNeutron()->GetMass(); 287 G4double E1 = (A1+1)*(A1+1)/A1/A1*anEnergy; 288 G4double kinE = (A1+1-A1prim)/(A1+1)/(A1+1)*(A1*E1+(1+A1)*GetQValue()); 289 275 290 result->SetKineticEnergy(kinE); // non relativistic @@ 276 291 G4double phi = twopi*G4UniformRand();
Note: See TracChangeset
for help on using the changeset viewer.