G4LENDFission Class Reference

#include <G4LENDFission.hh>

Inheritance diagram for G4LENDFission:

G4LENDModel G4HadronicInteraction

Public Member Functions

 G4LENDFission (G4ParticleDefinition *pd)
 ~G4LENDFission ()
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)

Detailed Description

Definition at line 46 of file G4LENDFission.hh.


Constructor & Destructor Documentation

G4LENDFission::G4LENDFission ( G4ParticleDefinition pd  )  [inline]

Definition at line 51 of file G4LENDFission.hh.

References G4LENDModel::create_used_target_map(), and G4LENDModel::proj.

00052      :G4LENDModel( "LENDFission" ) 
00053      { 
00054         proj = pd; 
00055        
00056 //        theModelName = "LENDFission for "; 
00057 //        theModelName += proj->GetParticleName(); 
00058         create_used_target_map();
00059      };

G4LENDFission::~G4LENDFission (  )  [inline]

Definition at line 61 of file G4LENDFission.hh.

00061 {;};


Member Function Documentation

G4HadFinalState * G4LENDFission::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus aTargetNucleus 
) [virtual]

Reimplemented from G4LENDModel.

Definition at line 31 of file G4LENDFission.cc.

References G4HadFinalState::AddSecondary(), G4HadFinalState::Clear(), G4Gamma::Gamma(), G4Nucleus::GetA_asInt(), G4GIDI_target::getFissionFinalState(), G4HadProjectile::GetKineticEnergy(), G4HadProjectile::GetMaterial(), G4LENDManager::GetNucleusEncoding(), G4ParticleTable::GetParticleTable(), G4Material::GetTemperature(), G4Nucleus::GetZ_asInt(), G4LENDModel::lend_manager, G4Neutron::Neutron(), G4DynamicParticle::SetDefinition(), G4DynamicParticle::SetMomentum(), G4HadFinalState::SetStatusChange(), stopAndKill, G4HadronicInteraction::theParticleChange, and G4LENDModel::usedTarget_map.

00032 {
00033 
00034    G4double temp = aTrack.GetMaterial()->GetTemperature();
00035 
00036    //migrate to integer A and Z (GetN_asInt returns number of neutrons in the nucleus since this) 
00037    G4int iZ = aTarg.GetZ_asInt();
00038    G4int iA = aTarg.GetA_asInt();
00039 
00040    G4double ke = aTrack.GetKineticEnergy();
00041 
00042    G4HadFinalState* theResult = &theParticleChange;
00043    theResult->Clear();
00044 
00045    G4GIDI_target* aTarget = usedTarget_map.find( lend_manager->GetNucleusEncoding( iZ , iA ) )->second->GetTarget();
00046    std::vector<G4GIDI_Product>* products = aTarget->getFissionFinalState( ke*MeV, temp, NULL, NULL );
00047    if ( products != NULL ) 
00048    {
00049       for ( G4int j = 0; j < int( products->size() ); j++ ) 
00050       {
00051          G4int jZ = (*products)[j].Z; 
00052          G4int jA = (*products)[j].A; 
00053 
00054          //G4cout << "Z = "    << (*products)[j].Z 
00055          //       << ", A = "  << (*products)[j].A 
00056          //       << ", EK = " << (*products)[j].kineticEnergy << " [MeV]" 
00057          //       << ", px = " << (*products)[j].px
00058          //       << ", py = " << (*products)[j].py
00059          //       << ", pz = " << (*products)[j].pz
00060          //       << G4endl;
00061 
00062          G4DynamicParticle* theSec = new G4DynamicParticle;
00063 
00064          if ( jZ > 0 )
00065          {
00066                                                                                         //Ex  j?
00067             theSec->SetDefinition( G4ParticleTable::GetParticleTable()->FindIon( jZ, jA , 0, 0 ) );
00068          } 
00069          else if ( jA == 1 && jZ == 0 )
00070          {
00071             theSec->SetDefinition( G4Neutron::Neutron() );
00072          } 
00073          else
00074          {
00075             theSec->SetDefinition( G4Gamma::Gamma() );
00076          } 
00077 
00078          theSec->SetMomentum( G4ThreeVector( (*products)[j].px*MeV , (*products)[j].py*MeV , (*products)[j].pz*MeV ) );
00079          //G4cout << theSec->GetDefinition()->GetParticleName() << G4endl;
00080          theResult->AddSecondary( theSec );
00081       } 
00082    }
00083    delete products;
00084 
00085    theResult->SetStatusChange( stopAndKill );
00086 
00087    return theResult; 
00088 
00089 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:23 2013 for Geant4 by  doxygen 1.4.7