Changeset 1347 for trunk/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc
- Timestamp:
- Dec 22, 2010, 3:52:27 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc
r1340 r1347 24 24 // ******************************************************************** 25 25 // 26 // 27 // $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.10 2006/06/29 20:30:08 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-03-ref-09 $ 29 // 26 // $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.11 2010/11/20 04:01:33 dennis Exp $ 27 // GEANT4 tag $Name: geant4-09-04-ref-00 $ 30 28 // 31 29 … … 33 31 #include "G4ios.hh" 34 32 35 //36 33 // G4 Process: Gheisha High Energy Collision model. 37 34 // This includes the high energy cascading model, the two-body-resonance model 38 // and the low energy two-body model. Not included are the low energy stuff like39 // nuclear reactions, nuclear fission without any cascading and all processes for40 // p articles at rest.35 // and the low energy two-body model. Not included is the low energy stuff 36 // like nuclear reactions, nuclear fission without any cascading and all 37 // processes for particles at rest. 41 38 // First work done by J.L.Chuma and F.W.Jones, TRIUMF, June 96. 42 39 // H. Fesefeldt, RWTH-Aachen, 23-October-1996 … … 46 43 #include "G4Gamma.hh" 47 44 48 G4HadFinalState * G4HEAntiSigmaZeroInelastic:: 49 ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) 50 { 51 G4HEVector * pv = new G4HEVector[MAXPART]; 52 const G4HadProjectile *aParticle = &aTrack; 53 G4HEVector incidentParticle(aParticle); 54 G4HEAntiLambdaInelastic theAntiLambdaInelastic; 55 theAntiLambdaInelastic.SetMaxNumberOfSecondaries(MAXPART); 56 theAntiLambdaInelastic.SetVerboseLevel(verboseLevel); 45 G4HadFinalState* 46 G4HEAntiSigmaZeroInelastic::ApplyYourself(const G4HadProjectile& aTrack, 47 G4Nucleus& targetNucleus) 48 { 49 G4HEVector* pv = new G4HEVector[MAXPART]; 50 const G4HadProjectile *aParticle = &aTrack; 51 G4HEVector incidentParticle(aParticle); 52 G4HEAntiLambdaInelastic theAntiLambdaInelastic; 53 theAntiLambdaInelastic.SetMaxNumberOfSecondaries(MAXPART); 54 theAntiLambdaInelastic.SetVerboseLevel(verboseLevel); 57 55 58 G4double incidentTotalMomentum = incidentParticle.getTotalMomentum(); 59 G4double pgam = G4UniformRand()*incidentTotalMomentum*0.75; 60 G4HEVector incidentAntiLambda; 61 incidentAntiLambda.SmulAndUpdate( incidentParticle, 62 (incidentTotalMomentum - pgam)/incidentTotalMomentum); 63 G4DynamicParticle * aLambda = new G4DynamicParticle(); 64 aLambda->SetDefinition(G4AntiLambda::AntiLambda()); 65 aLambda->SetMomentum(incidentAntiLambda.getMomentum()); 66 G4HadProjectile aLambdaTrack(*aLambda); 67 G4HadFinalState * result = theAntiLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); 68 vecLength = theAntiLambdaInelastic.GetNumberOfSecondaries(); 69 pv[vecLength] = Gamma; 70 pv[vecLength].setMomentum(incidentParticle.getMomentum()); 71 pv[vecLength].SmulAndUpdate( pv[vecLength],pgam/incidentTotalMomentum); 72 G4DynamicParticle * aPhoton = new G4DynamicParticle(); 73 aPhoton->SetDefinition(G4Gamma::Gamma()); 74 aPhoton->SetMomentum(pv[vecLength].getMomentum()); 75 result->AddSecondary(aPhoton); 76 delete [] pv; 77 return result; 78 } 79 56 G4double incidentTotalMomentum = incidentParticle.getTotalMomentum(); 57 G4double pgam = G4UniformRand()*incidentTotalMomentum*0.75; 58 G4HEVector incidentAntiLambda; 59 incidentAntiLambda.SmulAndUpdate(incidentParticle, 60 (incidentTotalMomentum - pgam)/incidentTotalMomentum); 61 G4DynamicParticle* aLambda = new G4DynamicParticle(); 62 aLambda->SetDefinition(G4AntiLambda::AntiLambda()); 63 aLambda->SetMomentum(incidentAntiLambda.getMomentum()); 64 G4HadProjectile aLambdaTrack(*aLambda); 65 G4HadFinalState* result = theAntiLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); 66 vecLength = theAntiLambdaInelastic.GetNumberOfSecondaries(); 67 pv[vecLength] = Gamma; 68 pv[vecLength].setMomentum(incidentParticle.getMomentum()); 69 pv[vecLength].SmulAndUpdate( pv[vecLength],pgam/incidentTotalMomentum); 70 G4DynamicParticle * aPhoton = new G4DynamicParticle(); 71 aPhoton->SetDefinition(G4Gamma::Gamma()); 72 aPhoton->SetMomentum(pv[vecLength].getMomentum()); 73 result->AddSecondary(aPhoton); 74 delete [] pv; 75 return result; 76 } 80 77 81 82 83 84 85 86 87
Note: See TracChangeset
for help on using the changeset viewer.